Jak uzyskać znaczenie zmiennej (atrybutu) za pomocą SVM?
Jak uzyskać znaczenie zmiennej (atrybutu) za pomocą SVM?
Odpowiedzi:
Jeśli zastosujesz karę l-1 do wektora ciężaru, nastąpi automatyczny wybór cech, ponieważ wagi odpowiadające nieistotnym atrybutom są automatycznie ustawiane na zero. Zobacz ten artykuł . (Absolutna) wielkość każdej niezerowej wagi może dać pojęcie o znaczeniu odpowiedniego atrybutu.
Spójrz także na ten artykuł, który wykorzystuje kryteria wyprowadzone z maszyn SVM do wyboru atrybutów.
Isabelle Guyon, André Elisseeff, „Wprowadzenie do wyboru zmiennych i cech”, JMLR, 3 (marzec): 1157-1182, 2003. http://jmlr.csail.mit.edu/papers/v3/guyon03a.html
jest warte przeczytania, da dobry przegląd podejść i problemów. Dodam tylko, że wybór funkcji niekoniecznie poprawia wydajność predykcyjną i może łatwo ją pogorszyć (ponieważ łatwo jest przesadzić z kryterium wyboru funkcji). Jedną z zalet (szczególnie liniowych) maszyn SVM jest to, że działają one dobrze z dużą liczbą funkcji (pod warunkiem, że odpowiednio dostosujesz parametr regularyzacji), więc często nie ma potrzeby, jeśli interesuje Cię tylko przewidywanie.
Jeśli używasz R, ważność zmiennej można obliczyć za pomocą metody Ważność w pakiecie rminer. To jest mój przykładowy kod:
library(rminer)
M <- fit(y~., data=train, model="svm", kpar=list(sigma=0.10), C=2)
svm.imp <- Importance(M, data=train)
Szczegółowo zapoznaj się z poniższym linkiem https://cran.r-project.org/web/packages/rminer/rminer.pdf