使用決策樹的流程
from sklearn import tree
clf = tree.decisiontreeclassifier(
)#例項化
clf.fit(x_train,y_train)
#訓練模型
result = clf.score(x_test,y_test)
#測試
sklearn中的決策樹演算法都包含在tree這個模組中,使用時匯入即可。
from skearn import tree
sklearn中包含了五個模組
column 1
column 2
tree.decisiontreeclassifier
分類樹tree.decisiontreeregressor
回歸樹tree.export_graphviz
將生成的樹匯出為dot格式
tree.extratreeclassifier
高隨機版本的分類樹
tree.extratreeclassifier
高隨機版本的回歸樹
tree.decisiontreeclassifier官網介紹
decisiontreeclassifier的引數很多,其中比較重要的有以下幾個:
下邊分別介紹這幾個引數的用法
在構建決策樹的時候,我們往往希望得到一棵最佳的樹,而這個最佳的衡量指標通常指不純度。一般來說,不純度越低,決策樹對訓練資料擬合的越好。
不純度有兩種計算方法:資訊熵entropy和gini指數
e nt
ropy
(t)=
−∑i=
0npi
ln(p
i)gi
ni(t
)=1−
∑i=0
npi2
entropy(t)=-\sum_^p_iln(p_i) \\ gini(t)=1-\sum_^p_i^2
entrop
y(t)
=−i=
0∑n
pil
n(pi
)gi
ni(t
)=1−
i=0∑
npi
2criterion引數是用來決定計算不純度的方法,可以輸入『entropy』或『gini』,預設為gini係數。
應該注意的是,當引數選擇『entropy』時,實際上sklearn計算的是該資訊熵的資訊增益,即父節點與這個節點資訊熵的差值。
與gini係數相比,資訊熵對不純度更加敏感,在高維度資料或者噪音較多的資料中,選擇資訊熵造成過擬合的可能性更大;在資料量較少,模型欠擬合的情況下,應該優先選擇資訊熵。
splitter是決策樹的節點在進行分枝時選擇特徵的方式,有『random』和『best』兩種方式。『best』代表決策樹的節點在分枝的時候優先選擇更加重要的特徵;『random』會在選擇特徵的時候更加隨機,樹因此會因為加入了不必要的特徵而變得更深更大,可以一定程度上防止過擬合現象的發生。
random_state用來設定分枝時隨機模式的引數,預設為none。高維度時隨機性會表現得更明顯,低維度的資料隨機性幾乎不會出現。輸入乙個整數時會生成同一棵樹。
這兩個引數都可以調節模型的過擬合情況。
decisiontreeregressor官網
回歸樹和分類樹的大部分引數、介面的用法相同,需要注意的是,回歸樹沒有標籤分別是否均衡的問題,因此沒有class_weight這個引數。
SKlearn之決策樹
決策樹是一種非引數的監督學習方法。模組 sklearn.tree sklearn建模的步驟 1 選擇並建立模型 例 clf tree.decisiontreeclassifier 2 提供資料訓練模型 例 clf clf.fit x train,y train 3 獲取需要的資訊 例 result ...
sklearn調包俠之決策樹演算法
之前我們詳細講解過決策樹的原理,詳細內容可以參考該鏈結 改進演算法 但使用資訊增益作為特徵選擇指標 id3演算法 容易造成過擬合。舉乙個簡單例子,每個類別如果都有乙個唯一id,通過id這個特徵就可以簡單分類,但這並不是有效的。為了解決這個問題,有了c4.5和cart演算法,其區別如下所示 資料匯入與...
sklearn 決策樹例子 決策樹 規則挖掘應用
本次主要簡單介紹下決策樹在風控規則中的簡單應用,讓讀者快速入門。在後續的文章中,會逐一介紹決策樹的各種演算法原理,如資訊增益 id3演算法 c4.5演算法 c5.0演算法等,希望感興趣的朋友可以關注下。前言 決策樹是資料探勘中十分常用的分類方法,歸屬於機器學習中的監督學習演算法。監督學習就是給出一堆...