2012-08-13 54 views
3

我正在處理一個大型數據集,所以希望刪除多餘的變量並調整每個分支的最優m變量。在R中,有兩種方法,rfcv和tuneRF,可以幫助完成這兩項任務。我試圖將它們結合起來以優化參數。隨機森林優化與調整和交叉驗證

rfcv工作大致如下:

create random forest and extract each variable's importance; 
while (nvar > 1) { 
    remove the k (or k%) least important variables; 
    run random forest with remaining variables, reporting cverror and predictions 
} 

目前,我已經重新編碼rfcv工作如下:

create random forest and extract each variable's importance; 
while (nvar > 1) { 
    remove the k (or k%) least important variables; 
    tune for the best m for reduced variable set; 
    run random forest with remaining variables, reporting cverror and predictions; 
} 

這當然,通過一個數量級增加了運行時間。我的問題是這是多麼必要(使用玩具數據集很難得到一個想法),以及是否有其他方式可以預期在更短的時間內大致工作。

回答

11

一如既往,答案取決於數據。一方面,如果沒有任何不相關的特徵,那麼你可以完全忽略特徵消除。隨機森林實現中的樹構建過程已經嘗試選擇預測特徵,這爲您提供了一些針對不相關特徵的保護。

Leo Breiman發表了一個演講,他將1000個不相關的特徵引入了一些醫學預測任務,這些任務只有輸入域中的少數實際特徵。當他在變量重要性中使用單個過濾器消除了90%的特徵時,隨機森林的下一次迭代沒有選擇任何不相關的特徵作爲其樹中的預測器。