Decision Tree

zoé·2021년 10월 15일
0

machine learning

목록 보기
5/6

데이터를 분할하는 것은 각 분할된 영역(결정트리의 리프)이 한 개의 타깃값(하나의 클래스, 하나의 회귀분석결과)를 가질 때까지 반복

새로운 데이터 포인트에 대한 예측은 주어진 데이터 포인트가 특성을 분할할 영역 중 어디에 놓이는지 확인
그 영역의 타깃값 중 다수(순수 노드라면 하나)인 것을 예측 결과로 한다.
루트 노드에서 시작해 테스트의 결과에 따라 왼쪽 오른쪽으로 트리를 탐색해나가는 식으로 영역을 찾을 수 있음

회귀 문제에서도 트리 사용할 수 있음.
예측을 하려면 각 노드의 테스트 결과에 따라 트리를 탐색해나가고 새로운 데이터 포인트에 해당하는 리프노드를 찾는다. 찾은 리프 노드의 훈련 데이터 평균값이 이 데이터 포인트의 출력이 된다.

단점 : 모델이 가진 데이터 범위 밖으로 나가면 단순히 마지막 포인트를 이용해 예측하는 것이 전부. 트리 모델은 훈련 데이터 밖의 새로운 데이터를 예측할 능력이 없음.
선형 모델은 데이터 범위 밖으로 나간 테스트 데이터를 꽤 정확히 예측할 수 있다.

  • 사전 가지치기를 사용함에도 불구하고 과대적합되는 경향이 있어 일반화 성능이 좋지 않다는 점.

장점 : 1. 만들어진 모델을 쉽게 시각화할 수 있어서 비전문가도 이해하기 쉽다.
2. 데이터 스케일에 구애받지 않는다. 각 특성이 개별적으로 처리되어 데이터를 분할하는데 데이터 스케일의 영향을 받지 않으므로 결정 트리에서는 특성의 정규화나 표준화 같은 전처리 과정이 필요 없음.
특성의 스케일이 서로 다르거나 이진 특성과 연속적인 특성이 혼합되어 있을 때도 잘 작동함.

가자치기 (Pruning)

일반적으로 트리 만들기를 모든 리프 노드가 순수 노드가 될 때까지 진행하면 모델이 매우 복잡해지고 훈련 데이터에 과대적합된다.
순수 노드로 이루어진 트리는 훈련 세트에 100% 정확하게 맞는다는 의미. 훈련 세트의 모든 데이터 포인트는 정확한 클래스의 리프노드에 있음.

결정 트리의 깊이를 제한하지 않으면 트리는 무한정 깊어지고 복잡해질 수 있음. 가지치기하지 않은 트리는 과대적합되기 쉽고, 새로운 데이터에 잘 일반화되지 않는다.

바람직한 결정 경계의 모습이 아니다. 결정 경계가 클래스의 포인트에서 멀리 떨어진 이상치 하나에 너무 민감하기 때문이다.
과대 적합을 막기 위해서

  1. 트리 생성을 일찍 중단하는 전략(사전 가지치기 pre-pruning)
  • 트리의 최대 깊이나 리프의 최대 개수를 제한, 또는 노드가 분할하기 위한 포인트의 최소 개수 지정
    scikit-learn은 사전 가지치기만 지원
    트리의 깊이를 제한하면 과대 적합이 줄어든다. 훈련 세트의 정확도를 떨어뜨리지만 테스트 세트의 성능은 개선시킴.
  1. 트리를 만든 후 데이터 포인트가 적은 노드 삭제하거나 병합하는 전략(사후 가지치기post-pruning, 가지치기pruning)
profile
archive for me

0개의 댓글