AI/ML(패스트 캠퍼스) - 의사결정 트리 시각화

 

export_graphviz를 이용한 의사결정 트리의 시각화

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)

Image

dtc = DecisionTreeClassifier(max_depth=2)
dtc.fit(x_train, y_train)
dtc_pred = dtc.predict(x_valid)
graph_tree(dtc)

Image