수업 출처) 숙명여자대학교 소프트웨어학부 박동철 교수님 '데이터사이언스개론' 수업
1. Visualizing Model Performance
- 모델 성능을 시각화하기 위한 몇몇 유용한 기술들에 대해 다룬다.
- 모델 성능을 직관적으로 보여준다.
2. Ranking instead of Classifying
- 이전 장에서는 각 경우에 대한 결정을 expected value에 기반하여 어떻게 계산할 지 알아보았다.
- 이번에는 다른 전략으로 ranking에 대해 알아볼 것이다.
- 각 경우를 분리하여 결정하기보다는, 예측된 점수를 기반으로 사례들의 순위를 매긴 다음 상위 n개의 경우를 택하는 것이다.
- 많은 경우, 그저 가장 성능이 좋은 n개의 케이스를 원할 때가 있다. 예를 들어 캠페인을 위한 마케팅 예산이 이미 정해져 있는 경우가 그렇다.
- 이러한 경우 각 경우의 정확한 확률 추정치는 그닥 중요하지 않다.
- 정확한 확률값을 구하기보다 상대적인 순위를 통해서 가장 효율적인 몇가지 방법만 택하는 것이다.
3. Ranking Instances
- 개체에 점수를 매기는 classifier가 있다고 하자. 이때 점수는 확률값 (or distance)이다.
- ex) class probability(decision tree, k-NN classifier), distance from the separating boundary(support vector machine, logistic regression)
- 각 개체들을 점수에 따라 정렬한 후 특정한 값 T를 임계값으로 설정한다.
- 임계값을 높게 잡으면 정말 몇 개의 경우만 선택될 것이고, 임계값을 낮게 잡으면 가능한 많은 경우를 선택할 수 있을 것이다.
4. Thresholding Instances
- 임계값이 변할 때마다 true positive와 false positive의 수가 달라진다.
- 따라서, 각 임계값마다 특정한 confusion matrix가 형성된다.
- 임계값을 기준으로 높은 순위는 'YES', 낮은 순위는 'NO'라고 예측하기 때문이다.
- 임계값이 낮아질수록 개체들은 N에서 Y로 옮겨진다. (예측값이)
- (N, p) -> (Y, p), (N, n) -> (Y, n)
- 기술적으로, 각각의 임계값은 서로 다른 classifier를 생성한다.
- 그리고 각각의 confusion matrix를 통해 나타낸다.
- 그러면 다른 classifier에 의해 만들어진 순위는 서로 다른데 어떻게 비교해야 할까? 어떤 순위가 더 낫다고 볼 수 있을까?
- 또한, 적절한 임계값을 어떻게 찾을까?
- 이건 expected profit이 최대가 되는 임계값으로 결정할 수 있다.
5. Profit Curve
- 임계값에 따른 expected profit을 보여주는 곡선이다.
- 임계값이 낮아질수록 negative가 아니라 positive로 예측되는 개체들이 추가된다.
- 즉, 임계값이 낮아질수록 positive predict가 높아진다.
- 타겟 마케팅을 위한 3개의 classifier를 나타낸 profit curve이다.
- 각 곡선에 대해 고객들은 몇몇 모델에 기반하여 마케팅에 대해 응답할 확률에 따라 높은 확률부터 낮은 확률까지 정렬된다.
- 보통 고객의 비율에 대해 이야기할 것이다.
- x축은 임계값이고, y축은 그에 다른 이익이다.
- 곡선은 profit이 음수로 갈 수 있음을 보여준다. 항상 그런 것은 아니고 cost-benefit matrix에 따라 달라진다.
- 이윤이 작거나 응답자의 수가 작을 때 발생한다.
- 응답하지 않을 사람들에게 너무 많이 제공함으로써 비용을 너무 많이 지불하게 된다.
- 모든 곡선들은 같은 지점에서 시작해서 같은 지점에서 끝난다.
- 0%는 지출도 없고 이익도 없는 상태이다.
- 100%는 모든 사람들이 타겟이 된 상태이다. 따라서 모든 classifier가 같은 성능을 갖는다.
- 하지만, 그 사이에서는 classifier가 고객을 정렬한 방법에 따라 서로 다른 값을 갖는다.
- 직선인 경우는 random model을 적용한 경우로 최악의 성능을 갖는다.
- 위의 그래프에 따라 만약 마케팅에 예산이 정해져있어 8%의 고객에게만 제공할 수 있을 땐 x = 8 이내에서 가장 높은 값을 갖는 classifier 1을 선택하면 되고, 예산 상관없이 최고의 이익을 내고 싶다면 약 x = 50에서 가장 높은 값을 갖는 classifier 2를 선택하면 된다.
6. Two Limitation of Profit Curves
- 이전 장에서 본 조건부 확률을 이용하는 expected profit이다.
- 이 값을 이용하기 위해서는 사전확률인 p(p)와 p(n)을 알고 있어야 하고, 그 값은 안정적으로 고정되어 있어야 한다.
- 또한, cost와 benefit (b(h, a), c(h, a))도 알고 있어야 하고 안정적으로 고정되어 있어야 한다.
- 하지만, 많은 실제 경우에서는 이 값들은 정확하지 않고 불안정하다.
- ex) 사기 탐색의 경우 사기 금액이 정해져있지 않고 항상 변한다.
- churn 관리의 경우 고객에게 제공하는 상품의 금액이 항상 다를 것이다.
7. Receiver Operating Characteristic (ROC) Graph
- 전체 공간에 성능 가능성을 보여줌으로써 불확실성을 수용할 수 있는 방법이다.
- calssifier에 의해 만들어지는 benefits (true positives) 과 costs (false positives) 사이의 상대적인 성능값을 보여준다.
- 각 점 (fpr, tpr) 은 classifier 한 개를 나타낸다.
- fpr = false positive rate (= FP / (FP + TN)) = 1 - specificity : negative 중에 틀린 것
- tpr = true positive rate (= TP / (TP + FN)) = sensitivity : positive 중에 맞은 것
- 점 A는 classifier A의 cost = 0.1, benefit = 0.4일 때의 성능을 나타낸다.
- (0, 0) : classifier가 무조건 N으로 예측한 것이다. false positive errors = true positives = 0
- (1, 1) : classifier가 무조건 Y로 예측한 것이다.
- (0, 1) : 완벽한 classifier이다. 모든 negative와 positive를 올바르게 분류한다.
- (x, x) : positive class를 x · 100%로 랜덤으로 예측하는 classifier이다.
- (0.5, 0.5) : 랜덤으로 절반을 positive로 예측한다. positive를 절반 맞출 것으로 기대한다.
- (0.9, 0.9) : 랜덤으로 90%를 positive로 예측한다. negative는 90% 틀리고, positive는 90% 맞을 것으로 기대한다.
- ROC space에서 c₁ 과 c₂를 비교해보자
- c₁ 이 c₂에 비해 북서쪽 (왼쪽 위) 에 있으면 c₁이 더 낫다. true positive rate과 true negative rate이 모두 더 높거나 나쁘지 않다.
- c₁ 이 c₂에 비해 남서쪽 (왼쪽 아래) 에 있으면 c₁이 더 보수적이다. false positive rate은 낮지만, true positive rate도 더 낮다. 틀리는 경우를 낮추는 model이다.
- c₁ 이 c₂에 비해 북동쪽 (오른쪽 위) 에 있으면 c₁이 더 급진적이다. true positive rate도 높고 false positive rate도 높다. Y로 예측하는 개체를 늘림으로써 positive를 맞추는 경우에 더욱 집중하는 model이다.
- ranking model
- 임계값에 따라 점수가 임계값보다 높으면 Y, 아니면 N으로 예측한다.
- 각 임계값에 따라 ROC space에 다른 점들을 생성한다. 각 임계값에 따라 다른 confusion matrix가 생성되기 때문이다.
- 임계값이 낮아질수록 positive로 예측하는 개체들이 늘어나는데, positive instance와 negative instace를 모두 지나치게 된다.
- 따라서 true positive rate와 false positive rate이 모두 증가하기 때문에 곡선이 우상향한다.
8. Advantage of ROC Curves
- ROC Curve는 classifier가 사용될 조건으로부터 classifier 성능을 분리한다.
- 즉, 사전확률(p(p), p(n)) 과 costs and benefits(v(h, a))가 필요하지 않다는 것이다.
- 이러한 조건들이 바뀌어도 classifier의 위치와 상대적인 성능이 변하지 않는다.
- 사전 클래스가 달라지더라도 각 점의 위치는 달라질 수 있지만, curve의 모양 (다른 classifier 대비 상대적인 성능) 은 바뀌지 않는다.
9. The Area Under the ROC Curve (AUC)
- classifier의 ROC curve 아래의 면적이 간단히 1²의 일부로 표현된다. -> 0과 1의 범위 내로 표현된다.
- ROC Curve는 더 많은 정보를 제공하지만, AUC는 성능을 요약하여 하나의 숫자로 표현해야 할 때 유용하다.
- 왼쪽 그래프에서 숫자가 AUC이며 classifier의 성능을 나타낸다. 0.95는 0.85보다 10% 더 좋은 성능을 갖는다는 것이다.
- 오른쪽 그래프들에서 첫번째 그래프가 가장 성능이 좋고, 네번째 그래프가 가장 성능이 안좋은 classifier이다.
10. Cumulative Response Curve
- ROC Curve는 분류 모델 성능을 시각화하기 위한 일반적인 tool이다.
- 하지만, 개발자가 아닌 이해관계자들이 보기엔 너무 직관적이지 않다.
- Cumulative response curves는 더욱 직관적인 시각화이다.
- 임계값에 따른 타겟 개체의 true positive 비율을 함수로 표현한다.
- 따라서 YES 클래스를 얼마나 잘 분류하는지 시각화하는 그래프라고 볼 수 있다.
- false positive보다 true positive가 더욱 가치있기 때문이다.
- x축이 타겟 instance 비율, y축이 true positive rate이다.
- 임계값이 낮아질수록 더욱 많은 개체들을 타겟으로 한다.
- Random model : x%를 타겟으로 할 때 x%의 positives를 얻는다.
- A better model : x%를 타겟으로 할 때 x%보다 큰 positives를 얻는다.
- 따라서 그래프에서 대각선보다 위에 있는 그래프들은 더 나은 성능을 제공한다.
11. The Lift of a Classifier
- Lift : classifier가 random model (50%) 보다 얼마나 더 성능이 좋은지 나타내는 지표이다.
- 즉, 리스트에서 positive instance를 negative instace 위로 올리는 정도를 의미한다.
- Lift = (the percentage of positivie instances targeted) / (the percentage of instances targeted)
= 전체 타겟 개체들 중 positive 개체의 비율
(ex)
- 100 customers (50 positives, 50 negatives)
- 리스트를 스캔해 내려가다가 중간에서 (50% targeted) 멈추면 얼마나 많은 positives가 있을 것으로 예상하는가?
- case 1 : sorted randomly
- 절반의 positives가 있을 것이다. -> lift = 0.5 / 0.5 = 1
- case 2 : ordered by an effective classifier
- lift > 1
- case 3 : perfect classifier
- lift = 1 / 0.5 = 2
12. Lift Curve
- 타겟 개체의 비율에 대한 lift 값을 그래프로 표현한다.
- 기본적으로 주어진 x 점에서의 cumulative response curve 값을 해당 점에서의 대각선 값으로 나눈 값이다.
- 따라서, cumulative response curve의 대각선은 lift curve에서 y = 1의 수평선이 된다.
- ex) 'our model gives a two times lift'
- 임계값을 선택할 때, 모델 타겟팅은 랜덤일 때보다 2배 더 낫다. (잘 맞춘다)
- cumulative response curve에서 true positive rate은 random classifier의 true positive rate의 두 배일 것이다.
- 즉, lift는 타겟팅의 효과를 측정한다.
'Software > Data Science Introduction' 카테고리의 다른 글
[데이터사이언스개론] Representing and Mining Text (2) | 2021.06.10 |
---|---|
[데이터사이언스개론] Evidence and Probabilities (0) | 2021.06.09 |
[데이터사이언스개론] What is a good model? (0) | 2021.06.08 |
[데이터사이언스개론] Similarity, Neighbors, Clusters (0) | 2021.06.04 |
[데이터사이언스개론] Overfitting and Avoidance (0) | 2021.04.22 |