Aus meiner Sicht ist die Frage nach dem Skalieren / Nicht-Skalieren der Features beim maschinellen Lernen eine Aussage über die Maßeinheiten Ihrer Features. Und es hängt mit dem Vorwissen zusammen, das Sie über das Problem haben.
Einige der Algorithmen, wie Lineare Diskriminanzanalyse und Naive Bayes , verfügen über eine Skalierung von Funktionen Sie hätten keine Auswirkung darauf, eine manuell durchzuführen. Andere, wie z. B. knn, können davon stark betroffen sein.
Bei einem Klassifizierer vom Typ knn müssen Sie also die Abstände zwischen Stichprobenpaaren messen. Die Abstände werden natürlich von den verwendeten Maßeinheiten beeinflusst. Stellen Sie sich vor, Sie klassifizieren die Bevölkerung in Männer und Frauen und haben eine Reihe von Messungen, einschließlich der Körpergröße. Jetzt wird Ihr Klassifizierungsergebnis durch die Messungen beeinflusst, in denen die Höhe angegeben wurde. Wenn die Höhe in Nanometern gemessen wird, ist es wahrscheinlich, dass k nächste Nachbarn lediglich ähnliche Höhenmaße haben. Sie müssen skalieren.
Stellen Sie sich jedoch als Kontrastbeispiel vor, etwas zu klassifizieren, bei dem gleiche Maßeinheiten mit Rauschen aufgezeichnet wurden. Wie ein Foto oder ein Microarray oder ein Spektrum. In diesem Fall wissen Sie bereits a priori, dass Ihre Funktionen gleiche Einheiten haben. Wenn Sie sie alle skalieren würden, würden Sie den Effekt von Merkmalen verstärken, die über alle Proben hinweg konstant sind, aber mit Rauschen gemessen wurden. (Wie ein Hintergrund des Fotos). Dies hat wiederum einen Einfluss auf knn und kann die Leistung drastisch verringern, wenn Ihre Daten im Vergleich zu denen, die variieren, verrauschte konstante Werte aufweisen. Jetzt wird jede Ähnlichkeit zwischen k nächsten Nachbarn durch Rauschen beeinflusst.
Dies ist also wie bei allem anderen beim maschinellen Lernen - verwenden Sie nach Möglichkeit Vorkenntnisse und bei Black-Box-Funktionen beides und Cross-Cross validieren.