2016-04-23 4 views
0

Представьте, у меня есть следующие векторы особенность:Как поддерживает векторную машину с запутанными векторами функций?

Учебные векторы:

Класс 1: [3, 5, 4, 2, 0, 3, 2], [33, 50, 44, 22 , 0, 33, 20]

Класс 2: [1, 2, 3, 1, 0, 0, 4], [11, 22, 33, 11, 0, 0, 44]

Векторы испытаний:

Cla сс 1: [330, 550, 440, 220, 0, 330, 200]

Класс 2: [110, 220, 333, 111, 0, 0, 444]

Я использую SVM , который учится из обучающих векторов, а затем классифицирует тестовые образцы.

Как вы можете видеть, векторы объектов имеют очень разные размеры: особенности набора для обучения - очень низкие значения, а векторы тестовых множеств - очень высокие значения.

Мой вопрос заключается в том, запутан ли SVM для изучения таких векторов признаков?

Конечно, когда я делаю вектор масштабирования разница все же есть:

, например, после применения standardScaler() на характеристические векторы для класса 1:

Обучение:

[0,19 1,53 0,86 -0,48 -1,82 0,19 -0,48]

[20.39 31.85 27.80 12.99 20.39 11.64 -1,82]

Тест: [220.45 368.63 294.54 146.35 -1.82 220.45 132.88]

В принципе, это проблема реального мира, и я спрашиваю об этом, так как я разработал способ предварительного масштабирования этих векторов признаков для моего конкретного случая.

После того как я хотел бы использовать мой метод предварительного масштабирования, характеристические векторы для класса 1 станут:

Обучение:

[3. 5. 4. 2. 0. 3. 2.]

[2,75 4,16666667 3,66666667 1,83333333 0. 2,75 1,66666667]

Тест: [2,84482759 4,74137931 3,79310345 1,89655172 2,84482759 0. 1,72413793]

, что делает их очень похожими по своей природе.

Это выглядит еще лучше, когда standardScaler() наносится на предварительно масштабируется векторов:

Обучение:

[0,6 1. 0,8 0,4 0,6 0,4 0]

[0,55 0,83333333 0.73333333 0.36666667 0. 0,55 0,33333333]

Тест: [0,56896552 0,94827586 0,75862069 0,37931034 0,56896552 0. 0,34482759]

Окончательный вопрос: каким образом мой метод предварительного масштабирования поможет SVM? Это скорее теоретический вопрос, и любое понимание этого оценивается.

ответ

3

Да, это повлияет на производительность SVM. Кажется, ваши тестовые векторы - это просто масштабированные версии ваших векторов обучения. SVM не имеет никакого представления о том, что масштабирование в вашем случае не имеет значения (если вы не представляете его многократно масштабируемыми векторами обучения)

Общепринятая практика для векторов признаков, в которых масштабирование не имеет значения, заключается в масштабировании всего теста и обучения векторов до общей длины.