N 36 21 22
E 127 23 46
Archive vol. 01
Depth0000mSURFACE
Research Note / Technical Document

AI의 여러 가지 지표들 해석하기

곡선과 면적 계열

ROC/PR/DET/Threshold curve/partial AUC

1. ROC Curve / AUROC(ROC-AUC)

일단 이 두 친구들은 임계값을 움직이며 TPR AUC는 데이터 세트의 균형이 대략 맞는 한 두 가지 모델의 성능을 비교하는 데 유용한 측정항목입니다 /FPR을 기반으로 점을 찍어 연결한 곡선이다. 곡선 아래 면적을 AUROC라고 부른다.

보통 AUROC는 랜덤하게 양성 1개, 음성 1개를 뽑았을 때 양성의 점수가 더 높을 확률로 해석되는 성질이 강하다.

AUPRC 커브의 예시이다. 극단적 불균형에서 FPR이 작게 유지되기 쉬워서 ROC가 좋아 보일 수는 있다..

 -> 음성이 너무 많아서 FP가 높게 나와도, FPR 비율에서는 낮게 나올 수 있다.

AUC는 데이터 세트의 균형이 대략 맞는 한 두 가지 모델의 성능을 비교하는 데 유용한 측정항목이다.

양성 예시와 음성 예시가 일반적으로 잘 구분되며 대부분의 양성 예시가 음성 예시보다점수가 높은 경우

양성 예시가 음성 예시보다 점수가 낮은 예시가 많고 음성 예시가 양성 예시보다 점수가 높은 예시가 많습니다.

양성 클래스의 예가 몇 개만 포함되어 있습니다.

2. Precision–Recall Curve / AUPRC / AP(average precision)

보통 데이터 불균형이 있어서 양성이 희귀했을 경우에, 양성으로 잡았을 때 직접 양성일 확률이 직접 축으로 들어가 좋은 지표를 얻을 수 있다.

  • PR-AUC

보통 sklearn.metrics.auc(recall, precision)처럼 사다리꼴 적분을 활용한다. 곡선을 연속적인 선처럼 적분하는 방식이다. AUC라고 불리는 것도 있고 PR-AUC라는 것도 있는데 PR은 Precision Recall을 뜻하는 것 같다.

  • AP(Average Precision)

sklearn.metrics.average_precision_score(y_true, y_score)로 계산한다. 랭킹에서 상위부터 내려오며 precision을 누적 요약하는 계단형 방이다.

PR 공간에서 점과 점 사이를 선형으로 잇는 건 자연스럽지 않을 수 있다. PR 공간에서 linear interpolation이 과도하게 낙관적인 추정이 될 수 있다. 그래서 AP는 이산/계단 성질에 맞춘 요약이다.

상세한 차이점 분석.

여기서 AP를 계산하는 과정을 그려보자면,

어떤 샘플이 포함되느냐가 중요하다. 임계값을 1일 때부터 조금씩 줄여나가면 하나씩 음 반응이 추가되는 것 이다.

랭킹을 위에서부터 한 단계씩 내려오면서 양성을 만날 때마다 그 순간의 precision을 기록하고, 그 기록들의 평균을 낸 것이다.

이때, PR-AUC랑의 차이점은 곡선 아래 면적을 어떤 규칙으로 계산하느냐의 차이점이다.

scikit-learn 문서 그대로 따라가면 PR-AUC는 사다리꼴 규칙을 활용해서 인접한 PR 점을 직선으로 연결한 선분 아래 면적을 더한다.

AP는 계단 기반으로 면적을 계산한다. skikit-learn은 AP를 아래와 같이 정의한다. recall 증가량을 가중치로 한 precision의 가중평균이다. 점들을 직선으로 잇지 않고, PR의 이산적 변화에 맞춰서 면적을 잡는다.

순서(k)점수 (s)정답 (y)

순서(k)점수(s)정답(Y)
10.901
20.800
30.701
40.400
50.101

전체 양성 개수 N을 3이라고 할 때,

TP: 상위 k개 안에 있는 양성 개수

FP: 상위 k개 안에 있는 음성 개수

Precision P = TP / (TP+FP) = TP / k

Recall R = TP / (전체 양성 개수) = TP / N

  • k=1k=1k=1: TP=1, FP=0 → P=1, R=1/3
  • k=2k=2k=2: TP=1, FP=1 → P=1/2, R=1/3
  • k=3k=3k=3: TP=2, FP=1 → P=2/3, R=2/3
  • k=4k=4k=4: TP=2, FP=2 → P=1/2, R=2/3
  • k=5k=5k=5: TP=3, FP=2 → P=3/5, R=1

(1/3,1), (1/3,1/2), (2/3,2/3), (2/3,1/2), (1,3/5) <- 좌표로 찍으면 해당 좌표 처럼.. 

AP 계산

AP 공식은 Recall이 증가하는 순간만 면적이 생긴다는 점으로, Recall은 양성을 새로 포함할 때만 증가하므로, 증가 구간은 

0->1/3->2/3->1이다.

각 증가 구간에서의 precision은 P=1, P=2/3, P=3/5 이다. 각 ΔR=1/3 이므로

AP

=(1/3)⋅1+(1/3)⋅(2/3)+(1/3)⋅(3/5)

=1/3+2/9+1/5=34/ 45

≈0.7556

AUPRC는 진짜 그래프에 선을 그어서 적분한 것.


내가 이해한 것은 AP는 그냥 직사각형 하나씩 그려서 그거에 대한 면적을 구하는 것이고, PR-AUC는 하나의 그래프로 보고 계산을 하는 것.

그럼 둘은 언제 쓸까?

AP는 상위 점수부터 얼마나 양성이 앞쪽에 몰려 있나가 중요할 때 사용한다, 양성을 발견하는 순간들의 precision의 평균이다. 하지만 양성 비율의 영향을 많이 받기 때문에 양성이 크게 적으면 사용하기가 어렵긴 하다.

PR-AUC는 내가 알기로 찾으려는 Positive가 많이 적을 때 많이 사용한다고 알고 있다.

원래는 더 해석해보려고 했는데, 너무 종류도 많고 다양한 그래프들을 그릴 수 있어서 내 기준에서 많이 애들만 정리.!