파이썬으로 결정 트리를 시각화 할 때까지
6234 단어 python3.7Graphvizscikit-learn
전제
OS: Windows 10 Home Edition
Anaconda 3.7 도입 완료.
도입 절차
1) "conda install graphviz"를 실행한다.
2) 환경 변수 PATH에 "Anaconda 설치 폴더\Library\bin\graphviz"를 추가합니다.
1) "conda install pydotplus"를 실행한다.
1) "conda install python-graphviz"를 실행한다.
각각 conda install 명령이 비정상적으로 종료되지 않았는지 확인합니다.
방법으로는
· conda install 명령을 실행하는 동안 오류 메시지가 나타나지 않는지 육안으로 확인합니다.
· "echo %ERRORLEVEL %"의 실행 결과가 0인지 확인하십시오.
· "conda list 패키지 이름"을 실행하여 설치할 패키지의 이름이 출력되는지 확인하십시오.
같은 방법이 있는지 생각합니다.
샘플
샘플 코드
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
import pydotplus
df = pd.read_csv( 'D:/python/testdata.csv' )
src = df.drop( 'C', axis='columns' )
trgt = df['C']
clf = DecisionTreeClassifier( random_state = 0 )
clf.fit( src, trgt )
dot_data = export_graphviz(clf,
feature_names=src.columns,
class_names=['T','F'],
filled=True,
rounded=True)
graph = pydotplus.graph_from_dot_data( dot_data )
graph.write_png( 'D:/python/tree.png' )
테스트 데이터 (testdata.csv)
A,B,C
-4,-8,T
-9,7,F
-1,3,F
2,1,T
5,-1,T
10,5,T
-8,-6,F
-9,-2,F
-8,-2,F
3,1,T
5,-6,T
4,-7,T
9,9,F
9,5,T
-5,6,F
5,9,F
9,3,T
2,-5,T
8,10,F
0,-6,T
※A>B의 경우 C='T', A
결과 그래프
덧붙여서, 지금까지의 환경 구축 내용이라면, 컬럼명을 일본어로 한 경우에 문자화할 수 있습니다.
위의 예에서 A⇒설명 변수 1, B⇒설명 변수 2, C⇒목적 변수로서 같은 처리를 실행시킨 결과는 다음과 같습니다.
그래프에서 일본어를 표시하려면 ...?
※scikit-learn을 업데이트하면 원래대로 돌아갈 것 같은 방법입니다만…
"Anaconda 설치 폴더\pkgs\scikit-learn-0.21.2-py37h6288b17_0\Lib\site-packages\sklearn\tree\export.py"에서 하드 코딩된 글꼴 이름을 변경하는 방법을 사용할 수 있습니다. .
head 메소드내에는 이하의 기술이 2개소 있습니다.
fontname=helvetica
이 fontname=로 지정된 폰트명을 일본어 폰트명으로 변경하면 잘 됩니다.
다음 그래프는 fontname=Meiryo로 변경한 후 그래프를 작성한 결과입니다.
위의 그래프에서는 깨진 부분이 올바르게 표시되어 있습니다.
다만, 이 방법이라면 폰트명에 공백이 포함되면 안 되고, 예를 들어 fontname=Meiryo UI라고 하면 처리가 이상 종료합니다.
참고 사이트
· Python3에서 scikit-learn 결정 트리를 일본어 글꼴로 이미지 출력하는 방법 요약
· Graphviz 명령으로 일본어가 깨져서 곤란했다 (windows10)
관련 링크
・graphviz 공식 사이트
htps //w w. g 등 ph ゔ ... rg /
· pydotplus 공식 사이트
htps : // py 피. 오 rg/p 로지ぇct/py도 tpぅs/
Reference
이 문제에 관하여(파이썬으로 결정 트리를 시각화 할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/k-y-river/items/8ddac44e41baf6bce870
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import numpy as np
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
import pydotplus
df = pd.read_csv( 'D:/python/testdata.csv' )
src = df.drop( 'C', axis='columns' )
trgt = df['C']
clf = DecisionTreeClassifier( random_state = 0 )
clf.fit( src, trgt )
dot_data = export_graphviz(clf,
feature_names=src.columns,
class_names=['T','F'],
filled=True,
rounded=True)
graph = pydotplus.graph_from_dot_data( dot_data )
graph.write_png( 'D:/python/tree.png' )
A,B,C
-4,-8,T
-9,7,F
-1,3,F
2,1,T
5,-1,T
10,5,T
-8,-6,F
-9,-2,F
-8,-2,F
3,1,T
5,-6,T
4,-7,T
9,9,F
9,5,T
-5,6,F
5,9,F
9,3,T
2,-5,T
8,10,F
0,-6,T
· Python3에서 scikit-learn 결정 트리를 일본어 글꼴로 이미지 출력하는 방법 요약
· Graphviz 명령으로 일본어가 깨져서 곤란했다 (windows10)
관련 링크
・graphviz 공식 사이트
htps //w w. g 등 ph ゔ ... rg /
· pydotplus 공식 사이트
htps : // py 피. 오 rg/p 로지ぇct/py도 tpぅs/
Reference
이 문제에 관하여(파이썬으로 결정 트리를 시각화 할 때까지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k-y-river/items/8ddac44e41baf6bce870텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)