머신러닝에서 분류 모델(Classification Model)은 입력 데이터를 사전에 정의된 클래스 레이블로 분류하는 작업을 수행하는 모델이다. 분류 모델은 지도학습(Supervised Learning)의 한 종류로, 입력 데이터와 해당 데이터의 클래스 레이블이 주어지는 학습 데이터를 사용하여 모델을 학습시킨다. 그리고 학습된 모델을 사용하여 새로운 입력 데이터의 클래스 레이블을 예측하거나 분류한다.
분류 모델은 다양한 알고리즘과 기법을 사용하여 구현될 수 있다.
다양한 분류 모델
경사하강법 기반 알고리즘
Logistic Regression
SGD Classifier
Artificial Neural Networks(ANNs): 신경망
확률 기반 알고리즘
LDA(Linear Discriminant Analysis)
QDA(Quadratic Discriminant Analysis)
Naive Bayes Classifier
거리 기반 알고리즘
K-Nearest Neighbor (K-NN)
Support Vector Machine (SVM)
트리기반 알고리즘
Decision Tree
앙상블 기반
Random Forest(배깅)
AdaBoost
Gradient Boosting Tree (GBT)
lightGBM
XGBoost
CatBoost
Classification vs Regression
분류 모델은 객체가 속한 카테고리를 분류하는 반면 회귀 모델은 연속적인 출력을 예측한다. 분류 모델과 회귀 모델은 각각 사용하는 평가 지표도, 사용하는 모델도 다르다. 대표적인 Linear Regression을 classification에 사용하려고 한다면 문제가 생긴다. Logistic Regression(분류 모델)은 output이 0~1사이의 값으로 제한되지만 Linear Regression에서는 예측 값이 0보다 작거나, 1보다 클 수 있다. 데이터의 추가에 따라 새로운 회귀 직선이 생기는데 회귀 직선이 바뀌면서 기준이 바뀔 수도 있기 때문에 사용하지 않는다.
분류모델의 성능평가
분류 모델의 성능 평가 지표로는 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1-score , 오차 행렬(Confusion matrix)가 있다.
정확도(Accuracy)
실제 데이터가 예측 데이터와 얼마나 같은지를 판단하는 지표로, 가장 직관적으로 모델의 성능을 나타낼 수 있는 평가 지표이다
정확도 = 예측 결과가 동일한 데이터 건수 / 전체 예측 데이터 건수
클래스 비율이 불균형한 데이터로 성능평가를 한다고 가정했을 때 정확도만 가지고 판단할 경우 모델의 신뢰도가 떨어질 수 있다. 극단적으로 0과 1의 라벨이 9:1인 데이터가 있다고 가정해보자. 이때 모델이 데이터 전부를 0으로 판별했다고 해도 정확도는 90%가 나온다. 이런 예측결과는 정확하다고 할 수 없다. 따라서 다른 성능 평가 방법을 사용하여 평가하는 것이 일반적이다.
오차 행렬(Confusion matrix)
모델의 성능을 평가할 때 사용하는 지표로 Training을 통한 예측 성능을 측정하기 위해 예측 값과 실제 값을 비교하고자 사용하는 행렬표이다. TP(True Positive)와 TN(True Negative)은 실제 값과 같게 예측한 부분, FP(False Positive)와 FN(False Negative)은 실제 값과 다르게 예측한 부분이다.
정밀도(Precision)
모델이 Positive로 분류한 것 중에서 실제로 Positive인 비율
정밀도 = TP / TP+FP
재현율(Recall)
실제 값이 Positive인 것 중 모델이 Positive라고 분류한 비율
재현율 = TP / TP+FN
F1-score
정밀도와 재현율의 조화평균
F1-score = 2×정밀도×재현율 / 정밀도+재현율
정밀도와 재현율은 그 값이 반비례할 수 있기 때문에 둘의 평균을 구할 때 는 F1-score 사용한다. 여기서 정밀도와 재현율의 비중을 달리하기 위해서 beta값을 조정하기도 한다.
Beta값이 1.0보다 크면 Recall에 비중을 두고 계산하게 되고 Beta값이 1.0보다 작으면 Precision에 비중을 두고 계산하게 된다.