Почему масштабирование важно для линейной классификации SVM?

15

При выполнении линейной классификации SVM часто бывает полезно нормализовать тренировочные данные, например, путем вычитания среднего значения и деления на стандартное отклонение, а затем масштабировать данные теста со средним и стандартным отклонением обучающих данных. Почему этот процесс резко меняет производительность классификации?

Цинхуа
источник
1
На этот вопрос уже ответили stackoverflow.com/questions/15436367/svm-scaling-input-values
jpmuc
Спасибо, Джуампа! Тем не менее, я все еще не совсем понимаю, почему тестовый набор должен масштабироваться со средним и стандартным значением обучающего набора вместо его собственного? В некоторых случаях последние, по-видимому, работают достаточно хорошо или даже лучше, когда два класса образцов хорошо сбалансированы в тестовом наборе.
Цинхуа
1
потому что тогда вы не последовательны. Вы тестируете на разных данных. Представьте, что вы рисуете образцы из гауссовой N (mu, sigma). Вы тренировались с N (0,1) (после центрирования и масштабирования), но тестировали с N (mu, sigma)
jpmuc
Связанный: stats.stackexchange.com/questions/77876/…
Марк Клазен

Ответы:

12

Я думаю, что это можно прояснить на примере. Допустим, у вас есть два входных вектора: X1 и X2. и скажем, X1 имеет диапазон (от 0,1 до 0,8), а X2 имеет диапазон (от 3000 до 50000). Теперь ваш классификатор SVM будет линейной границей, лежащей в плоскости X1-X2. Я утверждаю, что наклон границы линейного решения должен зависеть не от диапазона X1 и X2, а от распределения точек.

Теперь давайте сделаем прогноз по точкам (0,1, 4000) и (0,8, 4000). Вряд ли будет какое-либо различие в значении функции, что сделает SVM менее точным, поскольку он будет иметь меньшую чувствительность к точкам в направлении X1.

Вайнит
источник
7

SVM пытается максимизировать расстояние между разделяющей плоскостью и опорными векторами. Если один объект (т.е. одно измерение в этом пространстве) имеет очень большие значения, он будет доминировать над другими объектами при расчете расстояния. Если вы масштабируете все объекты (например, до [0, 1]), они все одинаково влияют на метрику расстояния.

jrieke
источник