결정 트리 알고리즘이 어떤 규칙으로 트리를 생성하는지 보여주는
Graphviz 패키지.
▶ scikit-learn에서 쉽게 인터페이스 할 수 있게 export_graphviz( ) API 제공
▷ 학습이 완료된 Estimator, 피처 이름 리스트, 레이블 이름 리스트 입력하면
학습된 결정 트리 규칙을 시각화함
→ 파이썬으로 개발된 패키지가 아니라서 😂 설치한 후에 파이썬 래퍼(Wrapper) 모듈을 별도로 설치해야함
1. Graphviz에서 본인 컴퓨터 스펙에 맞는 파일을 설치함
https://graphviz.org/download/
Download
Graph Visualization Software
graphviz.org
2. 설치할때 로컬PC의 시스템 PATH 변수를 설정
2-1. PATH 변수가 제대로 설치됐는지 확인 하기 위해
내 PC > 속성 > 고급시스템 설정 > 환경 변수 > 시스템 변수 > 변수 : Path
여기에 Graphviz 가 포함되어 있어야한다 \bin 까지 포함해서
(없다면 추가해야함)
3. 터미널을 열어서 pip install graphviz 명령어로 설치하면 된다.
<실행해보자!>
붓꽃 데이터 세트를 활용해 어떻게 만들어지는지 확인하기 위해 데이터 불러오고 학습까지
그리고 export_graphviz()도 작성. 학습이 완료된 estimator, output 파일명,
결정 클래스의 이름, 피처의 이름을 작성해주기
모델 적어주고(dt), out_file = 저장파일 유무, default는 none.
class_name = 변수의 값 이름 설정, feature_names = 컬럼 이름들 지정
impurity = 균일도. 지니계수(불평등 지수 나타낼 때 쓰는 계수, 낮을수록 균일)를 나타내는지에 대한 여부, default는 true ,
filled = True로 하면 노드의 클래스가 구분되도록 색이 칠해짐
그리고 그래프 그려놓은걸 불러오기
(주피터 노트북에서 한다면 graph라는 변수에 따로 저장하지 않아도 됨)
그렇게 그려진 붓꽃데이터 결정트리분류모델 시각화!
▶ 트리의 branch 노드랑 말단 leaf 노드가 어떻게 구성되는지 한 번에 볼 수 있다.
▷ leaf 노드 = 더이상 자식 노드가 없는 노드, 최종 레이블 값이 결정되는 노드.
오직 하나의 클래스(레이블) 값으로 최종 데이터가 구성되거나
될 수 있는 하이퍼 파라미터 조건을 충족시키면 됨
▷ branch 노드 = 자식 노드가 있는 노드. 자식 노드를 만들기 위해 분할 규칙 조건을 가지고 있음.
petal length : 피처의 조건이 있는 것은 자식 노드를 만들기 위한 규칙 조건, 없으면 leaft 노드.
True/False로 다음 노드가 만들어짐
gini : 지니 계수
samples : 현 규칙에 해당되는 데이터 건수
value : 클래스 값 기반의 데이터 건수. 여기서는 0,1,2로 되어 있음. 순서대로 0,1,2 를 나타냄
▶ 각 노드의 색깔은 레이블 값을 의미함, 색이 짙을 수록 지니계수가 낮고 해당 레이블에 속하는 샘플 데이터가 많다는 것
▶ ▶ ▶ ▶이렇게 Graphviz를 이용하면 결정 트리 알고리즘의 규칙 생성 트리를 시각적으로 이해할 수 있음.
'머신러닝 > 개념익히기' 카테고리의 다른 글
ML 결정 트리 과적합 Overfitting (2) | 2023.11.29 |
---|---|
ML feature의 중요한 역할 지표 (결정 트리 알고리즘) (2) | 2023.11.28 |
ML 데이터 전처리, Data preprocessing 정의 (0) | 2023.11.26 |
ML XGBoost 하이퍼파라미터 조정 (0) | 2023.11.19 |
ML 앙상블 Ensemble- 랜덤포레스트, RandomForest (0) | 2023.11.02 |