[논문 리뷰] [Deep Learning] An introduction to ROC analysis

2025. 1. 19. 23:27· Paper Review(논문 리뷰)/Deep Learning
목차
  1. 0. Reference
  2. 1. Introduction
  3. 2. Classifier performance
  4. 3. ROC space
  5. 3.1. Random performance
  6. 4. Curves in ROC space
  7. 4.1. Relative versus absolute scores
  8. 4.2. Class skew
  9. 5. Efficient generation of ROC curves
  10. 6. The ROC convex hull
  11. 7. Area under an ROC curve(AUC)
  12. 8. Averaging ROC curves
  13. 8.1.  Vertical Averaging
  14. 8.2. Threshold Averaging
  15. 9. Decision problems with more than two classes

0. Reference

https://www.sciencedirect.com/science/article/abs/pii/S016786550500303X

 

An introduction to ROC analysis

Receiver operating characteristics (ROC) graphs are useful for organizing classifiers and visualizing their performance. ROC graphs are commonly used …

www.sciencedirect.com

1. Introduction

- Receiver Operating Characteristics(ROC) graph는 classifier의 성능을 시각화, 조직화하는 기술이다.

- 최근 몇년 동안 Machine Learning에선 단순히 ACC를 보는건 나쁜 지표일 수 있다는 인식이 확산되었다.

- 그렇기에 ROC graph의 사용이 증가하였다고 한다.

- 이러한 ROC graph는 불균형한 데이터에 대해 되게 유용하게 쓰인다고 한다.

- 해당 논문에선 ROC의 개념과 ROC을 통해 분석하는 방법이 수록되어 있다.

 

2. Classifier performance

- 본격적으로 알아가기 전에, 우리는 binary classify에 대해 집중해보자.

- Output은 무조건 1,0 즉 Positive , Negative 중 하나가 나오게 된다.

- 이러한 결과를 바탕으로 confusion matrix를 만들면 다음과 같은 행렬이 나오게 된다.

 

 

- TP(True Positives): 모델이 참이라고 답했는데 참일 경우

- FP(False Positives): 모델이 참이라고 답했는데 거짓일 경우

- FN(False Negatives): 모델이 거짓이라고 답했는데 거짓일 경우

- TN(True Negatives) : 모델이 거짓이라고 답했는데 참일 경우

- Confusion matrix 옆의 수식들은 confusion matrix를 통해 계산 가능한 지표들이다.

- 추가적으로 다음 수식도 알고가자.

 

3. ROC space

- ROC graph는 2차원 그래프로 X축으로 fp rate,Y축으로 tp rate로 구성되어 있다.

- 다음 그림은 ROC space위에 5개의 classify를 나타낸 것이다.

 

- (0,0) : 분류기가 positive classification을 하지 않아 TP/FP를 나타내지 않음

- (0,1) : 분류기가 완벽하게 분류를 하는 경우 -> D는 완벽히 분류를 하는 모델

- (1,1) : 분류기가 positive classification만 해서, TP/FP가 전부 큰 경우

 

- 두 모델중 더 성능이 좋은 모델을 알수 있는 방법은 상대적으로 좌상향에 있는 모델을 지목하면 된다.

ex) B 와 C중 가장 성능이 좋은 모델은 B이다.

 

- Area 입장에서 생각하면 다음 두가지로 나뉜다.

i) Conservative(좌하향) : Positive classification을 확실할 때만 Return

ii) Liberal(우상향) : Positive classifacation을 마구잡이로 진행 

 

3.1. Random performance

- 대각선 y = x위의 있는 점들은 무작위로 클래스를 추측하는 모델을 의미한다.

- 예를 들어, classify가 positive calss를 절반의 확률로 무작위로 추측한다면, 

- Positive의 절반, Negative의 절반을 맞출 것으로 기대할 수 있다.

- 즉, ROC space에서의 (0.5, 0.5) 지점에 해당한다.

- 위의 graph에서 모델 C는 무작위로 예측하는 모델이라고 답할 수 있다.

 

- 여기서 무작위로 예측하는 모델보다 더 낮은 성능이 존재하게 된다.

- 위의 graph에서 모델 E가 속하게 되는데,

- 이럴 경우 negation 즉, 결과를 반대로 return 하면 된다.

 

4. Curves in ROC space

- 많은 classifier들은 각 데이터에 대해 Yes or No와 같은 이산적인 output을 반환한다.

- 이러한 이산형 classifier를 test set에 적용하여 confusion matrix를 만들어내면,

- 이를 이용해 ROC space 에서의 하나의 점으로 나타낼 수 있다.

- 즉, 이산형 classifier는 ROC space에서 오직 한 점만 생성하게 된다.

 

- naive bayes classifier나 Neural network는 확률이나 점수를 출력하는데,

- 이는 해당 데이터가 특정 class에 속할 가능성을 나타낸다.

- 이러한 classifier를 probablistic classifier(확률적 분류기)이라고 정의한다.

 

- 이와 같은 probablistic classifier들은 임계값을 사용하여 이산형 classifier을 생성할 수 있다.

- 즉, 특정 확률이 임계값보다 높으면 Y, 아니면 N을 출력하는 것이다.

- 각 임계값들은 ROC space에서 서로 다른 점을 생성하게 된다.

- 그래서 이를 이용해서 임계값을 음의 무한대부터 양의 무한대까지 증가시켜 ROC curve를 그릴 수 있다.

- 다만, 이는 비효율적이기에 현재는 이런 방식은 사용하지 않는다.

 

- 다음 그림은 test set의 20개의 sample에 대한 ROC curve의 예를 보여준다.

- 해당 sample은 positive 10, negative 10개로 구성되어 있다.

 

- 유한한 sample에서 생성된 ROC curve는 Step Function(계단 함수)으로 이루어져 있다.

 

- 다음 예시를 보면서 한번 이해해보자.

i) 임계값 = 1일때,

- (0,0)에 점이 생성된다.

ii) 임계값 = 0.9 일때,

- 첫번째 sample만 positive로 분류되어 (0,0.1)이 된다.

 

- 임계값이 낮아지면 낮아질수록 곡선은 위로올라가고 오른쪽으로 이동하게 된다.

- 임계값  = 0.1이면, (1,1)에 점이 생성되게 된다.

- 즉, 임계값을 낮춘다는 것은 graph의 "conservative"영역에서 "liberal"영역으로 이동하는 것을 의미한다.

 

4.1. Relative versus absolute scores

- ROC graph에서 중요한 점은 classifier의 상대적인 인스턴스 socre를 생성하는 능력을 평가한다는 점이다.

- 즉, Positive를 확실하게 positive로  negative를 확실하게 negative로 예측하는 능력을 의미한다.

- 다음 그림처럼 Naive Bayes classifer에서 나온 결과를 한번 봐보자.(sample 10개)

 

- sample 7, sample8만 오답이기에 ACC는 80%라고 말할 수 있다.

- 그렇다면 ROC curve를 봐보자.

- 해당 ROC curve는 정말 완벽하게 classification을 했다는 것을 의미한다.

- 왜 이러한 불일치가 발생할까?

 

- ROC Curve는 classify가 positive sample을 negative sample에 비해 얼마나 잘 순위를 매기는지 보여준다.

- 반면에, ACC는 임계값 (score > 0.5)을 적용하고, 점수에 따라 결과로 나온 분류를 측정한다.

- 즉, classifier의 score는 확률을 나타내는 것이 아니기 때문에 상대적이다. 그렇기 때문에 0.5를 기준으로 나누는것은 부적절하다.

- classifier의 score는 상대적이기 때문에 모델 class간에 비교되어선 안된다고 한다.

 

4.2. Class skew

- ROC graph는 class의 분포에 둔감한 특성을 가지고 있다.

- 즉, positive와 negative의 비율이 바뀌더라도 곡선은 크게 변하지 않는다는 것이다.

- 그 이유는 ROC를 계산할 때 한 열에서만 계산을 하기 때문이다.

- 반면에 ACC, F1-score등등은 두 열에서 계산이 되기 때문에 class의 분포에 민감한 특성을 가지고 있다.

- 다음 graph 4개는 이에 대한 시각적 자료라고 생각하면 된다.

- ROC curve가 상대적으로 precision-recall curve에 비해 변화가 적은 것을 알 수 있다.

 

5. Efficient generation of ROC curves

- 주어진 test set에서 우리는 ROC curve를 효율적으로 그리고 싶을 것이다.

- 논문에선 특정 인스턴스가 어떤 임계값에서 positive로 분류되었다면,

- 그보다 작은 임계값에서는 모두 positive로 분류된다는 것을 이용하여 알고리즘을 구현 하였다.

 

- score를 내림차순으로 정렬(O(nlogn)) --> linear search( O(N)) --> ROC curve

 

6. The ROC convex hull

- ROC graph의 장점은 불균형한 분포에 상관없이 classifier의 성능을 시각화하고 정리할 수 있다는 점이다.

- 해당 방정식은 iso-performance line의 기울기를 정의한다.

- iso-performance line위에 해당되는 모든 점들은 동일한 expected cost을 가지게 된다.

 

- ROC curve 내의 모든 point 들의 Iso-performance Line을 구하고,

- 북서쪽에 가장 가까운 선들만 남겨 최소 비용의 Boundary를 나타낼 수 있다.

cf) ROC Convex hull 밑에 있으면, Optimal이 아니라고 할 수 있음.

 

- A~D : 4개의 classifier들의 ROC Curve를 의미

- CH : ROC Convex Hull

- B와 D는 Convex Hull 밑에 있기 때문에 Sub-optimal이다.

- Convex Hull에 닿거나 외부에 있어야 optimal한 ROC Point라고 할 수 있다.

 

7. Area under an ROC curve(AUC)

- 기존의 ROC curve는 Classifier의 성능을 2차원 graph로 표현되었다.

- Classifier 들 간의 성능을 비교하기 위해선 ROC curve를 하나의 숫자로 표기를 할 필요가 있다.

- 이러기 위해 나오게 된 개념이 AUC이다.

 

- AUC는 ROC curve의 아래의 면적에 해당하며, Classifier의 성능을 단일 값으로 표현한 지표이다.

- AUC의 값은 항상 0부터 1.0 사이에 위치한다.

cf) AUC == 0.5 이면 random Guessing을 한다. (0.5보다 작으면 분류를 정말 개판으로 한다는 걸 의미한다.)

- Randomly selected positive instance를 Randomly selected negative instance보다 더 높게 Rank한다.

- (a) 해당 그림에서 B가 A보다 AUC가 더 크기 때문에 좀더 성능이 좋다라고 볼 수 있는 것이다.

- (b) 똑같은 classifier이라고 할 지라도 임계값의 개수와 AUC는 비례한다. (B > A)

 

8. Averaging ROC curves

- 일부 연구자들은 ROC graph에서 "가장 좋아보이는 curve"를 선택하여 classifier의 성능을 비교하려고 한다.

- 하지만 이는 "단일 test set에서 가장 ACC가 높은 Classifier를 고르는 것" 과 유사한 오류를 범할 수 있다.

- Variance 측정없이 이러한 비교는 의미가 없으며, 통계적으로 유의미하지 않다고 한다.

- 그래서 ROC curve를 평균화하여 극복하게된다.

 

- Test set T1,T2,...,Tn이 주어진 경우, 이들의 샘플을 합쳐 하나의 Test set Tm을 생성하고 ROC curve를 계산할 수 있다.

- 하지만, 이 방식은 test set간의 Variance를 측정하지 못한다.

- 따라서 논문에서는 2가지의 Averaging 방식에 대해 서술한다.

 

8.1.  Vertical Averaging

- 동일 FPR 선 상의 모든 TPR에 평균을 취한다. (평균산과 함께 분산을 구할 수 있음)

- tp rate = Ri(fp rate) -> mean(Ri(fp rate))

 

8.2. Threshold Averaging

- Threshold마다 ROC point들을 평균내 Curve를 구성

- fp rate와 다르게 Threshold는 연구자가 조정이 가능하다.

- fp,tp 모두에 대하여 분산을 파악할 수 있다.

 

 

9. Decision problems with more than two classes

- 우리는 앞서서 Binary classification일때의 상황만 확인헀었다.

- 만약 class가 2개보다 많으면 어떻게 해야할까?

- 즉, Multi-class classificaiton을 하고자 할때의 ROC graph를 어떻게 그리는 지 생각해보자.

 

- 각 n개의 [Class와 Not Class ROC Graph]를 생성한다.(밑에 사진에서 각 3개의 ROC curve를 그린다.)

- 그 후 Averaging ROC curve를 해주면 된다.

 

'Paper Review(논문 리뷰) > Deep Learning' 카테고리의 다른 글

[논문 리뷰] [Deep Learning] Group Normalization  (1) 2025.01.21
[논문 리뷰] [Deep Learning] Layer Normalization  (0) 2025.01.21
[논문 리뷰] [Deep Learning] Adam : A method for stochastic optimization  (0) 2025.01.10
[논문 리뷰] [Deep Learning] An overview of gradient descent optimization algorithms  (1) 2025.01.10
[논문 리뷰] [Deep Learning] Deep Learning - Yann LeCun, Yoshua Bengio, Geoffrey Hinton  (4) 2025.01.01
  1. 0. Reference
  2. 1. Introduction
  3. 2. Classifier performance
  4. 3. ROC space
  5. 3.1. Random performance
  6. 4. Curves in ROC space
  7. 4.1. Relative versus absolute scores
  8. 4.2. Class skew
  9. 5. Efficient generation of ROC curves
  10. 6. The ROC convex hull
  11. 7. Area under an ROC curve(AUC)
  12. 8. Averaging ROC curves
  13. 8.1.  Vertical Averaging
  14. 8.2. Threshold Averaging
  15. 9. Decision problems with more than two classes
'Paper Review(논문 리뷰)/Deep Learning' 카테고리의 다른 글
  • [논문 리뷰] [Deep Learning] Group Normalization
  • [논문 리뷰] [Deep Learning] Layer Normalization
  • [논문 리뷰] [Deep Learning] Adam : A method for stochastic optimization
  • [논문 리뷰] [Deep Learning] An overview of gradient descent optimization algorithms
23학번이수현
23학번이수현
23학번이수현
밑바닥부터 시작하는 AI보안전문가
23학번이수현
전체
오늘
어제
  • 분류 전체보기 (243)
    • Statistic Study (47)
      • Mathematical Statistics(수리통.. (47)
    • Mathematics Study (15)
      • Linear Algebra (선형대수학) (15)
    • CS Study (74)
      • CLRS (자료구조 | 알고리즘) (49)
      • Database(DB) (11)
      • C++ (11)
      • 컴퓨터 구조 (2)
      • MongoDB (1)
    • DS Study (56)
      • CS 229(Machine Learning) (19)
      • CS 224n(NLP) (5)
      • Web Scraping (7)
      • R4DS(R언어) (20)
      • 밑바닥부터 시작하는 딥러닝 1 (5)
    • Hacking Study (0)
      • Web Hacking (0)
    • 코딩테스트 (5)
      • 백준-Python (5)
    • Paper Review(논문 리뷰) (43)
      • Deep Learning (16)
      • TCGA 관련 논문 (4)
      • Computer Vision (18)
      • NLP (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • AI
  • 파이썬
  • NLP
  • Data Structure
  • cs 224n
  • Algorithms
  • 백준
  • clrs
  • Machine Learning
  • 선형대수학
  • 자료구조
  • Introduction to Algorithms
  • db
  • R4DS
  • 데이터분석
  • R언어
  • deep learning
  • 딥러닝
  • 논문 리뷰
  • 정렬
  • graph
  • 수리통계학
  • LSTM
  • 알고리즘
  • introduction to algoritmhs
  • Linear Algebra
  • 시간복잡도
  • cs229
  • C++
  • web scraping

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
23학번이수현
[논문 리뷰] [Deep Learning] An introduction to ROC analysis
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.