트리 모델
Decision Tree
실생활, 인공지능 양쪽 모두 흔히 사용되는 모델.
- 노드 : 가지가 갈라지는 지점
- 뿌리(Root) : 나무가 시작하는 노드
- 종단(Terminal) : 나무의 마지막 노드
- 깊이(Depth) : 몇 번 갈라졌는지 횟수
- 크기(Size) : 종단 노드 수
- 이진 나무(Binary Tree) : 각 노드에서 가지가 두 개만 나올때
에러함수는 MSE를 쓴다.
Regression Tree
회귀나무
Y가 연속형 변수일때 사용한다. Recursive Binary Splitting 을 이용해 샘플을 분할한다.
- 한 변수에 대해 두 개의 공간으로 분할
- 분할 할 때, 최적의 변수와 분할 지점을 선정.
- 분할된 공간을 다시 같은 방식으로 분할해나감.
이론상 각 공간에 샘플 하나만 남을때까지 분할 가능.
- 크기가 최소 (
) 모든 샘플을 하나의 값으로 추정한다. Underfitting - 크기가 최대 (
) 개 샘플을 개 값으로 추정. 최적의 에러가 0이 되는데, Overfitting
적절한 나무 크기를 정해야 함. 나무의 크기, 깊이, 종단 노드의 최소 샘플 갯수 등은 튜닝 파라미터
Regression Tree의 Loss 함수
Classification Tree
분류나무
Y가 범주형 변수일때 사용 회귀나무처럼 RBS를 사용 가능하다 최적 분할지점을 평가하는 방식만 다른데, 회귀나무는 MSE를 이용하는 반면, 분류나무는 분류오류, 지니불순도, 크로스 엔트로피를 이용한다.
- 분류 오류 (Classification Error)
- 지니 불순도 (Gini impurity index)
- 크로스 엔트로피 (Cross entropy)
여기서 는 분류가 잘된 데이터의 비율을 뜻한다. E.g. 구슬 10개중 파란 구슬이 7개, 빨간 구슬이 3개면 .
CaRT
Classification and Regression Tree. 회귀나무 + 분류나무 해석이 매우쉽고 비선형,고차원 데이터에도 적용이 가능함 단점은 예측 성능이 떨어짐
앙상블 모델
여러 모델을 합쳐서 하나의 모델을 구성
-
전통적 방법 서로 다른 방식을 이용하는 모델을 다른 비중으로 합성 ex. Stacking
-
현대적 방법 다른 데이터셋으로 훈련한 같은 모델들을 같은 비중으로 합성 ex. Bagging, Boosting
Stacking
다수의 기본 모델의 output을 input으로 삼는 새로운 메타 모델을 구성
구조
- 다수의 기본 모델을 같은 데이터셋으로 훈련
- 각 모델의 출력값을 새로운 입력으로 생각하고 이를 이용해 레벨 1 모델을 훈련.
- 레벨 2, 3 모델을 만들거나 교차검증 형식으로 이용가능.
MLP와 비슷한 구조이지만 스태킹은 1레벨, 2레벨로 계층이 독립적으로 학습. MLP는 모든 계층이 한꺼번에 학습됨.
Bagging
-
하나의 모델을 서로 다른 데이터셋을 이용해 훈련한 후 평균을 내어 예측을 안정화시키는 방법이 기본 아이디어.
-
실제로는 다른 데이터셋을 마련하기 어렵기 때문에 Bootstrap을 이용하는데 이것이 Bagging.
-
Bagging(Bootstrap Aggregating) : 하나의 모델을 다수의 부트스트랩 집합에서 훈련하고 그 결과를 하나로 합쳐 예측
-
원래는 모집단에서 훈련집합을 많이 구성해야 하나, 부트스트랩은 원래 훈련집합 안에서 중복을 허용하여 많은 새끼 훈련집합을 만드는 것
-
강력한 안정화 성능을 지녔다. Decision Tree 같이 불안정한 모델에 효과가 좋음
-
모델을 많이 할수록 안정성이 높아지지 복잡성이 증가하진 않음
Random forest
Decision Tree + Bagging + Sub-spacing
Decision Tree 에서 공간을 분할할 때마다 임의로 선택된 일부 변수만을 이용해 최적의 분할 방향, 지점을 선택.
보통 입력변수가
- 분류 문제 :
- 회귀 문제 :
Boosting
일반적으로 복잡한 데이터에는 복잡한 모델이 필요하다.
부스팅 : 단순한 모델을 점진적으로 합쳐나가 하나의 복잡한 모델을 구성하는 것
모델의 수