인프런 커뮤니티 질문&답변

tmdqkr0930님의 프로필 이미지
tmdqkr0930

작성한 질문수

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

F1 Score와 ROC-AUC 이해 - 02

모형에 대한 타당도

작성

·

179

0

선생님 안녕하세요! 강의 잘 듣고 있습니. 

선생님께서 roc곡선 같은경우는 회귀보다는 0이냐 1이냐와

같이 분류를 하는 예측모형에서 모형의 타당도를 확인할때 많이 이용된다라고 하셨던 것 같습니다.

그렇다면 이전에 붓꽃을 분류하는 데이터와 같이 결과값이 3종류로 나눠지는 경우는 다른 값을 사용해야하나요? 1,0,2 와 같이 결과값을 구분하였을 때는 강의에서 나온 것 처럼 정밀도 재현율, roc 곡선 같은 것들을 그대로 사용해도 되는 건가요?

답변 1

2

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

roc auc는 보통 binary class에 적용하지만 붓꽃과 같은 멀티 클래스에도 사용 가능합니다.

roc acu를 멀티 클래스에 적용할 때는 이진 분류와 유사하게 one vs rest of all 로 적용합니다.

붓꽃과 같이 3종류가 있다면 예측 결과를 3가지를 감안하여 3개의 ROC AUC를 가지게 됩니다.

1. Setosa vs Setosa가 아닌 예측 결과(versicalor, virginica)에 따른 ROC AUC

2. Versicolor vs Versicolor가 아닌 예측 결과 (setosa, virginica)에 따른 ROC AUC

3. Virginica vs Virginica가 아닌 예측 결과(setosa, versicolor)에 따른 ROC AUC

정밀도, 재현율도 멀티 클래스에 사용 가능합니다. 멀티 클래스에 적용할 때는 평균 정밀도, 평균 재현율의 개념을 적용합니다.

평균 정밀도(재현율)은 개별 클래스의 정밀도(재현율)를 모두 합한 뒤에 클래스의 갯수로 나눈 것입니다.

가령 예를 들자면 Setosa로 예측한 결과를 기반으로 Setosa 정밀도 , Versicolor로 예측한 결과를 기반으로 Versicolor 정밀도, Virginica로 예측한 결과를 기반으로 Virginica 정밀도를 구합니다. 그리고 각각을 더한 뒤에 클래스의 갯수인 3으로 나눕니다. 

즉 average precision = (Setosa 정밀도 + Versicolor 정밀도 + Virginica 정밀도) / 3 입니다.

감사합니다.

tmdqkr0930님의 프로필 이미지
tmdqkr0930

작성한 질문수

질문하기