SVM масштабирование входных значений

Я использую libSVM. Скажем, мои значения функций находятся в следующем формате:

                         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

Я думаю, что есть два масштабирования могут быть применены.

масштабировать каждый экземплярный вектор так, чтобы каждый вектор имел нулевое среднее значение и единичную дисперсию.

    ( (f11, f12, f13, f14) - mean((f11, f12, f13, f14) ). /std((f11, f12, f13, f14) )

масштабировать каждую колонку вышеупомянутой матрицы до диапазона. например [-1, 1]

Согласно моим экспериментам с ядром RBF (libSVM), я обнаружил, что второе масштабирование (2) улучшает результаты примерно на 10%. Я не понял причину, почему (2) дает мне улучшенные результаты.

Кто-нибудь может объяснить мне, в чем причина применения масштабирования и почему второй вариант дает мне улучшенные результаты?

Ответы на вопрос(2)

Ваш ответ на вопрос