728x90
반응형
결정트리의 과적합 문제를 시각화해 더 자세히 알아보겠습니다.
1. 사이킷런 make_classification 으로 분류의 표본 데이터 생성하기
- hyperparameter = defalt
# make_classification 분류를 위한 테스트용 데이터 만들기
from sklearn.datasets import make_classification
import matplotlib.pyplot as plt
%matplotlib inline
plt.title("3 Class values with 2 Features Sample data creation")
#2차원 시각화를 위해 피처는 2개, 클래스는 3가지 유형의 분류 샘플 데이터 생성.
X_features, y_labels = make_classification(n_features=2, n_redundant=0, n_informative=2,
n_classes=3, n_clusters_per_class=1, random_state=0)
#그래프 형태로 2개의 피처로 2차원 좌표 시각화
plt.scatter(X_features[:,0], X_features[:,1], marker='o', c=y_labels, edgecolor='k');
2. Decision Boundary (결정 경계) 시각화
: 머신러닝 모델이 클래스 값을 예측하는 결정 기준을 색상과 경계로 나타내 모델이 어떻게 데이터 세트를 예측 분류하는지 잘 이해할 수 있게 해준다.
- hyperparameter = defalt
- 일부 이상치 데이터까지 분류하기 위해 분할이 자주 일어나 결정 기준 경계가 매우 많아졌다.
- 결정트리의 기본(defalt) 하이퍼 파라미터 설정은 leaf node 안에 데이터가 모두 균일하거나 하나만 존재(min_samples_leaf=1) 해야 하는 엄격한 분할 기준으로 인해 결정 기준 경계가 많아지고 복잡해졌다.
- 이렇게 복잡한 모델은 학습 데이터 세트의 특성과 약간만 다른 형태의 데이터 세트를 예측하면 예측 정확도가 떨어지게 된다. 이런 현상을 학습 데이터 세트에 과적합된 예측 모델 이라고 한다.
3. 하이퍼파라미터 조정
- hyperparmaeter = min_samples_leaf 6
: 6개 이하의 데이터는 leaf node를 생성할 수 있도록 리프노드 생성 규칙 완화
- 이상치에 크게 반응하지 않으면서 좀 더 일반화된 분류 규칙에 따라 분류됨.
- 하이퍼파라미터 값이 defalt인 모델보다 예측 성능이 더 뛰어날 가능성이 높다.
- 테스트 데이터 세트는 학습 데이터 세트와 다르기 때문에 학습 데이터에 지나치게 최적화된 분류기준은 오히려 테스트 데이터 세트에서 정확도를 떨어뜨릴 수 있다.
Decision Boundary Visualization 코드 링크
728x90
반응형
'머신러닝 (Machine Learning) > 분류(Classification) 분석' 카테고리의 다른 글
앙상블(Ensemble) (0) | 2021.02.21 |
---|---|
분류 관련 Youtube (0) | 2021.02.14 |
Decision Tree Graphviz (0) | 2021.02.14 |
결정 트리 (Decision Tree) (0) | 2021.02.13 |
분류의 평가(Evaluation) (2) F1 score , ROC AUC (0) | 2021.02.13 |