일부내용은 ADsP 시험 공부할 때도 나왔던 내용이다.
오분류표를 살펴보면 다음표와 같다.
predict | |||
Positive | Negative | ||
Actual | Positive | TP | FN |
Negative | FP | TN |
ROC커브를 이해하기 위해서는
민감도와 특이도를 알아야한다.
민감도(Recall or Sensitivity) : TP/(TP+FN)-실제로 P인 것들 중 P로 예측한 비율
특이도(Specificity): TN/(FP+TN): 실제로 N인 것들 중 N으로 예측한 비율
ROC 그래프는 X축에 '1-특이도',
Y축에 '민감도' 를 두어 두 평가값의 관계를 모형으로 나타낸다.
1-특이도와 민감도는 서로 반비례의 관계를 가진다.
어느 한 쪽을 올리려고 하면, 다른 한 쪽은 떨어진다.
예컨대 모든 것을 Positive라고 예측한다면, 민감도는 1에 가까워지는 반면, 1-특이도(위양성률)은 0에 가까워진다.
반대로 예측을 전부 Negative라고 한다면, '1-특이도'(위양성률) 값은 1에 가까워진다.
따라서 두개의 값을 적절하게 타협을 해야한다.
ROC는 이 두개의 값을 모형으로 평가해준다. 그리고 그래프의 밑부분 면적이 넓을수록 좋은 모형으로 평가된다.
AUC는 ROC 그래프의 밑부분 면적을 측정한다.
AUC가 1이라는 것은 ROC커브의 모양이 사각형모양임을 나타내고,
AUC가 0.5라는 것은 ROC커브가 Y=X 형태의 일차함수 모양임을 알 수 있다.
AUC가 1에 가까울수록 좋은 모형이고, 실제 AUC는 0.5와 1 사이에 존재한다.
AUC의 값이 같더라도, ROC커브의 모양은 다를 수 있다. 그렇기 때문에 ROC커브의 모양을 확인하고
적절한 모델을 선택하는 것도 중요하다.
library(pROC)
a<-ROC( , )
plot(a)
auc(a)
ROC그래프를 그리고 AUC를 평가하기 위해서는 pROC라는 라이브러리를 불러오고,
위와 같은 코드를 수행할 수 있다.
'R programming' 카테고리의 다른 글
data.frame과 data.table을 비교해보자 in R (0) | 2019.10.28 |
---|---|
지도학습(supervised learning): 의사결정나무(decision tree)이해하기 (0) | 2019.07.21 |
지도학습(supervised learning)-나이브 베이지안 모델 in R(Today I learn) (0) | 2019.07.02 |
지도학습(supervised learning)-KNN : 정규화에 대해(Today I learn) (0) | 2019.07.01 |
지도학습(supervised learning)-KNN : 분류에 대해 (today I learn) (0) | 2019.06.28 |