이번시간에는 간단하게 평가하는 Roc에 대해서 배워보도록 하겠습니다.
Roc커브란 성능평가를 하는 방법 중 하나입니다.
Roc커브는 민감도(Sensitivity)와 특이도(Specificity)라는 개념이 존재합니다.
이해하기 쉽게 예시로 표를 만든다면
모수 | 실제 양성 | 실제 음성 |
---|---|---|
검사결과 양성 | 양성판정과 실제 양성(TP) | 양성판정과 실제 음성(FP) |
검사결과 음성 | 음성판정과 실제 양성(FN) | 음성판정과 실제 음성(TN) |
다음과 같이 만들 수 있습니다.
대중적으로 사용되는 표도 보여드리겠습니다.
True Positive(TP), False Positive(FP), False Negative(FN), True Negative(TN)입니다.
정밀도와 민감도의 차이는 정밀도는 양성판정(TP+FP), 민감도는 실제 양성(TP+FN)인 것이 기준이 됩니다.
그래프
TPR = 1 이고, FPR = 0 인 경우가 가장 이상적인 판정이기 때문에 그래프가 좌상단으로 꺽일 수록 좋은 평가를 받게 됩니다.
즉
Roc의 밑면적(AUC)가 넓을 수록 좋은 모델입니다.
input
from sklearn.metrics import RocCurveDisplay
RocCurveDisplay.from_estimator([학습시간모델], [X-데이터넣기], [y-데이터넣기])
output
RocCurveDisplay함수를 사용하여 간단하게 출력할 수 있습니다. 데이터셋은 모든 머신러닝에서 가능하기 때문에 가지고 계신 모델을 이용하시면 됩니다.
이번시간에는 Roc를 이용하여 모델을 평가하는 방법에 대해 배워보았습니다. 머신러닝부분은 이제 거의 끝나가니 마지막까지