Sklearn決策樹的應用

2021-09-11 03:41:58 字數 4224 閱讀 1832

sklearn庫中的決策樹有兩種:分類決策樹、回歸決策樹。下面我們通過具體的案例學習如何使用這兩種決策樹。

分類決策樹

分類決策樹(decisiontreeclassifier)就是通過對訓練集的訓練,然後對測試集中的資料做出正確的分類。

這個**反映了銀行通過對乙個人的評判,然後決定是否給予其貸款

序號年齡

有工作有自己的房子

信貸情況類別0

青年否否一般

否1青年否

否好否2

青年是否好

是3青年是

是一般是4

青年否否一般

否5中年否

否一般否6

中年否否好

否7中年是

是好是8

中年否是非常好是9

中年否是非常好是10

老年否是非常好是11

老年否是好

是12老年是

否好是13

老年是否非常好是14

老年否否一般

否我們通過對這個資料集的訓練,然後**乙個人是否會得到銀行的貸款

from sklearn.tree import decisiontreeclassifier

import graphviz

from sklearn import tree

''' function : 使用決策樹分類器訓練訓練集,然後使用測試集測試訓練效果

author : lemon

''''''

重要方法:

1、fit(x,y)

x : 訓練集資料

y : 訓練集資料對應的目標值(類標籤),為整數或字串

2、predict(x)

x : 測試集樣本

return : **的類或**值

3、predict_proba(x)

x : 測試集樣本

return : **為每個類別的概率

4、decision_path(x)

x : 測試集樣本

return : 返回樹中決策路徑,非0元素表示樣本通過節點

'''# 載入資料集

defloaddataset()

: data =[[

0,0,

0,0]

,[0,

0,0,

1],[

0,1,

0,1]

,[0,

1,1,

0],[

0,0,

0,0]

,[1,

0,0,

0],[

1,0,

0,1]

,[1,

1,1,

1],[

1,0,

1,2]

,[1,

0,1,

2],[

2,0,

1,2]

,[2,

0,1,

1],[

2,1,

0,1]

,[2,

1,0,

2],[

2,0,

0,0]

,]target =

['no'

,'no'

,'yes'

,'yes'

,'no'

,'no'

,'no'

,'yes'

,'yes'

,'yes'

,'yes'

,'yes'

,'yes'

,'yes'

,'no'

]return data,target

if __name__ ==

'__main__'

: data,target = loaddataset(

) clf = decisiontreeclassifier(

)# 根據訓練集構建決策分類器

clf.fit(data,target)

# 需要**的變數

test_data =[[

0,1,

0,1]

,[1,

1,1,

1],[

0,0,

0,0]

]# 匯出決策樹的操作

dot_data = tree.export_graphviz(clf)

graph = graphviz.source(dot_data)

graph.render(

'tree'

)# result **結果

result = clf.predict(test_data)

print

('**結果'

)print

(result)

# chance **為每個類別的概率

chance = clf.predict_proba(test_data)

print

('**為每個類別的概率'

)print

(chance)

**結果

**結果

['yes'

'yes'

'no'

]**為每個類別的概率[[

0.1.

][0.

1.][

1.0.

]]

回歸決策樹

回歸決策樹(decisiontreeregressor)是通過對資料的擬合,然後**測試資料的值。

下面我們通過對boston資料使用決策樹模型,**新資料測值。

from sklearn.datasets import load_boston

from sklearn.tree import decisiontreeregressor

import time

import numpy as np

''' function :

author :

''''''

重要方法:

1、fit(x,y)

x : 訓練集樣本

y : 目標值(實數)

2、predict(x)

x : 測試集樣本

return : 基於x的**值

3、score(x,y)

x : 測試樣本

y : x對應的真值

'''# 載入資料

boston = load_boston(

)# 將資料分為訓練集和測試集兩部分

train_data = boston.data[

:400:]

train_target = boston.target[

:400:]

test_data = boston.data[

400::]

test_target = boston.target[

400::]

regressor = decisiontreeregressor(random_state=0)

print

(f": begin training..."

)regressor.fit(train_data,train_target)

# result **的值

print

(f": begin testing..."

)result = regressor.predict(test_data)

mse =

((np.array(

[result]

)- np.array(test_target))**

2)/len

(test_target)

print

('mse = '

+str

(mse.

sum().

round(3

)))

**結果

我們將資料分為了兩部分:訓練集和測試集,然後觀察模型對測試集的**情況:

2019-02-20 11:41:22: begin training...

2019-02-20 11:41:22: begin testing...

mse = 45.055

得到模型的均方誤差mse=45.055,由於資料集不大,我們也沒有進行特徵選擇,所以均方誤差有點大。這裡我們僅僅是展示一下如何使用決策樹模型進行回歸,相應的特徵選擇還需要根據具體資料集來分析。

SKlearn之決策樹

決策樹是一種非引數的監督學習方法。模組 sklearn.tree sklearn建模的步驟 1 選擇並建立模型 例 clf tree.decisiontreeclassifier 2 提供資料訓練模型 例 clf clf.fit x train,y train 3 獲取需要的資訊 例 result ...

sklearn 決策樹例子 決策樹 規則挖掘應用

本次主要簡單介紹下決策樹在風控規則中的簡單應用,讓讀者快速入門。在後續的文章中,會逐一介紹決策樹的各種演算法原理,如資訊增益 id3演算法 c4.5演算法 c5.0演算法等,希望感興趣的朋友可以關注下。前言 決策樹是資料探勘中十分常用的分類方法,歸屬於機器學習中的監督學習演算法。監督學習就是給出一堆...

sklearn 決策樹學習筆記

遍歷眾多特徵,計算每一次分類後的資訊增益,選取分類後熵值最小的特徵作為當前分類節點 防止過擬合,當每個資料都是乙個葉結點的時候,分類正確率是100 但是樹過於龐大。from sklearn.datasets.california housing import fetch california hou...