W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
決策樹(shù)基本上是一個(gè)二叉樹(shù)流程圖,其中每個(gè)節(jié)點(diǎn)根據(jù)某個(gè)特征變量分割一組觀察值。
在這里,我們正在構(gòu)建一個(gè)用于預(yù)測(cè)男性或女性的決策樹(shù)分類(lèi)器。這里將采取一個(gè)非常小的數(shù)據(jù)集,有 19 個(gè)樣本。 這些樣本將包含兩個(gè)特征 - “身高”和“頭發(fā)長(zhǎng)度”。
前提條件
為了構(gòu)建以下分類(lèi)器,我們需要安裝 pydotplus
和 graphviz
。 基本上,graphviz 是使用點(diǎn)文件繪制圖形的工具,pydotplus 是 Graphviz 的 Dot 語(yǔ)言模塊。 它可以與包管理器或使用pip來(lái)安裝。
現(xiàn)在,可以在以下 Python 代碼的幫助下構(gòu)建決策樹(shù)分類(lèi)器 -
首先,導(dǎo)入一些重要的庫(kù)如下 -
import pydotplus
from sklearn import tree
from sklearn.datasets import load_iris
from sklearn.metrics import classification_report
from sklearn import cross_validation
import collections
現(xiàn)在,提供如下數(shù)據(jù)集 -
X = [[165,19],[175,32],[136,35],[174,65],[141,28],[176,15],[131,32],
[166,6],[128,32],[179,10],[136,34],[186,2],[126,25],[176,28],[112,38],
[169,9],[171,36],[116,25],[196,25]]
Y = ['Man','Woman','Woman','Man','Woman','Man','Woman','Man','Woman',
'Man','Woman','Man','Woman','Woman','Woman','Man','Woman','Woman','Man']
data_feature_names = ['height','length of hair']
X_train, X_test, Y_train, Y_test = cross_validation.train_test_split
(X, Y, test_size=0.40, random_state=5)
在提供數(shù)據(jù)集之后,需要擬合可以如下完成的模型 -
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X,Y)
預(yù)測(cè)可以使用以下 Python 代碼來(lái)完成 -
prediction = clf.predict([[133,37]])
print(prediction)
使用以下 Python 代碼來(lái)實(shí)現(xiàn)可視化決策樹(shù) -
dot_data = tree.export_graphviz(clf,feature_names = data_feature_names,
out_file = None,filled = True,rounded = True)
graph = pydotplus.graph_from_dot_data(dot_data)
colors = ('orange', 'yellow')
edges = collections.defaultdict(list)
for edge in graph.get_edge_list():
edges[edge.get_source()].append(int(edge.get_destination()))
for edge in edges: edges[edge].sort()
for i in range(2):dest = graph.get_node(str(edges[edge][i]))[0]
dest.set_fillcolor(colors[i])
graph.write_png('Decisiontree16.png')
它會(huì)將上述代碼的預(yù)測(cè)作為[‘Woman’]并創(chuàng)建以下決策樹(shù) -
可以改變預(yù)測(cè)中的特征值來(lái)測(cè)試它。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: