1. 程式人生 > >sklearn學習7-----決策樹(tree)

sklearn學習7-----決策樹(tree)

imp 分布 nodes 但是 amp 選擇 width .com 開始

1、使用示例

技術分享圖片

2、樹模型參數:【很多參數都是用來限制樹過於龐大,即擔心其過擬合】

# 1.criterion gini or entropy:用什麽作為衡量標準 ( 熵值或者Gini系數 )。

# 2.splitter best or random 前者是在所有特征中找最好的切分點 後者是在部分特征中(數據量大的時候)【當特征過大時,從頭開始遍歷會過慢,一般選默認值best)】

# 3.max_features int or None(所有),optional(default=None) , log2,sqrt,N 特征小於50的時候一般使用所有的 【通常使用默認值None】

# 4.max_depth int or None:默認值為None。數據少或者特征少的時候可以不管這個值,如果模型樣本量多,特征也多的情況下,可以嘗試限制下樹的深度

# 5.min_samples_split 如果某節點的樣本數少於min_samples_split,則不會繼續再嘗試選擇最優特征來進行劃分,如果樣本量不大,不需要管這個值。如果樣本量數量級非常大,則推薦增大這個值。

# 6.min_samples_leaf 這個值限制了葉子節點最少的樣本數,如果某葉子節點數目小於樣本數,則會和兄弟節點一起被剪枝,如果樣本量不大,不需要管這個值,大些如10W可是嘗試下5

# 7.min_weight_fraction_leaf

這個值限制了葉子節點所有樣本權重和的最小值,如果小於這個值,則會和兄弟節點一起被剪枝默認是0,就是不考慮權重問題。一般來說,如果我們有較多樣本有缺失值,或者分類樹樣本的分布類別偏差很大,就會引入樣本權重,這時我們就要註意這個值了。

# 8.max_leaf_nodes 通過限制最大葉子節點數,可以防止過擬合,默認是"None”,即不限制最大的葉子節點數。 如果加了限制,算法會建立在最大葉子節點數內最優的決策樹。如果特征不多,可以不考慮這個值,但是如果特征分成多的話,可以加以限制,具體的值可以通過交叉驗證得到。

# 9.class_weight 指定樣本各類別的的權重,主要是為了防止訓練集某些類別的樣本過多, 導致訓練的決策樹過於偏向這些類別。這裏可以自己指定各個樣本的權重。如果使用“balanced”,則算法會自己計算權重,樣本量少的類別所對應的樣本權重會高。

# 10.min_impurity_split 這個值限制了決策樹的增長,如果某節點的不純度,(基尼系數,信息增益,均方差,絕對差)小於這個閾值。則該節點不再生成子節點。即為葉子節點 。

sklearn學習7-----決策樹(tree)