sklearn決策樹演算法總結

2021-10-04 19:14:07 字數 1898 閱讀 7470

使用決策樹的流程

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​

pi​l

n(pi

​)gi

ni(t

)=1−

i=0∑

n​pi

2​criterion引數是用來決定計算不純度的方法,可以輸入『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演算法等,希望感興趣的朋友可以關注下。前言 決策樹是資料探勘中十分常用的分類方法,歸屬於機器學習中的監督學習演算法。監督學習就是給出一堆...