Python Roc

Jayce_97·2023년 7월 7일
0

Python 데이터

목록 보기
4/4
post-thumbnail

이번시간에는 간단하게 평가하는 Roc에 대해서 배워보도록 하겠습니다.


Roc Curve

Roc커브란 성능평가를 하는 방법 중 하나입니다.
Roc커브는 민감도(Sensitivity)와 특이도(Specificity)라는 개념이 존재합니다.

이해하기 쉽게 예시로 표를 만든다면

모수실제 양성실제 음성
검사결과 양성양성판정과 실제 양성(TP)양성판정과 실제 음성(FP)
검사결과 음성음성판정과 실제 양성(FN)음성판정과 실제 음성(TN)

다음과 같이 만들 수 있습니다.

대중적으로 사용되는 표도 보여드리겠습니다.

True Positive(TP), False Positive(FP), False Negative(FN), True Negative(TN)입니다.

특징

  • 민감도(True positive rate(TPR), Recall): 실제 병에 걸린 사람이 양성(Positive) 판정 받는 비율
  • 특이도(True Negative rate(TNR) ): 정상인이 음성(Negative) 판정을 받는 비율
  • False positive rate(FPR) = 1 - 특이도
  • 정확도(Accuracy): 전체 데이터 중 제대로 분류된 데이터 비율
  • 에러율(Error Rate): 전체 데이터 중 제대로 분류되지 않은 데이터 비율
  • 정밀도(Precision): Positive로 예측했을 때, 실제로 Positive인 비율

정밀도와 민감도의 차이는 정밀도는 양성판정(TP+FP), 민감도는 실제 양성(TP+FN)인 것이 기준이 됩니다.

그래프

TPR = 1 이고, FPR = 0 인 경우가 가장 이상적인 판정이기 때문에 그래프가 좌상단으로 꺽일 수록 좋은 평가를 받게 됩니다.



Roc의 밑면적(AUC)가 넓을 수록 좋은 모델입니다.


Roc 사용방법

input

from sklearn.metrics import RocCurveDisplay
RocCurveDisplay.from_estimator([학습시간모델], [X-데이터넣기], [y-데이터넣기])

output

RocCurveDisplay함수를 사용하여 간단하게 출력할 수 있습니다. 데이터셋은 모든 머신러닝에서 가능하기 때문에 가지고 계신 모델을 이용하시면 됩니다.


이번시간에는 Roc를 이용하여 모델을 평가하는 방법에 대해 배워보았습니다. 머신러닝부분은 이제 거의 끝나가니 마지막까지

😁 power through to the end 😁

profile
Dreamer

0개의 댓글