2013-07-08 19 views
7

R paketini kullanarak SVM'de özellik seçimini (örn., Özyinelemeli seçim) uygulamayı deniyorum. LibSVM'de özellik seçimini destekleyen Weka'yı kurdum ancak SVM'nin veya benzer bir şeyin sözdizimi için herhangi bir örnek bulamadım. Kısa bir örnek, büyük bir yardım olurdu.svm özellik seçimi için örnek R

cevap

14

caret paketindeki rfe işlevi, çeşitli algoritmalar için yinelemeli özellik seçimi gerçekleştirir.

library(caret) 
data(BloodBrain, package="caret") 
x <- scale(bbbDescr[,-nearZeroVar(bbbDescr)]) 
x <- x[, -findCorrelation(cor(x), .8)] 
x <- as.data.frame(x) 
svmProfile <- rfe(x, logBBB, 
        sizes = c(2, 5, 10, 20), 
        rfeControl = rfeControl(functions = caretFuncs, 
              number = 200), 
        ## pass options to train() 
        method = "svmRadial") 

# Here's what your results look like (this can take some time) 
> svmProfile 

Recursive feature selection 

Outer resampling method: Bootstrap (200 reps) 

Resampling performance over subset size: 

    Variables RMSE Rsquared RMSESD RsquaredSD Selected 
2 0.6106 0.4013 0.05581 0.08162   
5 0.5689 0.4777 0.05305 0.07665   
10 0.5510 0.5086 0.05253 0.07222   
20 0.5203 0.5628 0.04892 0.06721   
71 0.5202 0.5630 0.04911 0.06703  * 

    The top 5 variables (out of 71): 
    fpsa3, tcsa, prx, tcpa, most_positive_charge 
+0

'boyutları = C ne (2, 5, 10, 20) 'burada: Burada caretdocumentation bir örnek? Bu 2, 10 ve 20 özellikleri anlamına mı geliyor? – Mahsolid

+0

@Mahsolid Hayır, kullanılacak özelliklerin sayısı. rfe, bu vektörde verilen her boyutta en iyi modeli bulmaya çalışacaktır. Daha fazla bilgi için rfe belgelerini kontrol edin. –