De acuerdo con la documentación del objeto StandardScaler en scikit-learn:
Por ejemplo, muchos elementos utilizados en la función objetivo de un algoritmo de aprendizaje (como el núcleo RBF de Support Vector Machines o los regularizadores L1 y L2 de modelos lineales) suponen que todas las características están centradas alrededor de 0 y tienen una varianza en el mismo orden. Si una característica tiene una varianza que es de un orden de magnitud mayor que otras, podría dominar la función objetivo y hacer que el estimador no pueda aprender de otras características correctamente como se esperaba.
Debería escalar mis características antes de la clasificación. ¿Hay alguna manera fácil de mostrar por qué debería hacer esto? Las referencias a artículos científicos serían aún mejores. Ya encontré uno, pero probablemente hay muchos otros.
Depende de qué núcleo esté utilizando. Con mucho, el más utilizado (aparte de lineal) es el núcleo gaussiano, que tiene la forma
Un SVM toma esta función y la usa para comparar la similitud de un punto ( ) con cualquier otro punto en el conjunto de entrenamiento al sumar las diferencias como:x1
donde es su ejemplo y los valores de son los puntos de referencia.lx l
Si la característica varía de 0 a 50,000, mientras que la característica varía de 0 a 0.01, puede ver que dominará esa suma mientras prácticamente no tendrá impacto. Por esta razón, es necesario escalar las características antes de aplicar el kernal. x 2 x 1 x 2x1 x2 x1 x2
Si desea obtener más información, le recomiendo el módulo 12 (Support Vector Machines) del curso en línea de Stanford sobre aprendizaje automático en Coursera (gratuito y disponible en cualquier momento): https://www.coursera.org/course/ml
fuente