1,criterion: 」gini」 or 「entropy」(default=」gini」)是計算屬性的gini(基尼不純度)仍是entropy(信息增益),來選擇最合適的節點。node
2,splitter: 」best」 or 「random」(default=」best」)隨機選擇屬性仍是選擇不純度最大的屬性,建議用默認。算法
3,max_features: 選擇最適屬性時劃分的特徵不能超過此值。bootstrap
當爲整數時,即最大特徵數;當爲小數時,訓練集特徵數*小數;
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.數據結構
4,max_depth: (default=None)設置樹的最大深度,默認爲None,這樣建樹時,會使每個葉節點只有一個類別,或是達到min_samples_split。dom
5,min_samples_split:根據屬性劃分節點時,每一個劃分最少的樣本數。性能
6,min_samples_leaf:葉子節點最少的樣本數。spa
7,max_leaf_nodes: (default=None)葉子樹的最大樣本數。
.net
8,min_weight_fraction_leaf: (default=0) 葉子節點所須要的最小權值
rest
9,verbose:(default=0) 是否顯示任務進程
進程
1,n_estimators=10:決策樹的個數,越多越好,可是性能就會越差,至少100左右(具體數字忘記從哪裏來的了)能夠達到可接受的性能和偏差率。
2,bootstrap=True:是否有放回的採樣。
3,oob_score=False:oob(out of band,帶外)數據,即:在某次決策樹訓練中沒有被bootstrap選中的數據。多單個模型的參數訓練,咱們知道能夠用cross validation(cv)來進行,可是特別消耗時間,並且對於隨機森林這種狀況也沒有大的必要,因此就用這個數據對決策樹模型進行驗證,算是一個簡單的交叉驗證。性能消耗小,可是效果不錯。
4,n_jobs=1:並行job個數。這個在ensemble算法中很是重要,尤爲是bagging(而非boosting,由於boosting的每次迭代之間有影響,因此很難進行並行化),由於能夠並行從而提升性能。1=不併行;n:n個並行;-1:CPU有多少core,就啓動多少job。
5,warm_start=False:熱啓動,決定是否使用上次調用該類的結果真後增長新的。
6,class_weight=None:各個label的權重。
1,predict_proba(x):給出帶有機率值的結果。每一個點在全部label的機率和爲1.
2,predict(x):直接給出預測結果。內部仍是調用的predict_proba(),根據機率的結果看哪一個類型的預測值最高就是哪一個類型。
3,predict_log_proba(x):和predict_proba基本上同樣,只是把結果給作了log()處理。
附 Random Forest和Gradient Tree Boosting參數詳解,圖片來源:https://www.zhihu.com/question/34470160
經過總結模型調參常見的問題,咱們能夠把模型的參數分爲4類:目標類、性能類、效率類和附加類。下表詳細地展現了4個模型參數的意義: