Welche Algorithmen benötigen neben SVM eine Feature-Skalierung?

17

Ich arbeite mit vielen Algorithmen: RandomForest, DecisionTrees, NaiveBayes, SVM (Kernel = linear und rbf), KNN, LDA und XGBoost. Alle bis auf SVM waren ziemlich schnell. Dann wurde mir klar, dass die Feature-Skalierung erforderlich ist, um schneller arbeiten zu können. Dann begann ich mich zu fragen, ob ich dasselbe für die anderen Algorithmen tun sollte.

Aizzaac
quelle

Antworten:

21

Im Allgemeinen reagieren Algorithmen, die Entfernungen oder Ähnlichkeiten (z. B. in Form eines Skalarprodukts) zwischen Datenproben ausnutzen , wie z. B. k-NN und SVM, empfindlich auf Merkmalstransformationen.

Auf grafischen Modellen basierende Klassifikatoren wie Fisher LDA oder Naive Bayes sowie Decision Trees und Tree-based Ensemble-Methoden (RF, XGB) sind für die Skalierung von Features nicht relevant. Es ist jedoch möglicherweise eine gute Idee, Ihre Daten neu zu skalieren / zu standardisieren .

Schrei
quelle
3
+1. Beachten Sie nur, dass XGBoost tatsächlich auch einen zweiten Algorithmus implementiert, der auf linearem Boosten basiert. Die Skalierung wird dort einen Unterschied machen.
usεr11852 sagt Reinstate Monic
1
Könnten Sie mehr über die Neuskalierung / Standardisierung von Daten für RF und XGB erfahren? Ich sehe nicht, wie es die Qualität des Modells beeinflussen kann.
Tomek Tarczynski
17

Hier ist eine Liste, die ich auf http://www.dataschool.io/comparing-supervised-learning-algorithms/ gefunden habe und die angibt, welcher Klassifikator eine Feature-Skalierung benötigt :

Bildbeschreibung hier eingeben

Vollständige Tabelle:

Bildbeschreibung hier eingeben

Beim k-means Clustering müssen Sie auch Ihre Eingabe normalisieren .

Stochastic Gradient Descent berücksichtigt nicht nur, ob der Klassifikator Entfernungen oder Ähnlichkeiten wie Yell Bond ausnutzt, sondern reagiert auch empfindlich auf die Merkmalsskalierung (da die Lernrate in der Aktualisierungsgleichung von Stochastic Gradient Descent für jeden Parameter {1} gleich ist):

Bildbeschreibung hier eingeben


Verweise:

Franck Dernoncourt
quelle
Was an dieser Antwort fehlt, ist eine Erklärung, warum !! Siehe meine Antwort dafür.
kjetil b halvorsen
2
@kjetilbhalvorsen Nun, ich habe es für k-means und SGD erklärt, aber es gibt viele andere Algorithmen und Modelle. Es gibt ein Limit von 30.000 Zeichen für Stack Exchange :)
Franck Dernoncourt
Etwas verwandt: stats.stackexchange.com/questions/231285/…
kjetil b halvorsen
@FranckDernoncourt Darf ich Ihnen eine Frage stellen, die darauf aufbaut? Ich habe einen Datensatz mit kategorialen und kontinuierlichen Daten, für die ich eine SVM aufbaue. Die kontinuierlichen Daten sind stark verzerrt (langer Schwanz). Für die Transformation im Continuous soll ich a log transformation / Box-Coxund dann auch tun normalise the resultant data to get limits between 0 and 1? Also werde ich die Log-Werte normalisieren. Berechnen Sie dann die SVM anhand der kontinuierlichen und kategorialen (0-1) Daten zusammen? Prost für jede Hilfe, die Sie leisten können.
Chuck
7

Y.ich=β0+β1xich+β2zich+ϵich
ich=1,,n
xich=(xich-x¯)/sd(x)zich=(zich-z¯)/sd(z)
Y.ich=β0+β1xich+β2zich+ϵich
β1,2β^1,2
β0=β0-β1x¯sd (x)-β2z¯sd (z),β1=β1sd (x),β2=β2sd (z)

Und diese Diskussion für den Fall der linearen Regression sagt Ihnen, worauf Sie in anderen Fällen achten sollten: Gibt es eine Invarianz oder nicht? Im Allgemeinen zeigen Methoden, die von Abstandsmaßen zwischen den Prädiktoren abhängen, keine Invarianz , daher ist Standardisierung wichtig. Ein weiteres Beispiel ist das Clustering.

kjetil b halvorsen
quelle
1
Können Sie in diesem speziellen Beispiel für angewendete Skalierungen explizit zeigen, wie eine Gruppe von Betas von der anderen berechnet wird?
Mathews24
@kjetil Darf ich Ihnen eine Frage stellen, die darauf aufbaut? Ich habe einen Datensatz mit kategorialen und kontinuierlichen Daten, für die ich eine SVM aufbaue. Die kontinuierlichen Daten sind stark verzerrt (langer Schwanz). Soll ich für die kontinuierliche Transformation eine Protokolltransformation / Box-Cox durchführen und dann auch die resultierenden Daten normalisieren, um Grenzwerte zwischen 0 und 1 zu erhalten? Also werde ich die Log-Werte normalisieren. Berechnen Sie dann die SVM anhand der kontinuierlichen und kategorialen (0-1) Daten zusammen? Jubel für jede Hilfe, die Sie leisten können
Chuck
1
Können Sie dies bitte als neue Frage hinzufügen? mit Bezug zurück hier!
kjetil b halvorsen