SVM-Skalierung der Eingabewerte
Ich benutze libSVM. Angenommen, meine Feature-Werte haben das folgende Format:
instance1 : f11, f12, f13, f14
instance2 : f21, f22, f23, f24
instance3 : f31, f32, f33, f34
instance4 : f41, f42, f43, f44
..............................
instanceN : fN1, fN2, fN3, fN4
Ich denke da können zwei Skalierungen angewendet werden.
Skalieren Sie jeden Instanzvektor so, dass jeder Vektor den Mittelwert Null und die Einheitsvarianz aufweist.
( (f11, f12, f13, f14) - mean((f11, f12, f13, f14) ). /std((f11, f12, f13, f14) )
Skalieren Sie jede Spalte der obigen Matrix auf einen Bereich. zum Beispiel [-1, 1]
Nach meinen Experimenten mit dem RBF-Kernel (libSVM) habe ich festgestellt, dass die zweite Skalierung (2) die Ergebnisse um ca. 10% verbessert. Ich habe den Grund nicht verstanden, warum (2) zu besseren Ergebnissen führt.
Kann mir jemand erklären, warum die Skalierung angewendet wurde und warum die zweite Option zu besseren Ergebnissen führt?