일단 단일 알고리즘의 경우 SVM을 가장 선호한다. 물론 모델 빌드 후 바로 cross-validation 결과를 보면 정확도가 그리 좋지 않을 수도 있지만 SVM이 일반화 능력이 가장 좋다는 것은 이미 많은 논문에서 증명된 사실이다.
하지만 나는 대부분의 경우 하나의 분류기만을 사용하지 않는다.
아는 사람들만 아시겠지만 앙상블 학습(Ensemble Learning)이 성능이 좋다는 것은 공공연한 사실이다. Boosting 정도만 써줘도 대부분의 경우 성능이 좋게 나온다.
여러가지 학습기를 결합해 하나의 학습룰을 정의하는 것은 흡사 집단지성의 원리를 알고리즘에 적용한 것과 같다고 생각한다.
신기한 사실은 제임스 서로위키가 “대중의 지혜”에서 언급한 집단지성 발현의 3가지 조건과 같이 이 Boosting 알고리즘이 정확하게 분류기의 다양성, 독립성, 분산화와 통합 이렇게 세가지 조건을 추구한다는 것이다.
하긴…. 데이터도 다양한 인간 군상들의 결과물이니 그것을 판단하는 전문가 시스템이 위의 조건을 가지고 있어야 탁월한 판단을 내릴 수 있을 것이다.
살다보면 사회과학, 공학, 자연과학 등등이 어느 한 지점에서 만나는 경우를 많이 보게 된다. 이런게 앎의 즐거움인가?
참… 그렇다면 SVM으로 Boosting 기법을 적용하면 어떨까?
이 부분은 직접 돌려보시라…. ㅎㅎ
학습 알고리즘 선택 기준 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.