Split Node를 언제까지 나눌 것인가?
현재 주어진 데이터를 최대한 나눌 때까지 Split Node를 설정
Split Node의 개수에 제한을 거는 방법
Memorization: 주어진 학습 데이터를 기억하는 것
Learning:
어떤 특징을 배우는 것
다양한 상황(기존에 주어지지 않는 테스트 데이터)에 대해서 일반화시킬 수 있는 최적의 학습 방법을 찾는 것
학습 데이터와 테스트 데이터는 서로 비슷한 상황이라는 가정
Independent and Identically Distributed (IID)
학습 데이터 / 테스트 데이터 -> 동일한 분포에서 왔다는 것
각 샘플들의 순서는 상관 없음 (Independent)
학습 데이터와 테스트 데이터는 상당히 유사하다는 가정 (Identically)
테스트 데이터에 의한 정확도 & 학습 데이터에 의한 정확도의 차이를 활용해서 Overfitting의 척도를 계산합니다.
학습 데이터가 너무 적을 경우 쉽게 발생합니다.
Decision Tree의 경우 Depth가 깊어질 수록 Overfitting 일 확률이 높아진다.
학습 데이터 중 일부를 선택하여 Validation data set으로 설정합니다.
Validation data set을 테스트 데이터 셋과 비슷하다고 생각하고 일반화 성능을 예측할 수 있습니다.
N-fold Cross Validation
ex) 3-fold Cross Validation
주어진 학습 데이터를 세 등분합니다.
총 세 번의 머신러닝 모델을 학습합니다.
학습 데이터를 3 등분했을 때, Validation set을 3등 분 중 하나 선택한다면, 총 3가지 경우(fold)가 나올 수 있습니다.
서로 다른 Validation 오류 값들의 평균이 가장 작게 하는 모델을 찾아나가는 것
가장 일반적으로 사용
테스트 데이터에서의 성능과 가장 유사한 성능을 볼 수 있으며 직관적으로 사용할 수 있는 방법입니다.
Cross Validation Error가 작다면 테스트 데이터에 대한 Error 역시 작을 확률이 높습니다. (일반화 성능이 높아질 수 있다는 의미입니다.)
Parameter: 머신러닝 알고리즘을 통해서 얻어진 값
Hyper-parameter: 사용자가 정해줄 수 있는 값
Decision Tree 예시:
Parameter: Feature 타입, Threshold
Hyper-parameter: Split Node 개수
Hyper-parameter 값을 바꿔가면서 Validation Error를 확인하고, Validation Error가 작다면 일반화 성능이 향상되었다고 볼 수 있습니다.