Как получить значение переменной (атрибута) с помощью SVM?
Как получить значение переменной (атрибута) с помощью SVM?
Ответы:
Если вы используете штраф l-1 для вектора весов, он делает автоматический выбор признаков, поскольку веса, соответствующие нерелевантным атрибутам, автоматически устанавливаются в ноль. Смотрите эту статью . (Абсолютная) величина каждого ненулевого веса может дать представление о важности соответствующего атрибута.
Также посмотрите на этот документ, который использует критерии, полученные из SVM, для руководства выбором атрибутов.
Изабель Гийон, Андре Элиссефф, «Введение в переменную и выбор функций», JMLR, 3 (март): 1157-1182, 2003. http://jmlr.csail.mit.edu/papers/v3/guyon03a.html
Стоит прочитать, это даст хороший обзор подходов и проблем. Единственное, что я хотел бы добавить, это то, что выбор функции не обязательно улучшает прогнозирующую производительность и может легко ухудшить ее (поскольку легко переоценить критерий выбора функции). Одним из преимуществ (особенно линейных) SVM является то, что они хорошо работают с большим количеством функций (при условии правильной настройки параметра регуляризации), поэтому часто нет необходимости, если вы заинтересованы только в прогнозировании.
Если вы используете R, значение переменной можно рассчитать с помощью метода Importance в пакете rminer. Это мой пример кода:
library(rminer)
M <- fit(y~., data=train, model="svm", kpar=list(sigma=0.10), C=2)
svm.imp <- Importance(M, data=train)
Подробно см. Следующую ссылку https://cran.r-project.org/web/packages/rminer/rminer.pdf.