首先讀取資料,使用的是**眼鏡資料集。進行資料預處理。
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演算法等,希望感興趣的朋友可以關注下。前言 決策樹是資料探勘中十分常用的分類方法,歸屬於機器學習中的監督學習演算法。監督學習就是給出一堆...