У меня есть набор данных, как
+--------+------+-------------------+
| income | year | use |
+--------+------+-------------------+
| 46328 | 1989 | COMMERCIAL EXEMPT |
| 75469 | 1998 | CONDOMINIUM |
| 49250 | 1950 | SINGLE FAMILY |
| 82354 | 2001 | SINGLE FAMILY |
| 88281 | 1985 | SHOP & HOUSE |
+--------+------+-------------------+
Я встраиваю его в векторное пространство формата LIBSVM
+1 1:46328 2:1989 3:1
-1 1:75469 2:1998 4:1
+1 1:49250 2:1950 5:1
-1 1:82354 2:2001 5:1
+1 1:88281 2:1985 6:1
Индексы характеристик:
- 1 "доход"
- 2 "год"
- 3 - «использовать / КОММЕРЧЕСКИЙ ЭКСПЕРТ»
- 4 это «использовать / CONDOMINIUM»
- 5 "использовать / одну семью"
- 6 "использовать / магазин и дом"
Можно ли тренировать машину опорных векторов (SVM) с использованием таких непрерывных (год, доход) и категориальных (использование) данных, как это?
categorical-data
svm
mixed-type-data
Симус Абшер
источник
источник
Ответы:
Да! Но, возможно, не так, как вы имеете в виду. В своем исследовании я часто создаю категориальные функции из непрерывно значимых, используя алгоритм, такой как рекурсивное разбиение . Я обычно использую этот подход с реализацией SVMLight машин опорных векторов, но я также использовал его с LibSVM. Вам нужно быть уверенным, что вы назначите свои разделенные категориальные признаки определенному месту в векторе характеристик во время обучения и классификации, в противном случае ваша модель окажется в тупике.
Редактировать: То есть, когда я это сделал, я назначаю первые n элементов вектора двоичным значениям, связанным с выводом рекурсивного разбиения. В моделировании бинарных объектов у вас просто есть гигантский вектор из 0 и 1, так что все выглядит одинаково для модели, если вы явно не укажете, где находятся различные объекты. Это, вероятно, слишком специфично, так как я полагаю, что большинство реализаций SVM будут делать это самостоятельно, но, если вам нравится программировать самостоятельно, возможно, стоит подумать!
источник