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