Переменная важность от SVM


32

Как получить значение переменной (атрибута) с помощью SVM?

Ответы:


19

Если вы используете штраф l-1 для вектора весов, он делает автоматический выбор признаков, поскольку веса, соответствующие нерелевантным атрибутам, автоматически устанавливаются в ноль. Смотрите эту статью . (Абсолютная) величина каждого ненулевого веса может дать представление о важности соответствующего атрибута.

Также посмотрите на этот документ, который использует критерии, полученные из SVM, для руководства выбором атрибутов.


1
Был ли какой-либо из этих алгоритмов реализован в R или другом программном обеспечении?
Джордж Донтас

5
Да, взгляните на пакет R punisedSVM. Другие пакеты интерес: штрафовали, elasticnet, PPL , Ларса, или в более общем плане : cran.r-project.org/web/views/MachineLearning.html
хл

7

Изабель Гийон, Андре Элиссефф, «Введение в переменную и выбор функций», JMLR, 3 (март): 1157-1182, 2003. http://jmlr.csail.mit.edu/papers/v3/guyon03a.html

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


2
Я бы даже порекомендовал всю книгу от I. Guyon и соавторов, j.mp/anblwx . Книга ESL от Hastie et al., J.mp/bW3Hr4 , также содержит интересные дискуссии по этой «горячей» теме.
ЧЛ

Я не согласен с вашей претензией; FS сам по себе интересен некоторой пояснительной информацией, которую он предоставляет (выбор маркера / SNPs является примером, когда он является основной целью анализа). Конечно, проблема в подборе функций - это проблема, но есть способы ее пропустить.

Я подчеркивал, что ФС не обязательно улучшает прогнозирующее значение и может усугубить его. Если поиск информативных признаков имеет внутреннюю важность, тогда, конечно, следует использовать FS, но вполне возможно, что прогнозирующая эффективность будет скомпрометирована, если происходит переопределение критерия выбора признаков (что происходит довольно легко). Для таких задач, как анализ микромассивов, я бы использовал (в мешках) регрессию гребня для предсказаний и что-то вроде LASSO для определения ключевых особенностей (для получения понимания биологии). Нет необходимости делать оба в одной модели.
Дикран Marsupial

1

Если вы используете 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.


2
Этот ответ неполон. Это не описывает то, что переменная важность в этом пакете пытается сообщить.
Мэтью Друри

Я добавил пример кода
Такаши Канеда
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.