선형분류
1. 분류문제의 정의
분류(classification)
학습 데이터가 주어졌을 때, 해당 학습 데이터의 독립변수들을 이용하여 class 를 예측하는 것
* class : 연속된 값이 아닌 특정 그룹을 상징하는 이산적인 값
=> input data가 어떤 class(group) 에 속하는지 예측하는 것 (output 은 class)
결정경계(decision boundary)가 선형인 경우 선형 분류모형, 결정경계가 비선형인경우 비선형 분류모형이라고 함
target class 가 2개인 경우 이원(이진)분류, target class 가 3개 이상인 경우 다원(다진)분류 라고 함
2. 분류 알고리즘의 성능 평가 지표
:accuracy / F1-score
Accuracy(정확도)
일반적으로 분류문제의 경우 정확도(accuracy) 를 기준으로 성능 평가
모델이 얼만큼 positive 를 positive 로, negative 를 neagtive 로 잘 분류했는지 판단하는 수치
클래스가 불균형한 문제(imbalanced data) 에서 원하지 않는 결과를 얻게될 수 있음
불균형 문제
ex) negative가 절대적으로 많은 dataset
negative 로 그냥 냅다 다 분류해버리면 model 의 accuracy 가 높아짐 -> 이게 맞나 ?
confusion matrix
분류에서 가장 많이 사용되는 오분류표
matrix 의 대각선 = 올바르게 분류한 데이터 (TP, TN)
TP : True Positive => positive 라고 예측한게 true
TN : True Negative => negative 라고 예측한게 true
FP : False Positive => positive 라고 예측한게 false -> 실제로는 negavite
FN : False Negative => negative 라고 예측한게 false -> 실제로는 positive
percision(정밀도) 와 recall(재현율)
precision = positive 예측이 맞은 데이터의 수 / positive 라고 예측한 수 = TP / TP + FP
recall = positive 예측이 맞은 데이터의 수 / 실제 positive 수 = TP / TP + FN
왜 precision 은 정밀도, recall 은 재현율 이라고 할까 ?
precision 은 positive 라고 예측한 것(TP+FP)에 focus
실제로는 negative 지만 positive 라고 예측한것(FP)에 예민
오류가 없는 것, 즉 정밀한 것에 focus
recall 은 실제 positive 인 것(TP+FN)에 focus
실제로 positive 지만 negative 라고 예측한것(FN)에 예민
실제 데이터와의 유사성, 즉 실제 데이터를 얼마나 잘 재현했는지에 focus
positive 판단을 엄격하게 하게 될 경우, positive 라고 잘못 판단하는 경우가 줄어드니까 FP를 줄일 수 있음
precision 의 분모가 작아지므로, precision 값은 매우 커짐
positive 판단을 엄격하게 한다는 것은 positive 인데 negative 라고 판단하는 경우가 많아진다는 뜻이므로 FN은 커짐
recall 의 분모가 커지므로, recall 값은 매우 작아짐
따라서 precision 과 recall 값은 trade-off 관계
둘 다 높은 수치를 얻는것이 가장 좋은 성능
어느 한 평가지표만 높고, 하나는 낮으면 바람직하지 못함
F1 score
precision 과 recall 의 조화평균
precision 과 recall 을 동시에 볼 수 있는 수치
분류해야하는 클래스의 불균형이 심한 경우, accuracy 가 아닌 F1 score 를 사용
0.0 ~ 1.0 사이의 값을 가지며 높을수록 분류가 잘 된 모델
cut-off value (=threshold)
precision 과 recall 값은 얼만큼 빡빡하게 판단하냐에 따라 달라짐
cut-off value(threshold)는 판단의 기준점 역할을 하고, 기준 이상이면 1이라고 예측(분류)함
threshold 높을수록 분류 기준이 높으므로 더 깐깐하게, 정밀하게 예측(분류)함
TP와 TN이 가장 많아지는 Threshold 값이 좋은 Threshold 값임
TPR과 FPR
TPR : positive 라고 맞게 분류한 것 (TP) / 전체 데이터 중 실제로 positive 인 것 (TP + FN) = recall 값
FPR : positive 라고 잘못 분류한 것 (FP) / 전체 데이터 중 실제로 negative 인 것 (FP + TN)
threshold 값을 바꾸게 되면 TPR과 FPR 값도 바뀌게 됨
ROC Curve
모델 성능평가지표가 threshold 값에 따라 변화하게 되므로,
어떤 threshold 값을 기준으로 서로 다른 모델을 비교해야하나 ? 하는 고민이 발생
데이터에 대해 다른 probability 를 부여하는 두 모델의 비교를 위한 도구 = ROC Curve
(어떤 threshold 에서는 M1모델이, 또 다른 threshold 에서는 M2 모델이 더 좋다 를 판단하게 해주는 도구)
어떤 모델이 더 좋은 모델인지 비교해보고 결정해야하는 상황에 이용
특정 threshold값과 무관하게 다양한 threshold에 대한 모델의 성능을 평가할 수 있는 방법
○ : 최악의 분류기
FPR = 1 : FP = 1 이므로 전체 negativve data 를 모두 positive 로 예측
TPR = 0 : TP = 0 이므로 전체 positive data 를 모두 negative 로 예측
● : 최고의 분류기
FPR = 0 : FP = 0 이므로 전체 negative data 를 모두 negative 로 예측
TPR = 1 : TP = 1 이므로 전체 positive data 를 모두 positive 로 예측
◎ : 그냥 다 positive 라고 하는 분류기
FPR = 1 : FP = 1 이므로 전체 negative data 를 모두 positive 로 예측
TPR = 1 : TP = 1 이므로 전체 positive data 를 모두 positive 로 예측
랜덤모델의 ROC 커브는 (0,0) 과 (1,1) 을 잇는 선분으로 나타남
커브의 한 점의 좌표 = 특정 threshold 에서의 FPR 과 TPR
검은 점선 : 모든 데이터에 대해 random 하게 예측했을 때 기대할 수 있는 ROC 커브
커브가 좌측 상단(최고의 분류기)과 가까울수록 모델의 성능이 좋음
AUROC(AUC)
ROC커브 아래의 면적(0 <= AUC <= 1)
전반적인 성능 평가에 이용
random model 보다 나은 경우 AUC > 0.5
완벽한 분류기의 AUC = 1