실습 코드가 class로 정의되었다는 점을 빼고는, 사실 내용 자체는 크게
어렵지는 않았다. 학부, 대학원, 현업 때의 경험이 다 있으니까.
수학적으로 제대로 이해하려면 별도의 공부는 필요하지만, 일단은 그런 부분은 잠시 놓아두기로 했다.
구분 | DecisionTreeClassifier | DecisionTreeRegressor |
---|---|---|
용도 | 분류 (Classification) | 회귀 (Regression) |
분할 기준 | 지니 지수(Gini) 또는 정보 이득(Entropy) | 제곱오차(Squared Error), MAE 등 |
리프 노드 값 | 클래스 확률 또는 최빈 클래스 | 평균값 (또는 중앙값) |
장점 |
- 해석이 쉬움 - 전처리 거의 불필요 - 범주형/수치형 모두 처리 가능 |
- 비선형 회귀 가능 - 이상치(outlier)에 어느 정도 강건 - 해석 용이 |
단점 |
- 과적합(overfitting) 우려 - 작은 데이터 변화에 민감 - 일반화 성능 낮을 수 있음 |
- 예측값이 불연속적일 수 있음 - 리프 노드 수가 많아질 수 있음 - 과적합 발생 가능 |