티스토리 뷰
Decision Tree(결정 트리) 알고리즘
Tree를 만들기 위해 예/아니오 질문을 반복하며 학습한다.
다양한 *앙상블(ensemble) 모델이 존재한다
(RandomForest, GredientBoosting, XGBoost, LightGBM)
분류와 회귀에 모두 사용 가능
결정트리의 기본 구조
특징
- 타깃 값이 한 개인 리프 노드를 순수 노드라고 한다.
- 모든 노드가 순수 노드가 될 때까지 학습하면 복잡해지고 과대 적합이 된다.
- 새로운 데이터 포인트가 들어오면 해당하는 노드를 찾아 '분류'라면 더 많은 클래스를 선택하고, '회귀'라면 평균을 구한다.
결정 트리의 OUT-PUT
Decision Tree(결정트리) 과대 적합 제어
- 사전 가지치기 : 노드 생성을 미리 중단 (*sklearn은 사전 가지치기만 지원)
- 사후 가지치기 : 트리를 만든 후에 크기가 작은 노드를 삭제
트리의 최대 깊이나 리프 노드의 최대 개수를 제어
장단점 및 주요 매개변수(Hyperparameter)
트리의 최대 깊이 : max_depth (값이 클수록 모델의 복잡도가 올라간다.)
리프 노드의 최대 개수 : max_leaf_nodes
리프 노드가 되기 위한 최소 샘플의 개수 : min_samples_leaf
장점
만들어진 모델을 쉽게 시각화할 수 있어 이해하기 쉽다.
각 특성이 개별 처리되기 때문에 데이터 스케일에 영향을 받지 않아 특성의 정규화나 표준화가 필요 없다.
트리 구성시 각 특성의 중요도를 계산하기 때문에 특성 선택에 활용될 수 있다.
단점
훈련데이터 범위 밖의 포인트는 예측할 수 없다. (ex. 시계열 데이터)
가지치기를 사용함에도 불구하고 과대적합되는 경향이 있어 일반화 성능이 좋지 않다.
--> 오히려 이러한 단점을 살려 약화된 여러 모델을 앙상블로 묶어 사용하기도 한다.
Node(노드) : 어떠한 질문이나 정답
RootNode : 가장 처음 질문
LeafNode : 맨 마지막 질문
* Gini Impurity(지니 불순도) : 분류가 잘 되어있는지에 대한 판단을 알아보는 것
지니 불순도는 이름에서도 알 수 있듯이 다음과 같은 의미에서 집합의 “순도”를 측정한다.
항아리에 10개의 구슬이 들어 있고 그 중 절반가량이 빨간색이고 나머지 절반가량이 파란색인 경우 그 구슬들의 집합은 빨간색과 파란색이 섞여 있어 불순한 것으로 간주한다 (항아리 2). 반면에 항아리에 빨간색 또는 파란색 구슬만 있는 경우 그 구슬 집합은 완벽하게 순수한 것으로 간주한다.
그리하여 지니 불순도 측정값을 다음과 같은 방법으로 그래프를 통해 시각화할 수 있다. 양쪽 끝에서 지니 불순도 0 값에서 시작하여, 항아리의 빨간색 및 파란색 구슬의 수가 같은 경우 지니 불순도는 최댓값에 도달해야 한다.
'Python > 머신러닝' 카테고리의 다른 글
빅데이터 : 머신러닝 개요 정리! [스마트인재개발원] (0) | 2021.07.02 |
---|
- Total
- Today
- Yesterday
- 스마트미디어인재개발원
- JSON
- 데이터계층구조
- 야너두코딩할수있어
- IoT
- Ajax
- 광주코딩교육
- 지도학습모델
- 개발도구
- 랩실스터디
- 야너두할수있어
- 자바
- 최종프로젝트
- 국비지원코딩교육
- 랩실
- Python
- Java
- 코딩
- 스마트인재개발원
- 뷰
- 스마트미디어캠퍼스
- JavaScript
- 야너두할수있어코딩
- 머신러닝
- 스마트인재캠퍼스
- 비동기
- 발표
- Vue
- 3계층구조
- Vue.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |