40. 모델 성능 평가(예측)


r

Overview

회귀 분석의 결과(검정 데이터)를 이용하여 회귀 모델의 예측치를 생성하려면 predict() 함수를 사용한다.


predict 함수

  • 사용형식
    • predict(model, newdata)
  • model
    • 회귀 모델(회귀 분석 결과가 저장된 객체)
  • newdata
    • 독립 변수(x)가 존재하는 검정 데이터 셋 지정
  • interval
    • 부가 옵션
    • confidence : 데이터의 상하한 신뢰 구간 조회
    • prediction : 오차 고려한 구간 조회
  • type
    • response : 로지스틱 회귀 모델일때 사용

모델 평가

선형 회귀 모델은 회귀 방정식에 의해서 숫자로 예측을 하기 때문에 모델 평가는 일반적으로 상관 계수를 이용한다.

즉, cor(예측치, 실제_정답) 명령어를 사용한다.

반면 분류 모델은 y 변수를 범주로 예측하므로 일반적으로 혼돈 매트릭스로 판단한다.


ROC(Reciever Operating Characteristic) Curve

이진 분류의 진단 능력을 보여주는 곡선이다.

ROC Curve는 x축, y축 모두 [0,1]의 범위의 값을 가지고, (0,0) 에서 (1,1)을 잇는 곡선이다.

FPR(False Positive Rate)은 특이도라고 하는 데, 0(False)인 케이스에 대해 1(True)로 잘못 예측한 비율을 말한다.

예를 들어서 암 환자가 아님에도 불구하고 암이라고 진단 받는 경우이다.

TPR(True Positive Rate)은 민감도라고 하는 데, 1(True)인 케이스에 대해 1로 잘 예측한 비율을 말한다.

예를 들어서 암 환자를 진찰해서 암이라고 진단을 하는 경우이다.

ROC Curve는 x축에 FP Rate(FPR)를, y축에 TP Rate(TPR)를 표시한다.

ROC 곡선에서 왼쪽 상단의 계단 모양의 빈 공백이 분류 정확도에서 오분류(missing)를 의미한다.

# ROC 곡선 작성
pr <- prediction( 예측_값, 정답_label )
prf <- performance(pr, measure = "tpr", x.measure = "fpr")
plot(prf, main='ROC Curve 그래프')

ROC 커브는 그 면적이 1에 가까울수록 (즉, 왼쪽 위 꼭지점에 다가갈수록) 좋은 성능이다.

그리고 이 면적은 항상 0.5~1의 범위를 갖는다.(0.5면 성능 X, 1이면 최고의 성능)

TPR과 FPR은 서로 비례하는 관계에 있다.

암환자를 진단할 때, 성급한 의사는 아주 조금의 징후만 보여도 암인 것 같다고 할 것이다.

이 경우 TPR은 1에 가까워질 것이다.

그리고 동시에 FPR도 1에 가까워진다. (정상인 사람도 전부 암으로 판단)

반대로 실력이 없는 의사라서 암환자를 알아내지 못한다면, 모든 환자에 대해 암이 아니라고 할 것이다.

이 경우 TPR은 매우 낮아져 0에 가까워 질 것이고, 마찬가지로 FPR 또한 0에 가까워질 것이다.(암환자라고 판단 자체를 안하므로, 암환자라고 잘못 진단 하는 경우가 없어짐)

그런데 좋은 성능에 대한 지표인 TPR을 높이려다보면, 나쁜 성능에 대한 지표인 FPR도 같이 높아진다.

따라서 어떤 의사의 실력을 판단하기 위해서는 특정 기준(언제 암이라고 예측 할 지)을 연속적으로 바꾸어 가면서 TPR과 FPR을 측정을 해야한다.

그리고 이것을 한눈에 볼 수 있게 시각화 한 것이 바로 ROC 곡선이다.

이 ROC커브는 두가지 장점이 있다.

먼저 그 커브의 면적을 재어 다양한 기준에서의 TRP과 FPR을 복합적으로 평가할 수 있다는 점이고, 또 한가지는 실제로 암을 판단할 때, 어디를 기준으로 잡을지 결정하는 데 도움이 될 수 있다.

단순히 TPR + (1-FPR)이 최대가 되는 지점을 잡아도 되지 않을까 생각할 수 있지만, 실제로는 병에 따라서 어느 쪽에 좀 더 강조를 둘 것인가가가 매우 중요할 수 있다.

예를 들어 걸릴 확률은 매우 낮지만 치사율이 극히 높은 병은 환자라고 의심 할수록 좋기 때문에 FPR이 높더라도 괜찮다.

반대로 걸릴 확률은 높지만 위험성이 매우 낮은 병은 FPR이 낮은 기준을 선택해야한다.

roc curve

ROC Curve 분석

AUC = AUROC (the Area Under a ROC Curve)

  • ROC 곡선의 밑 면적을 구한값
  • 1에 가까울 수록 성능이 좋음 AUC
  • 1로 예측하는 기준을 쉽게 잡으면 민감도는 높아지지만, 쉽게 1이라고 판단하므로 특이도가 낮아짐
  • 민감도와 특이도가 모두 1에 가까워질수록 좋은 성능 의미
  • AUC = 0.5일 때, 특이도가 감소하는 만큼 민감도가 증가하여, 어떤 기준으로 잡아도 민감도와 특이도를 동시에 높일 수 있는 지점이 없음
  • AUC가 0.5일 때, 특이도 1 / 민감도 0일 때와, 특이도 0 / 민감도 1이 되는 비율이 trade off 관계로, 두 값의 합이 항상 1
  • 따라서, AUC는 전체적인 민감도와 특이도의 상관 관계를 보여줄 수 있어 매우 편리한 성능 척도 기준

과적합(overfitting) 피하는 방법

테스트 결과 특정한 데이터 셋에만 잘 들어 맞는 현상

  • K 겹 교차검정
    • 전체 집합을 K 등분하여 각 그룹을 testing 데이터로 사용하는 알고리즘
  • min-max 알고리즘
    • 특정 컬럼이 상대적으로 나머지 컬럼에 비하여 값이 너무 크거나 작은 경우
    • min-max = (x - min ) / (max - min)

training 데이터와 testing 데이터는 반드시 분리






© 2019. by RaP0d

Powered by aiden