¿Qué algoritmos necesitan escalado de características, además de SVM?


17

Estoy trabajando con muchos algoritmos: RandomForest, DecisionTrees, NaiveBayes, SVM (kernel = linear y rbf), KNN, LDA y XGBoost. Todos ellos fueron bastante rápidos, excepto SVM. Fue entonces cuando llegué a saber que necesita una función de escala para funcionar más rápido. Entonces comencé a preguntarme si debería hacer lo mismo con los otros algoritmos.



Respuestas:


21

En general, los algoritmos que explotan distancias o similitudes (por ejemplo, en forma de producto escalar) entre muestras de datos, como k-NN y SVM, son sensibles a las transformaciones de características.

Los clasificadores basados ​​en modelos gráficos, como Fisher LDA o Naive Bayes, así como los árboles de decisión y los métodos de conjunto basados ​​en árboles (RF, XGB) son invariables para el escalado de características, pero aún así podría ser una buena idea reescalar / estandarizar sus datos .


3
+1. Solo tenga en cuenta que XGBoost también implementa un segundo algoritmo, basado en un refuerzo lineal. Escalar hará una diferencia allí.
usεr11852 dice Reinstate Monic

1
¿Podría elaborar más sobre la reescalada / estandarización de datos para RF y XGB? No veo cómo puede influir en la calidad del modelo.
Tomek Tarczynski

17

Aquí hay una lista que encontré en http://www.dataschool.io/comparing-supervised-learning-algorithms/ indicando qué clasificador necesita escalado de características :

ingrese la descripción de la imagen aquí

Mesa completa:

ingrese la descripción de la imagen aquí

En k-means clustering también necesita normalizar su entrada .

Además de considerar si el clasificador explota distancias o similitudes como mencionó Yell Bond, el Descenso de gradiente estocástico también es sensible a la escala de características (ya que la tasa de aprendizaje en la ecuación de actualización del Descenso de gradiente estocástico es la misma para cada parámetro {1}):

ingrese la descripción de la imagen aquí


Referencias


¡Lo que falta de esta respuesta es una explicación de por qué! Mira mi respuesta para eso.
kjetil b halvorsen

2
@kjetilbhalvorsen bien expliqué para k-means y SGD, pero hay muchos otros algoritmos y modelos. Hay un límite de 30k-char en Stack Exchange :)
Franck Dernoncourt


@FranckDernoncourt ¿Puedo hacerte una pregunta sobre esto? Tengo un conjunto de datos de datos categóricos y continuos, para lo cual estoy construyendo un SVM. Los datos continuos están muy sesgados (cola larga). Para la transformación en continuo debería hacer un log transformation / Box-Coxy luego tambiénnormalise the resultant data to get limits between 0 and 1 ? Así que normalizaré los valores de registro. Luego calcule el SVM en los datos continuos y categóricos (0-1) juntos? Saludos por cualquier ayuda que pueda proporcionar.
Chuck el

7

Yi=β0+β1xi+β2zi+ϵi
yo=1,...,norte
Xyo=(Xyo-X¯)/ /Dakota del Sur(X)zyo=(zyo-z¯)/ /Dakota del Sur(z)
Yyo=β0 0+β1Xyo+β2zyo+ϵyo
β1,2β^1,2
β0 0=β0 0-β1X¯sd (x)-β2z¯sd (z),β1=β1sd (x),β2=β2sd (z)
So standardization is not a necessary part of modelling. (It might still be done for other reasons, which we do not cover here). This answer depends also upon us using ordinary least squares. For some other fitting methods, such as ridge or lasso, standardization is important, because we loose this invariance we have with least squares. This is easy to see: both lasso and ridge do regularization based on the size of the betas, so any transformation which change the relative sizes of the betas will change the result!

And this discussion for the case of linear regression tells you what you should look after in other cases: Is there invariance, or is it not? Generally, methods which depends on distance measures among the predictors will not show invariance, so standardization is important. Another example will be clustering.


1
Can you explicitly show how one calculates one set of betas from the other in this particular example of scalings you have applied?
Mathews24

@kjetil Can I ask you a question building on this? I have a dataset of both categorical and continuous data, for which I'm building an SVM. The continuous data is highly skewed (long tail). For transformation on the continuous should I do a log transformation / Box-Cox and then also normalise the resultant data to get limits between 0 and 1? So i'll be normalising the log values. Then calculate the SVM on the continuous and categorical (0-1) data together? Cheers for any help you can provide
Chuck

1
Can you please add this as a new question? with reference back here!
kjetil b halvorsen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.