Так что я играл с SVM, и мне интересно, хорошо ли это делать:
У меня есть набор непрерывных функций (от 0 до 1) и набор категориальных функций, которые я преобразовал в фиктивные переменные. В этом конкретном случае я кодирую дату измерения в фиктивной переменной:
У меня есть 3 периода, из которых у меня есть данные, и я зарезервировал для них 3 номера функций:
20: 21: 22:
Таким образом, в зависимости от того, из какого периода поступают данные, различным функциям присваивается 1; остальные получат 0.
Будет ли SVM работать должным образом с этим, или это плохая вещь?
Я использую SVMLight и линейное ядро.
Ответы:
SVM будет обрабатывать как двоичные, так и непрерывные переменные, пока вы выполняете некоторую предварительную обработку: все функции должны быть масштабированы или нормализованы. После этого шага, с точки зрения алгоритмов, не имеет значения, являются ли объекты непрерывными или двоичными: для двоичных файлов он видит выборки, которые «далеко» или очень похожи; для непрерывного существуют также промежуточные значения. Ядро не имеет значения в отношении типа переменных.
источник
Тиражирование моего ответа от http://www.quora.com/Machine-Learning/What-are-good-ways-to-handle-discrete-and-continuous-inputs-together/answer/Arun-Iyer-1
источник