2. 지도 학습과 Decision Tree

2. 지도 학습과 Decision Tree

머신러닝 기법 > 지도학습(Supervised Learning) > Decision Tree

지도학습 : 기본적으로 데이터와 라벨 두개의 구성을 모두 활용하고 있는 머신러닝 기법

지도학습의 목표 : 어떤 Feature가 주어졌을 때 그 피쳐에 대응하는 적절한 Label을 결정해 주는 것

Decision Tree란 무엇인가?

Decision Tree의 경우에는 적용되는 응용 분야에 따라 사용자가 마음대로 변환해서 사용할 수 있는 알고리즘

종류가 매우 다양함 임계치 값 결정에 따라 종류가 달라짐 학습 중단 조건에 따라 종류가 달라짐

성립하느냐, 성립하지 않느냐 두 개로 분류하는 과정을 계속 지속적으로 나누는 알고리즘

Decision Tree_ 주어진 데이터를 최적으로 나누는 방법

주어진 데이터를 두 개의 나뉜 데이터가 서로 개수가 비슷하도록 나누는 방법 나눴을 때 정확도가 가장 높은 방향으로 나누는 방법 나눴을 때 단 한 한개의 샘플만 한쪽으로 가고 나머지 샘플은 반대쪽으로 빠지게 하는 방법 트리의 높이가 너무 길어짐

트리가 계속 한 쪽으로만 쏠림

스플릿을 많이 해야 됨

split 계산

○ 샘플이 많을 경우 → 학습 시간이 매우 길어지게 됨

○ Feature 타입이 많거나 임계값을 세세하게 나눌 경우 → 계산량이 점점 늘어나게 될

일반적으로 모든 계산을 동시에 진행하지는 않음

각각의 노드를 계산할 때 피쳐 타입의 경우를 랜덤하게 결정하는 방안을 많이 사용하기도 함

임계값 나누는 기준을 한 2~3개 정도로 적게해서 계산량을 줄이는 방법을 흔하게 사용

--> 모든 Split Node들의 조합까지 고려하면 완벽한 의사결정 나무를 학습하는 것은 불가는

일반적으로 greedy recursive splitting 전략을 사용함

지도학습의 일반화 성능

Split Node를 언제까지 나눌 것인가? 일반화 성능을 결정한는 부분 Split Node를 현재 주어진 데이터를 최대한 나눌 때까지 학습하는 방법 최대한의 Split Node 개수에 제한을 거는 방법

학습데이터와 테스트 데이터에 대한 기본적인 가정

학습데이터와 테스트 데이터는 서로 비슷한 상황이라는 가정 Independent and Identically Distributed(IID) : 학습데이터 / 테스트데이터 동일한 분포에서 온것을 의미한다.

N-fold Cross Validation : 서로 다른 Validation 오류 값들의 평균이 가장 작게 하는 모델을 찾아나가는 것

주어진 학습데이터를 n등분 하게 됨 총 n번의 머신러닝 모델 학습 n개로 나눈 것 중에 한 개만 밸리데이션 셋으로 활용하면 총 3가지 종류의 학습 데이터와 벨리데이션 셋 모임으로 나누게 됨

Parameter와 Hyper-parameter

parameter : 머신러닝 알고리즘을 통해서 얻어진 값 (바꿀수 없는 값)

Hyper-parameter : 사용자가 정해줄 수 있는 값 (바꿀수 있는 값)

ex ) 의사결정 나무를 양쪽의 세트가 밸런스가 있도록 나눠 나간다면 ?

parameter : Feature 타입

Hyper-parameter : Split Node 개수

일반화 성능 올릴 수 있는 방법

Hyper-parameter 조금씩 변화하여 Cross Validation Error가 가장 작아지는(일반화 성능이 높아질수 있다) Hyper-parameter 를 찾는다

from http://serim-24.tistory.com/47 by ccl(A) rewrite - 2021-08-04 13:00:15