基於sklearn的決策樹python3

2021-08-11 09:26:21 字數 2079 閱讀 9272

首先讀取資料,使用的是**眼鏡資料集。進行資料預處理。

import numpy as np

from sklearn.feature_extraction import dictvectorizer

data =

labels =

with open("lenses.txt") as ifile:

for line in ifile:

rowdict = {}#data需要是字典形式,因為之後需要使用dictvectorizer()修改字串資料型別,以便符合decisiontreeclassifier()

tokens = line.strip().split('\t')

rowdict['age']=tokens[0]#分割資料,將label與data分開

rowdict['prescript']=tokens[1]

rowdict['astigmatic']=tokens[2]

rowdict['tearrate']=tokens[3]

x = np.array(data)

labels = np.array(labels)

y = np.zeros(labels.shape)#初始label全為0

y[labels =='hard']=1

#當label等於這三種屬性的話,設定為1。

y[labels =='soft']=1

vec = dictvectorizer()#轉換字串資料型別

dx = vec.fit_transform(x).toarray()

檢視資料如下:

呼叫sklearn的決策樹,使用預設引數,即cart。

from sklearn.tree import decisiontreeclassifier

clf=decisiontreeclassifier()

clf.fit(dx,y)

生成的決策樹如下:

decisiontreeclassifier(class_weight=none, criterion=』gini』, max_depth=none,

max_features=none, max_leaf_nodes=none,

min_impurity_decrease=0.0, min_impurity_split=none,

min_samples_leaf=1, min_samples_split=2,

min_weight_fraction_leaf=0.0, presort=false, random_state=none,

splitter=』best』)

檢視**結果,並生成混淆矩陣:

from sklearn.metrics import classification_report

predictions = clf.predict(dx)

print(classification_report(y, predictions))

結果如下:

最後生成決策樹:

from sklearn import tree

tree.export_graphviz(clf,out_file='tree.dot')

將dot檔案轉為jpg格式:在命令視窗中輸入dot -tjpg tree.dot -o tree.jpg即可。在jupyter notebook檢視:

SKlearn之決策樹

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

Sklearn決策樹的應用

sklearn庫中的決策樹有兩種 分類決策樹 回歸決策樹。下面我們通過具體的案例學習如何使用這兩種決策樹。分類決策樹 分類決策樹 decisiontreeclassifier 就是通過對訓練集的訓練,然後對測試集中的資料做出正確的分類。這個 反映了銀行通過對乙個人的評判,然後決定是否給予其貸款 序號...

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

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