pybaobabdt) DT Tree Visualization 해보기
2021. 12. 18. 14:26ㆍ분석 Python/Visualization
목차
패키지 설치
sudo apt-get install graphviz graphviz-dev
pip install pygraphviz
pip install pybaobabdt
라이브러리 로드
import pybaobabdt
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
import matplotlib.pyplot as plt
import matplotlib
from sklearn import datasets
pybaobabdt 패키지는 시각화에 대한 새로운 관점을 제공합니다.
주요 아이디어는 의미 있는 시각화를 통해 사용자가 트리를 이해하고 해석할 수 있도록 돕는 것입니다.
Decision Tree
tree 시각화
X , y = datasets.load_wine(return_X_y = True , as_frame =True)
clf = DecisionTreeClassifier(max_depth=5).fit(X,y)
features = list(X)
ax = pybaobabdt.drawTree(clf, size=10, dpi=72, features=features)
ax.get_figure().safeaturesvefig('tree.png', format='png', dpi=300, transparent=True)
colors = ["gray", "gray", "purple", "gray"]
colorMap = matplotlib.colors.ListedColormap(colors)
ax = pybaobabdt.drawTree(clf, size=10, dpi=72, features=features, colormap=colorMap)
ax.get_figure().safeaturesvefig('tree.png', format='png', dpi=300, transparent=True)
RandomForest
randomforest의 각각의 tree별로 시각화
clf = RandomForestClassifier(n_estimators=20, n_jobs=-1, random_state=0)
clf.fit(X, y)
size = (15,15)
plt.rcParams['figure.figsize'] = size
fig = plt.figure(figsize=size, dpi=300)
for idx, tree in enumerate(clf.estimators_):
ax1 = fig.add_subplot(5, 4, idx+1)
pybaobabdt.drawTree(tree, model=clf, size=15, dpi=300, features=features, ax=ax1)
fig.savefig('random-forest.png', format='png', dpi=1200, transparent=True)
https://towardsdatascience.com/visualizing-decision-trees-with-pybaobabdt-f8eb5b3d0d17
https://pypi.org/project/pybaobabdt/
https://ieeexplore.ieee.org/document/6102453
728x90
'분석 Python > Visualization' 카테고리의 다른 글
Windows 10) Superset Install Guide (locally) (0) | 2023.08.21 |
---|---|
[ Python ] jpg, png 를 gif 또는 mp4로 만들기 (0) | 2022.05.22 |
python) histogram 알아보기 (0) | 2021.05.01 |
python) treemap 알아보기 (0) | 2021.04.29 |
[Visualization] Learning Curve를 이용하여 시각화하기(Train/Valid) (0) | 2020.12.18 |