데이터: Pima Indians Diabetes Database 버젼: ① python : 3. 9.13 ② pandas : 1. 4. 4 ③ sklearn : 1. 1. 1
안녕하세요, wscode 루카스입니다.
본 포스팅은 「파이썬 머신러닝 완벽가이드」 의 독학한 내용을 기반으로 하고 있습니다. 사용하게 될 Pima Indians Diabetes Database 데이터는 로지스틱 회귀알고리즘을 적용 시, 더 높은 정확도가 나오나, 결정트리의 사용법을 익히기 위해 해당 알고리즘을 사용함을 사전에 알려드립니다.
1. 데이터 준비
Pima Indians Diabetes Database 데이터는 측정을 기반으로 환자의 당뇨병 여부를 진단하기위한 데이터입니다. 변수는 아래와 같으며, 데이터는 하단의 링크를 통해서 다운로드 가능합니다.
import graphviz
from sklearn.tree import export_graphviz
# export_graphviz()의 호출 결과로 out_file로 지정된 tree.dot 파일을 생성
export_graphviz(dt_clf, out_file="tree.dot",
feature_names = df.columns[:-1].to_list(), impurity=True, filled=True)
# %conda install graphviz
# 위에서 생성된 tree.dot 파일을 Graphviz 읽어서 Jupyter Notebook상에서 시각화
with open("tree.dot") as f:
dot_graph = f.read()
graphviz.Source(dot_graph)
만약, 해당 데이터를 png로 저장하고싶다면?
## How to convert Decision Tree.dot as png file
dot = graphviz.Source(dot_graph)
dot.format='png'
dot.render(filename='tree3') #tree.png 저장
3.3. 변수간의 영향력 판단하기
import seaborn as sns
import numpy as np
%matplotlib inline
print("Feature importance :\n{0}".format(np.round(dt_clf.feature_importances_, 3)))
for name, value in zip(df.iloc[:,:-1],dt_clf.feature_importances_):
print('{0}: {1:.3f}'.format(name, value))