inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[개정판] 파이썬 머신러닝 완벽 가이드

threshold에 따른 roc_auc curve 설정 질문드립니다.

475

qms13

작성한 질문수 2

0

선생님, 안녕하세요?

분류모델 성능 평가지표에서 roc_auc 에 대해 궁금한 점이 생겨 질문드립니다.

  1. threshold에 따라 roc_auc_score값 구하기

    1. sklearn.metrics.roc_auc_score(y_test, pred_proba)

      # pred_proba = model.predict_proba()

      위의 코드로 roc_auc값을 구하는 것으로 알고 있습니다.

    2. 하지만, 위의 코드로 roc_auc값을 구하면, threshold에 따라 달라지지 않습니다.

    3. 그렇다고 pred_proba대신 pred(pred = model.predict())를 사용하면 roc_auc값이 떨어집니다.

    4. threshold에 따라 roc_auc값을 어떻게 구하면 좋을까요?

       

  2. 최적의 threshold를 구할 때 어떤 성능 지표를 제일 최우선으로 봐야할지도 궁금합니다. 저는 지금 질병 진단 예측을 만들고 있어 재현율을 높이는게 중요하다고 생각하는데 roc_auc값도 중요하게 봐야할 것 같아 고민이 됩니다...

  3. pred_proba, pred 둘 중 어느 것으로 roc_auc값을 구하는게 맞나요? 일반적으로 사용되는 것이 무엇인가요?

답변 부탁드리겠습니다.

감사합니다 :)

python 머신러닝 통계

답변 1

0

권 철민

안녕하십니까,

  1. roc-auc는 threshold 값을 변경 시켜도 값 자체가 변화지 않습니다. roc-auc 지표 자체가 Threshold값을 변화 시키면서 TPR과 FPR을 측정하기 때문입니다.

    예를 들어 Scikit learn의 roc_curve()는 여러개의 threshold 값별로 fpr, tpr 을 반환합니다.

    아래에서 thresh1는 list이고 0 ~ 1 사이의 threshold 값을 가지고 있습니다. 그리고 fpr1, tpr1 역시 list이며 thresh1의 개별 threshold 값별로 fpr과 tpr 값을 가지게 됩니다.

    fpr1, tpr1, thresh1 = roc_curve(y_true, pred_prob1[:,1], pos_label=1)

roc_auc_score()는 roc_curve()를 이용해서 roc-auc score를 계산하는 것입니다. 따라서 임의로 threshold 값을 변경하는 것은 roc-auc score를 변경하지 못합니다.

  1. 의료쪽에서는 전통적으로 roc-auc를 많이 사용합니다. 그리고 Recall도 보조적으로 함께 사용하는 경우가 많습니다. 꼭 하나의 지표만 중시하실 필요는 없을 것 같습니다. 가능하다면 두개를 함께 최적화 하면 좋을 것 같습니다. 꼭 하나를 해야 한다면, 업무적인 특성에 따라서 정하면 좋을것 같고, 업무적인 특성도 애매하면... 음.. roc-auc 아닐까 싶습니다.

     

  2. 사이킷런은 pred_proba()로 roc-auc를 구합니다.

감사합니다.

0

qms13

이해가 많이 되었습니다.

정말 감사드립니다. :)

요즘 더욱이 날씨가 더운데 건강 조심하세요~!

모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.

0

24

2

안녕하세요 열심히 수강중인 학생입니다

0

68

2

정수 인덱싱

0

71

2

넘파이 오류

0

88

2

11강 numpy의 axis 축 질문 드립니다.

0

89

2

Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.

0

80

2

Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.

0

71

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

76

2

타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.

0

65

2

5강 강의 오류가 있어요.

0

86

1

실무에서 LTV 관련 모델 선택 질문입니다!

0

74

2

14강 강의 듣는중에 궁금한게 있어서 질문합니다~

0

70

3

파이썬 다운그레이 후 사이킷런 재설치

0

122

2

좋은 강의 감사합니다.

0

75

2

scoring 함수 음수값

0

68

2

6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?

0

104

2

분류 평가 정확도 예측

0

80

2

안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.

0

100

1

카카오톡 채널 있나요

0

110

1

혹시 강의에서 사용하시는 ppt 받을 수 있는건가요

0

191

2

pca 스케일링 관련하여 질문드립니다.

0

102

2

주피터 대신 구글 코랩

0

174

2

강의에서 사용하는 pdf or ppt자료는 따로 없는 건가요?

0

149

2

실루엣 스코어..

0

87

2