728x90
결정 트리
● 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리 기반의 분류 규칙을 만듭니다.
● 규칙이 많아질수록 분류를 결정하는 방식이 더욱 복잡해지고 곧 과적합으로 이어집니다.
결정 트리 구조
● Root Node : 뿌리의 시작점
● Decision Node : 규칙 조건
● Leaf Node : 결정된 클래스 값
● Sub Tree : 규칙 노드(Decision Node)기반으로 분할되는 작은 트리
결정 노드의 규칙 조건
● 정보 균일도가 높은 데이터 세트를 먼저 선택합니다.
● 정보의 균일도를 측정하는 대표적인 방법은 엔트로피를 이용한 정보 이득 지수와 지니 계수가 있습니다.
● 정보이득이 높은 속성을 기준으로 분할하거나 지니 계수가 낮은 속성을 기준으로 분할합니다.
정보 이득
정보 이득은 1 - 엔트로피
엔트로피는 주어진 데이터 집합의 혼잡도를 의미합니다.
엔트로피가 높다면 서로 다른 값이 섞여있다는 의미이고 엔트로피가 낮다면 같은 값이 섞여 있다는 의미입니다.
정보 이득이 높은 속성을 기준으로 분할합니다.
결정 트리 시각화
Graphviz
Graph Visualization Software
graphviz.org
- 추가적인 환경 설정
환경 변수 설정 : 시스템 환경 변수 편집 > 고급 > 환경 변수 클릭
사용자 변수 path 값 : C:\Program Files\Graphviz\bin
시스템 변수 path 값 : C:\Program Files\Graphviz\bin\dot.exe
- graphviz
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
# DecisionTreeClassifier
clf = DecisionTreeClassifier(random_state = 156)
clf.fit(X_train, y_train)
# export_graphviz()의 호출 결과로 out_file로 지정된 tree.dot파일을 생성
export_graphviz(clf, out_file = "tree.dot", impurity = True, filled=True)
import graphviz
# 위에서 생성된 tree.dot파일을 graphviz가 읽어서 시각화
with open("tree.dot") as f:
dot_graph = f.read()
graphviz.Source(dot_graph)
중요한 역할 지표 - .feature_importances_
728x90
'Data Analytics with python > [Machine Learning ]' 카테고리의 다른 글
OLS 고급 수식 구문 (0) | 2023.02.22 |
---|---|
[Regression/Classification] 교차 검증과 하이퍼 파라미터 튜닝 + pipeline (0) | 2023.02.16 |
[Clustering] DBSCAN (0) | 2023.02.15 |
[Clustering] GMM (0) | 2023.02.15 |
[Clustering] MeanShift (0) | 2023.02.14 |
댓글