본문 바로가기
머신러닝/개념익히기

ML 결정 트리 과적합 Overfitting

by ADELA_J 2023. 11. 29.

 

결정 트리는 규칙 생성 로직을 제어하지 않으면 완벽하게 분류하기 위해 

트리 노드를 계속해서 만들어 감.

그래서 나중에는 매우 복잡한 규칙 트리가 생길 수 있음.

▶ 이는 쉽게 과적합, Overfitting이 될 수 있다는 것을 의미함.

▷ 그래서 결정 트리는 과적합이 상당히 높은 ML 알고리즘 중 하나임

이를 제어하기 위해 max_depth, min_samples_leaf 등 하이퍼파라미터를 튜닝하는 것임

 

<결정 트리 과적합, Overfitting>

- 어떻게 학습 데이터를 분할해서 예측을 수행하는지, 이로 인한 과적합 문제를 시각화 해볼 예정

 

▶ 분류를 위한 데이터 세트를 임의로 만들어 봄

▷ 사이킷런에서 분류 테스트용 데이터를 쉽게 만들 수 있도록 make_classification() 함수 제공

 

▷ 각 피처 X, Y축으로 나열된 2차원 그래프임. 3개의 클래스 값 구분은 색깔로 되어있음

▶ 이제 X_features와 y_labels 데이터 세트 기반으로 결정 트리 학습

 - 처음이니까 하이퍼 파라미터를 디폴트로 두고 함

▲ 모델이 어떤 결정 기준을 가지고 분할하면서 데이터를 분류하는지 확인.

중간중간 껴있는 친구들이 이상치(Outlier) 데이터인데,

그래프를 보면 알 수 있듯이 얘네 때문에 결정 기준 경계가 많아짐.

이런 복잡하게 된 모델은 학습 데이터와 약간만 다른 데이터 세트를 예측하면

예측 정확도가 떨어지게 됨.

▶ 이번에는 min_samples_leaf = 6으로 설정해서 해봄. 

보면 이상치가 있음에도 불구하고 이에 대한 영향을 받지 않으면서

일반화된 분류 규칙에 따라 분류되었음. 

▶ 이러면 min_samples_leaf=6인 모델의 성능이 더 좋을 가능성이 높음.

▷ 왜냐하면 학습 데이터에만 지나치게 최적화되면 다른 데이터에서는 정확도가 떨어질 수 있기 때문에

=  이를 과적합, Overfitting 이라고 함.