2013-07-08 39 views
7

Tôi đang cố gắng áp dụng lựa chọn tính năng (ví dụ: lựa chọn tính năng đệ quy) trong SVM, sử dụng gói R. Tôi đã cài đặt Weka hỗ trợ tính năng lựa chọn trong LibSVM nhưng tôi đã không tìm thấy bất kỳ ví dụ cho cú pháp của SVM hoặc bất cứ điều gì tương tự. Một ví dụ ngắn sẽ là một sự trợ giúp tuyệt vời.Ví dụ về lựa chọn tính năng svm trong R

Trả lời

14

Hàm rfe trong gói caret thực hiện lựa chọn tính năng đệ quy cho các thuật toán khác nhau. Dưới đây là một ví dụ từ 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

'kích thước = c là gì (2, 5, 10, 20) 'ở đây? Điều đó có nghĩa là các tính năng 2, 10 và 20 không? – Mahsolid

+0

@Mahsolid Không, đó là số tính năng sẽ được sử dụng. rfe sẽ cố gắng tìm mô hình tốt nhất của từng kích thước được đưa ra trong vectơ đó. Kiểm tra tài liệu rfe để biết thêm chi tiết. –