機器學習2 決策樹的視覺化

2021-07-26 20:09:45 字數 1646 閱讀 8772

鳶尾花資料是乙個經典的入門案例

# 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)

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")

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

附圖:

決策樹視覺化

決策樹相比其他演算法的乙個重要特性就是 可解釋性,構建決策樹的過程就相當於形成 if then 規則集。如果我們能夠將生成的決策樹視覺化,那麼我們就可以對資料集與 值之間的關係有清晰的認識。首先,我們以 sklearn.datasets 包中的鳶尾花資料集為例。from sklearn.datase...

sklearn 決策樹視覺化

來自google developer 的machine learning recipes with josh gordon youtube鏈結 這裡使用了lris flower data set 生成了乙個認花的小樹 import numpy as np from sklearn.datasets ...

Scikit learn 決策樹視覺化

平常網上看到的關於決策樹的scikit learn教程大都是直接給出容器的訓練 clf tree.decisiontreeclassifier clf clf.fit x,y clf.predict 然而有時候要的不只是 資料的結果,選擇決策樹還想要看到訓練出來的決策樹是什麼樣的。於是經過各種搜尋,...