Random Forest演算法中的參數詳解

來源:互聯網
上載者:User
本篇不是介紹RF的,關於RF網上有很多通俗易懂的解釋
西瓜書與統計學習方法等很多教材中的解釋也都足夠
本篇僅針對如何使用sklearn中的RandomForestClassifier作記錄
一、代碼怎麼寫 [python]  view plain  copy  print ? class sklearn.ensemble.RandomForestClassifier(n_estimators=10, crite-rion=’gini’, max_depth=None,     min_samples_split=2, min_samples_leaf=1,     min_weight_fraction_leaf=0.0,     max_features=’auto’,     max_leaf_nodes=None, bootstrap=True,     oob_score=False, n_jobs=1, ran-dom_state=None, verbose=0,     warm_start=False, class_weight=None)    
二、關於參數 其中關於決策樹的參數:

criterion: ”gini” or “entropy”(default=”gini”)是計算屬性的gini(基尼不純度)還是entropy(資訊增益),來選擇最合適的節點。

splitter: ”best” or “random”(default=”best”)隨機播放屬性還是選擇不純度最大的屬性,建議用預設。

max_features: 選擇最適屬性時劃分的特徵不能超過此值。

當為整數時,即最大特徵數;當為小數時,訓練集特徵數*小數;

if “auto”, then max_features=sqrt(n_features).

If “sqrt”, thenmax_features=sqrt(n_features).

If “log2”, thenmax_features=log2(n_features).

If None, then max_features=n_features.

max_depth: (default=None)設定樹的最大深度,預設為None,這樣建樹時,會使每一個分葉節點只有一個類別,或是達到min_samples_split。 min_samples_split:根據屬性劃分節點時,每個劃分最少的樣本數。

min_samples_leaf:葉子節點最少的樣本數。

max_leaf_nodes: (default=None)葉子樹的最大樣本數。

min_weight_fraction_leaf: (default=0) 葉子節點所需要的最小權值 verbose:(default=0) 是否顯示任務進程
關於隨機森林特有的參數: n_estimators=10:決策樹的個數,越多越好,但是效能就會越差,至少100左右(具體數字忘記從哪裡來的了)可以達到可接受的效能和誤差率。  bootstrap=True:是否有放回的採樣。  

oob_score=False:oob(out of band,帶外)資料,即:在某次決策樹訓練中沒有被bootstrap選中的資料。多單個模型的參數訓練,我們知道可以用cross validation(cv)來進行,但是特別消耗時間,而且對於隨機森林這種情況也沒有大的必要,所以就用這個資料對決策樹模型進行驗證,算是一個簡單的交叉驗證。效能消耗小,但是效果不錯。  

n_jobs=1:並行job個數。這個在ensemble演算法中非常重要,尤其是bagging(而非boosting,因為boosting的每次迭代之間有影響,所以很難進行並行化),因為可以並行從而提高效能。1=不並行;n:n個並行;-1:CPU有多少core,就啟動多少job

warm_start=False:暖開機,決定是否使用上次調用該類的結果然後增加新的。  

class_weight=None:各個label的權重。  
進行預測可以有幾種形式:

predict_proba(x):給出帶有機率值的結果。每個點在所有label的機率和為1.  

predict(x):直接給出預測結果。內部還是調用的predict_proba(),根據機率的結果看哪個類型的預測值最高就是哪個類型。  

predict_log_proba(x):和predict_proba基本上一樣,只是把結果給做了log()處理。  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.