scikit-learn의 tree.plot_tree가 매우 간단하고 편리했기 때문에 쉽게 사용법을 정리해 보았습니다.
6991 단어 결정 나무파이썬데이터 분석scikit-learn기계 학습
기존 시각화 방법: GraphViz 사용
기존에는 GraphViz라는 다른 라이브러리를 설치하여 이용하고 있었습니다. 상당히 번거롭습니다. . .
GraphViz 설치 @Macbrew install graphviz
pip install graphviz
GraphViz 설치 @ Ubuntusudo apt install -y graphviz
pip install graphviz
GraphViz를 이용한 방법import graphviz
from sklearn import tree
from sklearn.datasets import load_iris
iris = load_iris()
clf = DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
graph = graphviz.Source(tree.export_graphviz(clf, class_names=iris.feature_names, filled=True))
graph
실행 결과
실행 결과는 graph.render('decision_tree')
를 실행하여 PDF로 저장할 수 있습니다.
tree.plot_tree 사용
tree.plot_tree
를 사용하여 GraphViz를 사용하여 그린 것과 비슷한 그림을 그립니다. scikit-learn의 트리 모듈에 저장되어 있으므로 추가 설치가 필요하지 않습니다. (filled
옵션은 기본적으로 False이지만 True로 설정하면 채색됩니다)
tree.plot_tree를 사용하는 방법import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, plot_tree
iris = load_iris()
clf = DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
iris = load_iris()
plt.figure(figsize=(15, 10))
plot_tree(clf, feature_names=iris.feature_names, filled=True)
plt.show()
실행 결과
GraphViz를 이용한 방법과 같은 그림을 출력할 수 있었습니다. Jupyter Notebook에서 실행하면 그리기 결과를 그대로 마우스 오른쪽 버튼으로 클릭하여 이미지로 저장할 수 있습니다.
2020/11/27 추가: 클래스 이름도 결정 트리에 표시
class_name
옵션을 추가하면 최종적으로 분류된 클래스 이름도 볼 수 있습니다.
plt.figure(figsize=(15, 10))
plot_tree(clf, feature_names=iris.feature_names, class_names=iris.target_names, filled=True)
plt.show()
요약
scikit-learn의 tree.plot_tree와 종래의 GraphViz를 이용하는 방법을 결정 트리의 가시화에 대해 실시해, tree.plot_tree가 (종래의 방법보다) 간단하고 편리하다고 실감했습니다. 앞으로 적극적으로 활용하고 싶습니다.
Reference
brew install graphviz
pip install graphviz
sudo apt install -y graphviz
pip install graphviz
import graphviz
from sklearn import tree
from sklearn.datasets import load_iris
iris = load_iris()
clf = DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
graph = graphviz.Source(tree.export_graphviz(clf, class_names=iris.feature_names, filled=True))
graph
tree.plot_tree
를 사용하여 GraphViz를 사용하여 그린 것과 비슷한 그림을 그립니다. scikit-learn의 트리 모듈에 저장되어 있으므로 추가 설치가 필요하지 않습니다. (filled
옵션은 기본적으로 False이지만 True로 설정하면 채색됩니다)tree.plot_tree를 사용하는 방법
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier, plot_tree
iris = load_iris()
clf = DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)
iris = load_iris()
plt.figure(figsize=(15, 10))
plot_tree(clf, feature_names=iris.feature_names, filled=True)
plt.show()
실행 결과
GraphViz를 이용한 방법과 같은 그림을 출력할 수 있었습니다. Jupyter Notebook에서 실행하면 그리기 결과를 그대로 마우스 오른쪽 버튼으로 클릭하여 이미지로 저장할 수 있습니다.
2020/11/27 추가: 클래스 이름도 결정 트리에 표시
class_name
옵션을 추가하면 최종적으로 분류된 클래스 이름도 볼 수 있습니다.plt.figure(figsize=(15, 10))
plot_tree(clf, feature_names=iris.feature_names, class_names=iris.target_names, filled=True)
plt.show()
요약
scikit-learn의 tree.plot_tree와 종래의 GraphViz를 이용하는 방법을 결정 트리의 가시화에 대해 실시해, tree.plot_tree가 (종래의 방법보다) 간단하고 편리하다고 실감했습니다. 앞으로 적극적으로 활용하고 싶습니다.
Reference
Reference
이 문제에 관하여(scikit-learn의 tree.plot_tree가 매우 간단하고 편리했기 때문에 쉽게 사용법을 정리해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/y-vectorfield/items/4315338d11d4ba8efb0d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)