Як отримати значення змінної (атрибуту) за допомогою SVM?
Як отримати значення змінної (атрибуту) за допомогою SVM?
Відповіді:
Якщо ви використовуєте штраф-1 на ваговому векторі, він робить автоматичний вибір функції, оскільки ваги, що відповідають невідповідним атрибутам, автоматично встановлюються на нуль. Дивіться цей документ . (Абсолютна) величина кожної ненульової ваги може дати уявлення про важливість відповідного атрибута.
Також розгляньте цей документ, який використовує критерії, отримані від SVM для керування вибором атрибутів.
Ізабель Гіон, Андре Еліссефф, "Вступ до вибору змінних та особливостей", JMLR, 3 (березень): 1157-1182, 2003. http://jmlr.csail.mit.edu/papers/v3/guyon03a.html
варто прочитати, це дасть хороший огляд підходів та проблем. Я хотів би додати одне, що вибір функцій не обов'язково покращує прогнозовану ефективність, і може легко погіршити її (адже легко переоцінити критерій вибору функції). Однією з переваг (особливо лінійних) SVM є те, що вони добре працюють з великою кількістю функцій (забезпечуючи правильне налаштування параметра регуляризації), тому часто немає необхідності, якщо вас цікавить лише прогнозування.
Якщо ви використовуєте R, значення змінної можна обчислити методом важливості в пакеті 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