728x90
결정 트리
● 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 트리 기반의 분류 규칙을 만듭니다.
● 규칙이 많아질수록 분류를 결정하는 방식이 더욱 복잡해지고 곧 과적합으로 이어집니다.
결정 트리 구조
● Root Node : 뿌리의 시작점
● Decision Node : 규칙 조건
● Leaf Node : 결정된 클래스 값
● Sub Tree : 규칙 노드(Decision Node)기반으로 분할되는 작은 트리
결정 노드의 규칙 조건
● 정보 균일도가 높은 데이터 세트를 먼저 선택합니다.
● 정보의 균일도를 측정하는 대표적인 방법은 엔트로피를 이용한 정보 이득 지수와 지니 계수가 있습니다.
● 정보이득이 높은 속성을 기준으로 분할하거나 지니 계수가 낮은 속성을 기준으로 분할합니다.
정보 이득
정보 이득은 1 - 엔트로피
엔트로피는 주어진 데이터 집합의 혼잡도를 의미합니다.
엔트로피가 높다면 서로 다른 값이 섞여있다는 의미이고 엔트로피가 낮다면 같은 값이 섞여 있다는 의미입니다.
정보 이득이 높은 속성을 기준으로 분할합니다.
결정 트리 시각화
- 추가적인 환경 설정
환경 변수 설정 : 시스템 환경 변수 편집 > 고급 > 환경 변수 클릭
사용자 변수 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 |
댓글