機器學習2-決策樹的可視化

iris數據

鳶尾花數據是一個經典的入門案例

這裏寫圖片描述

python代碼

# coding=utf-8

# sklearn中爲我們準備的數據-iris
# iris有三種鳶尾花,山鳶尾花,變色鳶尾和維吉尼亞鳶尾
# 數據中有4個特徵(feature)
# sepal length (花萼長度)
# sepal width (花萼寬度)
# petal lenth (花瓣長度)
# petal width (花瓣寬度)
from sklearn.datasets import load_iris;
from sklearn import tree
import numpy as np

# 獲取鳶尾數據
iris = load_iris()

# 用來做測試的數據下標
test_idx = [0,50,100]

# 用以訓練的數據
train_target = np.delete(iris.target,test_idx)
train_data = np.delete(iris.data,test_idx,axis=0)

# 用以測試的數據
test_target = iris.target[test_idx]
test_data = iris.data[test_idx]


# 決策樹
clf = tree.DecisionTreeClassifier()
clf.fit(train_data,train_target)

# 打印出測試數據和決策樹的預言數據
# 結果應該是一樣的(即決策樹能正確預測)
print "test_target:"
print test_target
print "predict:"
print clf.predict(test_data)


# 將決策樹可視化
# 需要pydot(我安裝了兼容版本pydotplus)
# 同時需要Graphviz(請去官網www.graphviz.org下載)
from sklearn.externals.six import StringIO
import pydotplus

dot_data = StringIO()
tree.export_graphviz(clf,
                        out_file=dot_data,
                        feature_names=iris.feature_names,
                        class_names=iris.target_names,
                        filled=True,rounded=True,
                        impurity=False)

graph = pydotplus.graph_from_dot_data(dot_data.getvalue())
# 輸出pdf,顯示整個決策樹的思維過程
graph.write_pdf("viz.pdf")

決策樹是少數可以被可視化的分類器

附圖:
這裏寫圖片描述

“`

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章