2017-01-31 10 views
-1

Пусть у меня есть несколько значений следующим образом:Означает ли ось нормализации разницу в предсказании в SVM?

x1  x2   x3   y 
1  40   0.9   1 
0.9  80   0.5   1 
0.6  50   0.6   0 
0.4  30   0.7   0 

делает значение выглядеть следующим образом:

x1  x2   x3   y 
1  0.5  0.9   1 
0.9  1   0.5   1 
0.6  0.7  0.6   0 
0.4  0.8  0.7   0 

колонок у есть выход. Будет ли это иметь значение, если я нормализую по столбцу x2 (ось = 0), а не по рядам (ось = 1).

будут ли прогнозы меняться?

Может ли кто-нибудь объяснить математику позади нее?

+2

Что обозначают другие значения? (ниже «сделать значения похожими:») x1, x2, x3 и т. д. обозначает функции. Особенности могут быть в разных размерах (такие единицы, как метр, см, секунды и т. Д.) И масштаб. Так что это не имеет никакого смысла, если вы нормализуете его по строкам. Они должны быть нормализованы в столбце, чтобы иметь смысл. –

+0

@ Jibin Да Вивек Кумар прав, говоря, что нормализация по строкам не имеет никакого смысла. Нормировки по столбцам (или функциям) выполняются так, чтобы все функции находились в одном диапазоне. Это делается так, чтобы вычисление расстояния, которое есть в SVM, является правильным, и оценка веса для функций выполняется правильно. Нормализация по строкам даст неоднозначные результаты. – prashanth

ответ

1

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

Рассмотрим следующий пример: у нас есть 3 случая: A = (0, 80, 0), B = (1, 40, 0,9) и C = (0,1, 50, 0). Если мы ожидаем, что все функции будут обрабатываться одинаково, мы хотели бы, чтобы расстояние между A и C было меньше, чем B и C. Однако функция расстояния привела бы к меньшему расстоянию между B и C.

Взято из documentation:

Поддержка алгоритмов векторной машины не является инвариантом по шкале, поэтому настоятельно рекомендуется масштабировать ваши данные. Например, масштабируйте каждый атрибут на входном векторе X до [0,1] или [-1, + 1] или стандартизируйте его , чтобы иметь среднее значение 0 и дисперсию 1. Обратите внимание, что такое же масштабирование должно быть , примененное к тестовый вектор для получения значимых результатов. См. Раздел Предварительная обработка данных для получения более подробной информации о масштабировании и нормализации.