2014-06-19 37 views
1

我在scikit-learn(Python)中對ExtraTreeRegressor有兩個問題。scikit-learn(Python)中的ExtraTreeRegressor

1)爲什麼不可能增加輸入空間尺寸之上的特徵數量? [1]中的算法不限制最大特徵的數量。在某些情況下,選擇更高的max_feature可以產生更好的結果。

2)我們想使用ExtraTreeRegressor來實現擬合的Q-iteration,我們在for循環中執行ExtraTreeRegressor(96 timesteps)。 首先,我們將max_features設置爲1,然後在迭代後繪製mse(上圖)。 然後,我們將max_features增加到輸入空間的維度('auto')並繪製出mse。爲什麼在最後一種情況下mse增加了?

我們希望的是,MSE將與max_features的較大值小...

![上圖顯示了最大循環內的MSE功能設置爲1,下圖顯示了MSE 。http://imgur.com/aqgCVeU

[1] P. Geurts,D.恩斯特和L. Wehenkel, 「非常隨機樹木」,機器學習:設置爲 '自動'] [1]

圖max_features循環內,63(1),3-42,2006。

回答

0

I beli前夕參數max_features是指每棵樹可以選擇的特徵的最大數量。這意味着森林中的每棵樹最多可以選擇n_features - 這可能會導致過度擬合,因爲每棵樹都可以看到所有東西(這與您在袋裝樹算法中想要的相反)。更好的診斷圖可能是在max_features範圍內查看訓練和測試錯誤 - 您應該看到一個最佳位置,其中模型複雜性很好地捕獲了訓練和測試錯誤,而且沒有過度擬合。

要使n_features大於數據中的要素數量,您可以構建管道並對較高維空間進行隨機投影,然後將該模型放入新空間。默認情況下,我不相信ExtraTreesRegressor具有此功能,因爲sklearn具有可以執行此操作的管道對象。

相關問題