School/머신러닝

선형분류

응엉잉 2022. 4. 6. 00:06

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 값임

ROC Curve

 

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

 

 

'School > 머신러닝' 카테고리의 다른 글

의사결정나무(Decision Tree)-1  (0) 2022.04.16
로지스틱 회귀  (0) 2022.04.12
과적합과 과소적합  (0) 2022.03.30
회귀분석에서의 변수선택  (0) 2022.03.30
서브셋  (0) 2022.03.30