주로 여러 개의 단일 모델을 통합하여 결과를 도출하는 Random forest 와 같은 Ensemble (앙상블) 모델에 자주 사용됨
Support Vector Machine (SVM)
클래스를 가장 잘 나눌 수 있는 Decision Boundary를 정하는 model
각 클래스에서 결정 경계와 가장 가까운 데이터를 Support vector
두 클래스 사이의 거리를 Margin
마진을 최대화하는 결정 경계를 초평면 (Hyperplane) 이라고 하며 이 초평면을 찾는 것이 목적
결정해야 할 Hyperparameter가 많고 학습 속도가 느리다는 단점 존재
데이터의 형태에 따라 학습이 불가능하기도 함
회귀 모델과 Decision tree 와는 다르게 해석이 힘들기 때문에 설명력 관점에서는 사용하기 어려움
출처 : 위키피디아
K-Nearest Neighbors (KNN)
새로운 데이터가 입력되었을 때, 가장 가까운 데이터 k개를 이용하여 해당 데이터를 유추하는 모델
새로 입력되는 데이터와 기존의 데이터 사이의 거리를 모두 계산하고 비교해야 하므로 데이터가 많을 수록 학습 속도가 급격하게 느려지는 단점 존재
k는 사용자가 정해야 하는 Hyperparameer로, 만일 k가 너무 작으면 시야가 좁아지면서 overfitting의 가능성이 있으며, 너무 크면 주변 데이터를 고려하는 의미가 사라지게 됨
적당한 k를 고르기 위해 일부 데이터를 검증용 데이터로 분리하고 k에 따른 분류 정확도를 확인하여 가장 정확도가 높은 k 선택
출처 : 위키피디아
Ensemble Model (앙상블 모형)
집단지성과 유사하게 여러 모형의 결과를 종합하여 단일 모형보다 정확도를 높이는 방법
반복 모델링한 여러 결과값을 회귀에서는 평균, 분류에서는 투표를 통한 다수결로 최종 예측값을 결정
대표적인 방법론으로는 Bagging, Boosting, Random Forest 존재
Bagging (배깅) Bootstrap Aggregating의 줄임말로 이미 존재하는 데이터로부터 같은 크기의 표본을 여러 번 복원추출한 Boostrap Sample에 대해 예측 모델을 생성한 후 그 결과를 조합하는 방법론 Boosting (부스팅) 부트스트랩 표본을 구성하는 과정에서 이전 모델의 결과를 반영하여 잘못 예측된 데이터의 비율을 높여 더욱 집중적으로 학습하는 방법론 Random Forest 배깅의 일종으로 의사결정 나무가 모여 숲을 이룬 것 같은 형태를 말하며, 각 의사결정 나무 모델링 단계에서 변수를 랜덤으로 선택하여 진행하는 방법론
불필요한 변수가 포함된다면 모델 성능에 악영향을 줄 . 수있고 이러한 현상을 차원의 저주라고 함
차원의 저주를 완화하고자 변수의 개수를 줄이는 변수 선택(Feature Selection)과 변수 추출(Feature Extraction) 방법론 사용
방법론으로는 Principal Component Analysis (주성분 분석, PCA), 다차원 척도법 (Multi-Dimensional Scaling, MDS), Locally Linear Embedding (LLE), t-Stochastic Neighbor Embedding (t-SNE) 등
과적합과 모델 학습법
과적합을 피하는 것이 중요한 이유는 갖고 있는 데이터에 대해서만 너무 완벽하게 모델을 만든다면 우리가 보지 못한 데이터는 잘 맞히지 못할 가능성이 크기 때문임
과적합은 데이터 수가 적은 경우, 입력 변수의 개수가 많은 경우, 복잡한 모델을 사용한 경우로 인해 주로 발생함
데이터가 부족한 경우라면 데이터를 더 많이 취득하거나 비슷한 데이터를 증강시키는 Data augmentation 기술을 통해 인위적으로 늘리면서 극복 가능
복잡한 모델이라는 것은 인공신경망처럼 모델 자체가 복잡한 경우도 있지만, 입력 변수가 많은 경우도 포함됨
모델 복잡도를 낮추기 위해서는 Lasso와 Ridge 처럼 Penalty를 통한 Regularization 과 입력 변수를 줄이는 차원 축소 기법을 활용할 수 있음
일반적으로 모델의 성능을 검증하기 위해 데이터를 학습, 검증, 평가 세 부분으로 나누어 실험을 설계
주로 7:2:1, 또는 6:2:2 비율로 구성
Training Data (학습 데이터) 모델을 학습시키기 위한 데이터
Validation Data (검증 데이터) 모델의 성능을 조정하기 위한 용도로 과적합 판단을 하거나 HyperParameter를 선택하기 위한 데이터 학습 데이터로 학습된 모델을 검증 데이터에 적용하여 정확도를 확인하며, HyperParameter가 적용된 다양한 모델들의 성능을 비교하여 적절한 HyperParameter 를 선정
Test Data (테스트 데이터) 최종적으로 결정된 모델의 성능을 측정하는 데이터 검증 데이터는 HyperParameter에 따른 모델의 성능을 파악하기 위해 정답을 알고 있다는 가정 하에 사용됨 테스트 데이터는 실제로 모델을 적용했을 때 "모델의 성능은 이정도 됩니다" 라는 것을 이야기하기 위한 것이기에 정답을 모르는 상태임을 가정