01. 기본- 결정트리(decision tree)

학습 내용

01. 의사결정트리- 모델 이해

(1) 데이터 셋 - 연속형 데이터
(2) 첫번째 나누기 x[1] = 0.0596
(3) 두번째 나누기 x[0] <= 0.4177, x[0] <= 1.1957

(참조 : 파이썬을 활용한 머신러닝 그림 참조)

설명

(가) 의사결정트리는 반복된 프로세스에 의해 노드가 두 개를 가진 이진의사결정트리를 만든다. (하나의 축을 따라 데이터를 둘로 나눈다.)
(나) 각 노드의 테스트(각 노드의 질문)는 하나의 특성(feature)에 관해서만 이루어진다.
(다) 데이터를 분할하는 것은 결정트리 리프(leaf)가 노드가 하나의 target(목표 값)을 가질 때까지 반복.
(라) Target(목표 값) 하나로만 이루어진 Leaf node(리프 노드)를 순수노드(pure node)라고 한다.

02. 회귀 문제에서의 의사결정트리(decision tree)

(1) 각 노드의 테스트 결과에 따라 트리를 탐색(루트노드->리프노드)해 나가고 새로운 데이터 포인트에 해당되는 리프 노드(leaf node)를 찾는다.
(2) 찾은 리프 노드(leaf node)의 훈련 데이터 평균값이 이 데이터 포인트의 출력이 된다.
   * 리프노드가 8,9의 값을 갖고 있다면 출력은 8.5가 된다.

실습

데이터 로드

시각화

price 분포 확인

모델 선택 및 학습

두 모델은 확연한 차이를 보인다.

03. 의사결정 트리의 단점 및 장점

04. Overfitting(과적합)을 막는 두가지 전략

(1) 트리 생성을 일찍 중단하는 전략(pre-pruning) - 사전 가지치기
(2) 트리를 만든 후, 데이터 포인트가 적은 노드를 삭제(사후 가지치기-post-pruning) 하거나 병합하는 전략.(가지치기)-pruning

05. 그렇다면 어떻게 사전 가지치를 할 수 있을까?

트리의 최대 깊이 제한 (max_depth)

리프의 최대 개수 제한 (max_leaf_nodes)

노드 분할을 위한 포인트의 최소 개수 지정 (min_sample_leaf)

사전 가지치기만 지원, DecisionTreeRegressor, DecisionTreeClassifier

test_size를 변경해 가면서 모델 생성

max_depth를 변경해 가면서 모델 생성

06. 트리(tree)의 특성 중요도(feature importance)

실습과제 2

실습과제 3

교육용으로 작성된 것으로 배포 및 복제시에 사전 허가가 필요합니다.
Copyright 2021 LIM Co. all rights reserved.