2013-07-08 9 views
7

Rパッケージを使用して、SVMで機能選択(例:再帰的な機能選択)を適用しようとしています。私はLibSVMの機能選択をサポートするWekaをインストールしましたが、私はSVMなどの構文の例は見つかりませんでした。短い例が大きな助けになるでしょう。RのSVM機能選択の例

答えて

14

caretパッケージ内の関数rfeは、さまざまなアルゴリズムの再帰的な機能選択を実行します。ここでcaretdocumentationからの例です:

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

がここで 'サイズの=のC(2、5、10、20)'は何ですか?それは、フィーチャー2,10、および20を意味しますか? – Mahsolid

+0

@Mahsolidいいえ、それは使用される機能の数です。 rfeはそのベクトルに与えられた各サイズの最良のモデルを見つけようとします。詳細については、rfeドキュメントを確認してください。 –