Scikit-learn : 분류 - graph-viz로 시각화 해보기
- gini계수 : 불순도를 의미하며, 계수가 높을수록 엔트로피가 크다는 의미
- 엔트로피가 크다는 것은 클래스가 혼잡하게 섞여있다는 의미
- 과대적합을 피하기 위해서는 Decision Tree의 max_depth 파라미터를 조정해줄 필요가 있다.
from sklearn.tree import export_graphviz
from subprocess import call
def graph_tree(model):
# .dot 파일로 export
export_graphviz(model, out_file="tree.dot")
# 생성된 .dot 파일을 .png로 변환
call(["dot", "-Tpng", "tree.dot", "-o", "decision-tree.png", "Gdpi=600"])
# .png 출력
return Image(filename="decision-tree.png", width=500)
graph_tree(dtc)
dtc = DecisionTreeClassifier(max_depth=2)
dtc.fit(x_train, y_train)
dtc_pred = dtc.predict(x_valid)
graph_tree(dtc)