5 votos

¿Por qué cambiar las semillas aleatorias altera los resultados?

Estoy ejecutando algunos SVM para un seminario y un amigo mío señaló que debería establecer una semilla para que mis resultados no cambien cada vez que ejecute el código. Me preguntaba por qué es así. Si una semilla diferente puede inducir resultados diferentes, ¿por qué debería confiar en las SVM?

¿Debo establecer una semilla específica o está bien poner el primer número que se me ocurra?

5 votos

"Ningún hombre pisa dos veces el mismo río, porque no es el mismo río y él no es el mismo hombre". -- Heráclito. Cada vez que se hace algo, los resultados difieren un poco. ¿Por qué exigir, entonces, que un procedimiento estadístico sea diferente? Lo que importa no es que el resultado cambie, sino que cuánto y si hay alguna diferencia. Ver stats.stackexchange.com/search?q=seed+set+random para debatir esta cuestión.

13voto

Ben Bolker Puntos 8729

tl;dr En términos prácticos, es probable que pueda establecer la semilla a cualquier cosa que desee (por ejemplo, su cumpleaños o número de teléfono [aunque hay problemas obvios de privacidad allí :-)] o su número de la suerte); con algunos advertencias interesantes Si no se ha hecho nada, se puede utilizar la misma semilla de números aleatorios para la mayoría de los análisis (yo suelo utilizar el 1001). Para ser útiles, los algoritmos estocásticos suelen ser insensibles a la semilla de números aleatorios.

la respuesta larga

Los métodos estadísticos clásicos (prueba t, ANOVA, regresión, etc.) son determinista algoritmos, pero muchos enfoques algorítmicos modernos incluyen un estocástico componente. (En medio se encuentran métodos como la agrupación de k-means o la maximización de expectativas, que son intrínsecamente deterministas pero que suelen ejecutarse desde múltiples puntos de partida elegidos al azar para mitigar su sensibilidad a las condiciones de partida).

La SVM no tiene por qué ser estocástica (por ejemplo, la implementación en el e1071 para R parece ser determinista), pero a menudo se implementa utilizando descenso de gradiente estocástico (SGD: por ejemplo, véase aquí ) por razones de cálculo.

Los métodos que utilizan grandes conjuntos de muestras aleatorias de los datos (por ejemplo, bootstrapping, bagging, así como SGD, que elige una muestra diferente de los datos en cada paso de actualización) están promediando efectivamente a través de muchas muestras, y es probable que sean relativamente insensibles a la semilla de números aleatorios. Los métodos que probablemente sean inestable con respecto a la semilla de números aleatorios (por ejemplo, EM, k-means clustering) generalmente tendrán mecanismos incorporados en el software que ejecutarán automáticamente varias realizaciones y harán algo sensato con los resultados (es decir, los promediarán), para que el método sea menos sensible.

Esta sensibilidad forma parte de la información que se debe conocer sobre un método antes de utilizarlo (junto con una idea de sus puntos fuertes y débiles, los metaparámetros que debe ajustar, etc.).

Lo mejor que se puede hacer en el transcurso del aprendizaje es probar algunos experimentos: para un conjunto de datos y un modelo concretos, pruebe el mismo método con un puñado de semillas de números aleatorios diferentes y vea cuánto varían los resultados.

0 votos

+1. Para un análisis de algunos de los problemas relacionados con el uso de semillas arbitrarias, consulte stats.stackexchange.com/questions/80407 .

0 votos

Además, incluso para un enfoque determinista puede depender de un punto de partida o de la ordenación de los datos.

0 votos

Ya dije lo del punto de partida... y no estaba tratando temas relacionados con la inestabilidad numérica en mi respuesta, parece ligeramente tangencial...

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X