모델 평가 지표

2021. 8. 14. 23:22AI/Machine learning

    목차
반응형

평가지표와 목적함수

목적함수

  • 모델 학습 시 최적화되는 함수
  • 목적함수로 사용한 오차가 최소가 되도록 결정 트리의 분기나 선형 모델의 회귀계수 추가 및 갱신을 수행
  • 목적함수는 ‘미분’을 할 수 있어야 함
  • 회귀문제는 RMSE
  • 분류문제는 log loss (= cross entropy)

평가지표

  • 모델 또는 예측값의 성능이 좋고 나쁨을 측정하는 지표
  • 실제값과 예측값으로 계산할 수 있다면 특별한 제약은 없음

평가지표의 최적화

  • 간결하고 올바른 모델링 시행
    • RMSE나 log loss를 목적함수로 지정
  • 학습 데이터를 전처리하고 다른 평가지표를 최적화
    • 학습 데이터의 목적함수의 log를 취해 RMSE로 학습 후 값을 지수함수로 원복하여 예측
  • 다른 평가지표를 최적화하고 후처리
  • 사용자 정의 목적함수를 사용
  • 다른 평가지표를 최적화하고 학습 조기 종료
    • early stopping 사용

1) 임계값 (예측 정확도의 판단 기준 값) 최적화

모든 임계값 확인
0.01 부터 0.99까지 0.01씩 증가

최적화 알고리즘 사용
scipy.optimize 모듈로 임계값 인수로 점수를 반환하는 함수 최적화
e.g., 목적함수 미분 불가해서 사용 가능한 최적화 알고리즘 Nelder-Mead

2) OOF (Out of fold) 예측 = kFold

학습 데이터를 여러 개로 나눔 (fold 1~4)
fold 별 실제값과 예측 확률에서 최적 임계값 구함

예측확률 왜곡 경우

데이터 불충분
모델이 최적화 되어 있지 않음

GBDT, 신경망, logistic regression 에서 분류 문제는 보통 log loss 목적함수를 사용
random forest는 다른 알고리즘으로 분류하여 확률이 왜곡됨

예측 확률의 조정

예측값에 n 제곱
0 혹은 1에 가까운 극단 확률 제외
stacking
2계층 모델 - GBDT, 신경망, 로지스틱 회귀 등 타당한 확률 예측 모델 사용
calibrated classifier CV
보정 수단으로 sigmod 사용 platt 혹은 등위 회귀 선택
교차검증 방식으로 학습 (fold)

평가지표

모델의 성능이나 그 예측 결과의 좋고 나쁨을 측정하는 지표
평가지표가 주어질 시, 평가지표의 특징을 이해하고 그에 맞게 예측 결과를 최적화함으로써 점수를 올리는 것이 중요함.

  • 회귀 평가지표
  • 이진 분류 평가지표
  • 다중 class 분류 평가지표

1. 회귀 평가지표

1) RMSE (Root Mean Square Error)

= sqrt(1/N ∑ (yi - yihat)^2)

  • N: 행 데이터 수
  • yi: i번째 행 데이터의 실젯값
  • yhat: i 번째 행 데이터의 예측값

오차가 정규분포를 따른다는 전제
outlier에 영향받기 쉬움 (outlier를 제거해야 overfit 되지 않음)
sklearn.mean_squared_error

2) RMSLE

실제값과 예측값의 비율로 평가

목적변수의 분포가 한쪽으로 치우칠 시, 영향력이 RMSE보다 강해지는 걸 막기 위함
= sqrt (1/N ∑ (log(1 + yi) - log(1 + yihat))^2)
= log((1 + yi)/(1 + yihat))

log를 적용하여 목적변수의 큰 값의 영향력을 제거

3) MAE

평균제곱오차
= 1/N ∑ | yi - yihat |

4) 결정계수

Coefficient of determination (R^2)
회귀분석의 적합성 평가
이 지표의 최대화가 RMSE의 최소화와 동일

    R^2 = 1 - ∑ (yi - yihat)^2
              --------------------
              ∑ (yi - yhat)^2

2. 이진 분류 평가지표

  • true/false를 평가하던가, 혹은
  • true일 확률을 평가

1) 혼동행렬 (오차행렬)

모델 성능 평가 지표
혼동행렬로 "정확도"와 "재현율"을 계산

TP: 양성으로 맞게 예측
TN: 음성으로 맞게 예측
FP: 양성으로 잘 못 예측
FN: 음성으로 잘 못 예측

[tp, tn, fp, fn]의 수를 줘서 계산

2) 정확도 / 오류율

정확도 (accuracy)

예측의 정확성 (%): True의 예측이 맞은 비율

    accuracy = TP + TN
               -------
               TP + TN + FN + FN

             = 잘예측/전체

오류율

예측의 부정확성 (%)
error rate = 1 - accuracy

3) 정확도(precision) / 재현율

정밀도(precision)

= 실제양성/양성예측
예측의 정확성

precision = TP / (TP + FP)
0~1: 1에 가까울수록 높음

재현율(reall)

실제 양성을 양성으로 예측한 비율

recall = TP / (TP + FN)
0~1: 1에 가까울수록 높음

4) F1-score, Fβ-score

F1-score

정밀도와 재현율의 조화평균 (둘의 균형 지표)

        2
        ------
        1           1
        --     +   ---
        recall     precision

Fβ-score

F1-score에 β의 가중치를 줌

β = 1 -> F1-score
β = 2 -> F2-score

        (1 + β^2)
        ---------
        β^2  +   1
        ---     ----
        recall  precision

5) MCC (매튜상관계수)

불균형 데이터의 모델 성능 평가

    TP*TN - FP*FN
    -------------
    sqrt((TP + FP)(TP + FN)(TN + FP)(TN + FN))

      -1 ~ 1
        1: 완벽예측
        0: 랜덤예측
        -1: 반대예측

6) log loss

= cross entropy라고 부름
분류 문제의 대표적인 평가지표

1/N ∑ (yi log pi + (1 - yi) log (1 - pi)))
= - 1/N ∑ log p'i

        yi: 정답 lable (1, 0)
        pi: 양성 예측 확률
        p'i: 실제값 예측 확률

낮을수록 좋음
실제값 예측 확률에 로그를 취해 부호 반전

잘 못 예측시 panalty가 큼
예측확률이 낮으면 log loss는 무한 발산
예측확률이 1로 완벽하면 로그손실은 0

7) AUC (Area Under the ROC curve)

Area Under the ROC(Receiver Operating Characteristic) Curve
이진 분류의 대표 평가지표

양성 판단 임계값을 1에서 0으로 움직일 시 거짓 양성 비율(FPR)과
참양성 비율(TPR)을 2차원 그래프에 표시

FPR(False Positive Rate): positive 예측 실패
FP / (FP + TN)

TPR(Ture Positive Rate): positive 예측 성공

TP / (TP + FN)

    np: 전체 양성 개수
    nn: 전체 음성 개수
    양성이 들어오면 1/np 만큰 위로 이동
    음성이 들어오면 1/n만큼 우측으로 이동

특징
모두 정확히 예측 시 ROC 곡선은 0.0, 1.0을 지남
AUC = 1.0

모두 random 예측 시
y = x 형태
AUC = 0.5

4. 다중 class 분류 평가지표

1) Multi-class accuracy

올바른 예측 비율 = 정답인행 수 / 모든 행 수

2) Multi-class logloss

다중 클래스 로그 손실

로그 손실을 다중 클래스 분류로 확장한 것
다중 클래스 분류의 평가지표로 자주 사용됨

= -1/N Σ Σ yi,m log pi,m

3) mean-F1, macro-F1, micro-F1

...

4) QWK

다중 class 분류에서 class 간에 순서 관계가 있을 때 (ex. 영화 score 1~5점) 사용

    k = 1 - Σi,j wi,j Oi,j
            --------------
            Σi,j wi,j Ei,j

3. 추천의 평가지표

1) MAP@K

Mean Average Precision at(@) K
추천 문제에서 자주 사용하는 지표

포함될 가능성이 높을 것으로 예측한 순서대로 K개의 class를 예측값으로 삼음

= 1/N Σ (1/min(mi, k) Σ pi(k))

K개의 평균 확률

반응형

'AI > Machine learning' 카테고리의 다른 글

LDA Latent Dirichlet Allocation  (0) 2021.08.16
LSA Latent Semantic Analysis  (0) 2021.08.16
특징 생성  (0) 2021.08.14
Data Science: 자연어 처리 (Natural Language Processing)  (0) 2021.08.14
Data Science: Introduction  (0) 2021.08.14