파이썬 실천 100개 노크 제5장의 결정 나무를 graphviz를 이용해 시각화해 보았다

소개



「Python 실천 100개 노크」를 이용해 공부하고 있습니다. 이 책은 실제 상황에 가까운 데이터를 이용하여 데이터 분석 공부를 할 수 있기 때문에 정말 좋은 책이라고 생각합니다 (그렇다고해도 실제로는 더 더 심한 데이터가 많이 있을 것입니다만…).
그런 본서의 5장에서 scikit-learn에서 결정목을 이용하여 분석을 하는 장면이 있습니다. 거기서 모델을 작성합니다만, 나무 구조의 가시화는 graphviz를 이용해 도전해 봐~라고 하는 것이므로, 이번 해 보았습니다.

※ 초보자가 투고하고 있으므로, 실수하고 있는 경우는 교수 주시면 다행입니다.

대상 독자


  • Python 연습 100개 노크를 읽는 분
  • scikit-learn에서 결정 트리를 시각화하는 방법을 찾고있는 사람

  • 대상 개소



    파이썬 연습 100개 노크
     -> 제5장 고객의 탈퇴를 예측하는 10개 노크
      -> 노크 49:모델의 기여하고 있는 변수를 확인하자

    내 PC 환경


  • macOS Catalina 10.15.3
  • Python 3.7.7
  • scikit-learn 0.22.2.post1
  • Jupyter 1.0.0

  • graphviz 설치



    먼저 homebrew를 사용하여 본체를 설치합니다.
    brew install graphviz
    

    또한 Python 용 라이브러리를 pip를 사용하여 설치합니다 (anaconda는 conda로 할 수있는 것 같습니다).
    pip install graphviz
    

    코드



    ※ p.127의 코드까지 실시하고 있는 전제로 이하 기재하고 있습니다.

    1. Jupyter notebook에 표시하는 방법



    그렇다고 하더라도 다음 코드를 추가하기만 하면 됩니다. 매우 간단합니다.
    from sklearn import tree
    import graphviz
    dot_data = tree.export_graphviz(model, out_file=None)
    graph = graphviz.Source(dot_data)
    graph
    



    2. 파일을 만드는 방법



    마지막 코드를 조금 수정하면 pdf 파일을 만들 수 있습니다. 이 예에서는 "test.pdf"가 현재 디렉토리에 작성됩니다.
    from sklearn import tree
    import graphviz
    dot_data = tree.export_graphviz(model, out_file=None)
    graph = graphviz.Source(dot_data)
    graph.render('test')
    



    3. 터미널을 사용하여 파일을 만드는 방법(덤)



    sklearn.tree의 export_graphviz 함수를 사용하여 DOT 언어 형식의 결정 트리 파일을 만들고 Jupyter notebook에서 시스템 명령을 실행합니다.
    from sklearn import tree
    import graphviz
    with open('test.dot', mode='w') as f:
        tree.export_graphviz(model, out_file=f)
    !dot -T png test.dot -o test.png
    

    참고문헌



    이 기사는 다음 정보를 참고로 작성했습니다. 자세한 정보는 아래를 참조하십시오.
    1.10. Decision Trees(공식 문서입니다)
    sklearn.tree.export_graphviz (여기도 공식 문서입니다)
    Python : scikit-learn에서 결정 나무 (Decision Tree)를 시도해보십시오 (참고하겠습니다)

    좋은 웹페이지 즐겨찾기