2017-04-11 24 views
0

我有一個簡單的代碼,它使用rfe在我的數據的不同時間段執行特徵選擇。我用下面的rfeControlrfe函數調用:在R中,插入符號RFE函數選擇的尺寸大於允許的特徵

control <- rfeControl(functions=rfFuncs, method="cv", number=10) 
results <- rfe(feature_selection_data 
       , feature_selection_target$value 
       , sizes = c(1:12) 
       , rfeControl = control) 

每次這個運行我值插入到一個列表時間:

include <- predictors(results) 
include_list[[row]] <- include 

不知怎的,我雖然設置大小爲最大12,在2在我的20個時間段中,特徵選擇結果爲65個特徵(這是初始數據集中特徵的總數)。

我是新來使用這個功能,我不知道我在這裏做錯了什麼,任何幫助表示讚賞!

謝謝!

回答

0

如果你看一下RFE算法的描述(http://topepo.github.io/caret/recursive-feature-elimination.html),你會發現有必要在第一次迭代中包含所有的特徵。

您的下一個問題可能是如何選擇具有較少特徵的次優模型。一個答案可以在這裏找到(雖然這不是太有用): Access all models produced by rfe in caret

我會建議調整分級功能,以允許不在誤差方面優化的功能集,但有較小的(參見:http://topepo.github.io/caret/recursive-feature-elimination.html#the-selectsize-function)。

相關問題