【機(jī)器學(xué)習(xí)基礎(chǔ)】讓人驚艷的決策樹(shù)可視化
?本文目標(biāo)
本文的目標(biāo)是引入dtreeviz來(lái)可視化分類(lèi)決策樹(shù),比scikit-learn包自帶的可視化效果更好。我們將在Scikit學(xué)習(xí)使用iris數(shù)據(jù)集學(xué)習(xí)決策樹(shù)教程。
請(qǐng)注意,如果我們使用決策樹(shù)進(jìn)行回歸,可視化效果會(huì)有所不同。
? ? ? ?
? ? ?
?scikit-learn和dtreeviz可視化對(duì)比
? ? ? ?
? ? ?
?
前期準(zhǔn)備
首先使用pip或conda命令安裝模塊,如下所示。
pip install dtreevizpip?install?graphviz?#這個(gè)包需要下載安裝,并配置對(duì)應(yīng)的變量環(huán)境
?
加載數(shù)據(jù)集
import numpy as npfrom sklearn.datasets import load_iris, load_bostonfrom sklearn import treeiris = load_iris()df_iris = pd.DataFrame(iris['data'], columns=iris['feature_names'])df_iris['target'] = iris['target']df_iris.head()
sepal ? length (cm) | sepal width (cm) | petal length (cm) | petal width (cm) | target |
5.1 | 3.5 | 1.4 | 0.2 | 0 |
4.9 | 3 | 1.4 | 0.2 | 0 |
4.7 | 3.2 | 1.3 | 0.2 | 0 |
4.6 | 3.1 | 1.5 | 0.2 | 0 |
5 | 3.6 | 1.4 | 0.2 | 0 |
?
訓(xùn)練決策樹(shù)
# Train the Decision tree modelclf = tree.DecisionTreeClassifier()clf?=?clf.fit(iris.data,?iris.target)
?
可視化決策樹(shù)
Scikit-learn
import graphvizdot_data = tree.export_graphviz(clf, out_file=None,feature_names=iris.feature_names,class_names=iris.target_names,filled=True, rounded=True,special_characters=True)graph = graphviz.Source(dot_data)graph
?
? ? ? ?
? ? ?
dtreeviz
from dtreeviz.trees import dtreeviz
viz = dtreeviz(clf,iris['data'],iris['target'],target_name='',feature_names=np.array(iris['feature_names']),class_names={0:'setosa',1:'versicolor',2:'virginica'})viz
? ? ? ?
? ? ?
?
通過(guò)上面的對(duì)比,發(fā)現(xiàn)Treeviz的可視化會(huì)更好
你可以在每個(gè)節(jié)點(diǎn)上看到每個(gè)類(lèi)的分布
你可以看到每個(gè)分割的決策邊界在哪里
你可以看到每片葉子上的樣品大小與圓的大小相同
原文名稱(chēng):How to visualize a decision tree beyond scikit-learn
原文鏈接:https://h1ros.github.io/posts/how-to-visualize-a-decision-tree-beyond-scikit-learn/
往期精彩回顧
獲取本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開(kāi):
https://t.zsxq.com/qFiUFMV
本站qq群704220115。
加入微信群請(qǐng)掃碼:
