13wk-47: 평가지표의 계산

Author

최규빈

Published

December 1, 2023

1. 강의영상

2. Imports

import numpy as np
import sklearn.metrics

3. 12wk-46 숙제풀이

밀실안에 100명의 사람이 있다고 하자. 이중 이중휴민트는 2명이 있다고 하자. 이중휴민트를 잡기위해서 3명을 사살했다고 하자. 사살된 사람중 실제 이중휴민트는 1명이었다고 하자. 이 경우

  • accurary
  • TPR(=recall)
  • precision
  • FPR

값을 계산하라.

- y, yhat

y = np.array([1]*2 + [0]*98)
y
array([1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])
yhat = np.array([0,1,1,1]+[0]*96)
yhat
array([0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

- 혼동행렬(=confusion matrix) 만들기

sklearn.metrics.confusion_matrix(y,yhat)
array([[96,  2],
       [ 1,  1]])
(tn,fp),(fn,tp) = sklearn.metrics.confusion_matrix(y,yhat)

- accuracy

(tp+tn)/(tn+fp+fn+tp) # accuracy 
0.97
sklearn.metrics.accuracy_score(y,yhat)
0.97

- recall

tp/(tp+fn)
0.5
sklearn.metrics.recall_score(y,yhat)
0.5

- precision

tp/(tp+fp)
0.3333333333333333
sklearn.metrics.precision_score(y,yhat)
0.3333333333333333

- FPR

fp / (fp+tn)
0.02040816326530612