분류 모델을 평가할 때 정확도가 가장 좋은 측정 방법이 아닌 이유는 무엇입니까?


107

이것은 여기서 여러 번 간접적으로 묻는 일반적인 질문이지만 단일 정식 답변이 없습니다. 참조를 위해 이에 대한 자세한 답변을 얻는 것이 좋습니다.

모든 분류 중에서 올바른 분류의 비율 인 정확도 는 매우 간단하고 매우 "직관적 인"측정이지만 불균형 데이터에 대한 측정좋지 않을 수 있습니다 . 왜 직관이 우리를 잘못 인도하고이 법안에 다른 문제가 있습니까?

답변:


112

다른 답변들 대부분은 불평형 수업의 예에 중점을 둡니다. 예, 이것이 중요합니다. 그러나 균형 잡힌 수업에서도 정확성이 문제가된다고 주장합니다.

프랭크 하렐 (Frank Harrell) 은 자신의 블로그 에 분류 정확도와 기타 불연속적인 부적절한 정확도 스코어링 규칙으로 인한 분류 및 예측손상 에 대해 글을 썼습니다 .

기본적으로 그의 주장은 새로운 표본의 각 클래스에 대한 확률을 출력 할 때 운동의 통계적 구성 요소가 종료된다는 것입니다. 새로운 관측치를 1 대 0으로 분류하는 임계 값을 더 이상 통계의 일부가 아님을 선택하여 이러한 예측 확률 을 0-1 분류로 매핑 . 결정 구성 요소의 일부입니다 . 그리고 여기에는 모델의 확률 적 출력이 필요하지만 다음과 같은 고려 사항도 있습니다.(p^,1p^)

  • 새로운 관측 값을 클래스 1과 0으로 취급하기로 결정한 결과는 무엇입니까? 그런 다음 모든 마케팅 담당자에게 저렴한 마케팅 메일을 발송합니까? 아니면 큰 부작용으로 침윤성 암 치료를 적용합니까?
  • "true"0을 1로 처리하고 그 반대의 결과는 무엇입니까? 고객을 선택합니까? 누군가 불필요한 치료를 받습니까?
  • 나의 "클래스"는 정말로 이산 적입니까? 또는 실제로 임상 임계 값이 실제로인지적인 지름길 인 연속체 (예 : 혈압)가 있습니까? 그렇다면, 방법 까지 지금 내가 "분류"이야 경우 임계 값 이상인가?
  • 아니면 클래스 1이 될 가능성이 낮지 만 양성일 확률은 실제로 "더 많은 데이터를 얻는다", "다른 테스트를 실행"을 의미합니까?

결정 의 결과 에 따라 다른 임계 값을 사용하여 결정합니다. 활동이 침습적 수술 인 경우, 두 가지 아스피린을 권장하는 것보다 환자를 분류 할 확률이 훨씬 높습니다. 또는 두 가지 수업 (아프거나 건강에 좋은) 만 있지만 세 가지 다른 결정을 내릴 수도 있습니다 . .

예측 확률을 평가하는 정확한 방법 이다 하지 임계 값에 비교로 매핑 임계 값에 기초하여 다음 변환 평가 분류. 대신 적절한 사용해야합니다 . 예측 확률과 해당 관측 결과를 손실 값에 매핑하는 손실 함수로, 실제 확률 의해 예상되는 최소화됩니다 . 아이디어는 여러 (최고 : 많은) 관찰 결과 및 해당 예측 클래스 멤버십 확률에 대해 평가 된 점수 규칙에 대한 평균을 점수 규칙의 기대치의 추정치로 취한다는 것입니다.(p^,1p^)(0,1)(0,1)(p,1p)

여기서 "적절한"은 정확하게 정의 된 의미를 갖습니다. 부적합한 점수 규칙 뿐만 아니라 적절한 점수 규칙 과 최종적으로 적절한 점수 규칙이 있습니다. 이와 같은 스코어링 규칙 은 예측 밀도 및 결과의 손실 함수입니다. 적절한 스코어링 규칙 은 예측 밀도가 실제 밀도 인 경우 예상에서 최소화되는 스코어링 규칙입니다. 엄밀히 적절한 채점 규칙 은 예측 밀도가 실제 밀도 인 경우 기대 수준 에서만 최소화되는 채점 규칙입니다 .

Frank Harrell이 지적 했듯이 정확도는 부적절한 점수 규칙입니다. (더 정확하게 말하면 정확도는 전혀 스코어링 규칙이 아닙니다 . 이진 분류 설정에서 정확도가 부적절한 스코어링 규칙입니까?에 대한 내 대답 을 참조하십시오 . ) 예를 들어 예측 변수가 전혀없고 확률이 불공평 한 동전 . 모든 것을 첫 번째 클래스로 분류하고 결과가 두 번째 클래스에있을 수있는 40 % 확률을 완전히 무시하면 정확도가 최대화됩니다. (여기서는 균형 잡힌 수업에서도 정확도에 문제가 있음을 알 수 있습니다.) 적절한 은 예측을 선호 합니다.(0.6,0.4)( 0.6 , 0.4 ) ( 1 , 0 )(0.6,0.4)(1,0) 하나만 기대합니다. 특히, 임계 값에서 정확도는 불 연속적입니다. 임계 값을 조금 조금만 이동하면 하나 (또는 ​​여러) 예측이 클래스를 변경하고 전체 정확도를 개별 양으로 변경할 수 있습니다. 이것은 거의 이해가되지 않습니다.

더 많은 정보는 Frank Harrell의 회귀 모델링 전략 10 장뿐만 아니라 위에 링크 된 Frank의 두 블로그 게시물에서 찾을 수 있습니다 .

(이것은 내 초기의 대답 에서 뻔뻔스럽게 막혔습니다 .)


편집하다. 내 대답잘못된 결론으로 이어질 것이다 결과 조치로 정밀도를 사용하여 예 극대화 정확도가 잘못된 의사 결정으로 이어질 수있는 희망 예시 제공 에도 균형 잡힌 클래스를 .


6
@Tim Frank의 요점 (그가 우리 사이트와 다른 곳에서 많은 답변에서 논의 했음)은 분류 알고리즘이 확률을 반환하지 않으면 쓰레기이므로 사용해서는 안된다는 것입니다. 솔직히 말해서, 일반적으로 사용되는 대부분의 알고리즘은 확률을 반환합니다.
amoeba

6
위의 사항을 고려하지 않고 과거의 관측을 취하고 분류 만 출력하는 알고리즘 (예 : 오 판정 비용)은 통계 및 결정 측면을 복잡하게 만든다고 말하고 싶습니다. 작은 리그 야구 팀, 많은 건축 자재 또는 자신만을 운송할지 여부를 묻지 않고 특정 유형의 자동차를 추천하는 사람과 같습니다. 또한 나는 그런 알고리즘이 쓰레기라고 말할 것입니다.
Stephan Kolassa

8
답을 쓰려고했지만 꼭 그럴 필요는 없었습니다. 브라보. 나는 통계 모델링과 의사 결정 사이의 "문제의 분리"로서 학생들과 이것을 토론합니다. 이러한 유형의 개념은 엔지니어링 문화에 깊이 뿌리 박혀 있습니다.
Matthew Drury

8
@chainD : 분류자가 ( 정확한 정확도를 가진 분류기 ) "이 샘플의 모든 사람이 건강하다"고 말하면 의사 또는 분석가는 이야기에 더 많은 것이 있다고 생각합니까? 결국 분석가의 요구에 동의하지만 95 % / 5 % 예측과 같은 잔류 불확실성에주의를 기울이는 것보다 "모두가 건강하다"는 분석가에게 훨씬 도움이되지 않는다는 데 동의합니다.
Stephan Kolassa

11
@StephanKolassa의 답변과 의견은 훌륭합니다. 다른 사람은 당신이 속한 문화에 따라 어떻게 보이는지에 차이가 있음을 암시했습니다. 실제로는 그렇지 않습니다. 단지 일부 분야는 문헌을 이해하기 위해 귀찮게했고 다른 분야는 그렇지 않았습니다. 예를 들어 일기 예보는 최전선에 있으며 1951 년 이후 예측 정확도를 평가하기 위해 적절한 점수 규칙을 사용했습니다.
Frank Harrell

78

우리는 정확성을 사용할 때 위양성 및 위양성에 동일한 비용을 할당합니다. 해당 데이터 세트가 불균형 할 때 (한 클래스에 99 %의 인스턴스가 있고 다른 클래스에 1 % 만 있음) 비용을 낮추는 좋은 방법이 있습니다. 모든 인스턴스가 다수 클래스에 속하고 99 %의 정확도를 얻고 조기에 집으로 돌아갈 것으로 예측합니다.

모든 오류에 할당 한 실제 비용이 같지 않으면 문제가 시작됩니다. 우리가 드물지만 치명적인 질병을 다룰 경우, 아픈 사람의 질병을 진단하지 못하는 비용은 건강한 사람을 더 많은 검사에 보내는 비용보다 훨씬 높습니다.

일반적으로 가장 좋은 방법은 없습니다. 가장 좋은 방법은 귀하의 요구에서 비롯됩니다. 어떤 의미에서는 기계 학습 질문이 아니라 비즈니스 질문입니다. 두 사람이 동일한 데이터 세트를 사용하지만 목표가 다르기 때문에 다른 메트릭을 선택하는 것이 일반적입니다.

정확성은 훌륭한 척도입니다. 실제로 대부분의 측정 항목은 훌륭하며 많은 측정 항목을 평가하고 싶습니다. 그러나 어느 시점에서 모델 A 또는 B를 사용할지 결정해야합니다. 필요에 가장 적합한 단일 메트릭을 사용해야합니다.

추가 크레딧을 얻으려면 분석 전에이 메트릭을 선택하면 의사 결정을 방해하지 않습니다.


3
훌륭한 답변-머신 러닝 초보자 (이 질문의 대상이되는 초보자)에게보다 명확하게 설명하기 위해 몇 가지 수정 사항을 제안했습니다.
nekomatic

1
기계 학습 문제가 아니라고 동의합니다. 그러나이를 해결하려면 메타 문제에 대한 머신 러닝을 수행해야하며 머신이 기본 분류 정보 외에 어떤 종류의 데이터에 액세스 할 수 있어야합니다.
Shufflepants

3
다른 목표는 다른 비용 / 모델 / 성능 / 메트릭에 영향을 줄 수 있기 때문에 데이터의 함수로 보지 않습니다. 나는 일반적으로 비용 문제를 수학적으로 처리 할 수 ​​있다는 데 동의합니다. 그러나 환자 치료 비용과 같은 질문은 완전히 다른 정보에 의존합니다. 메타 데이터에 필요한이 정보는 일반적으로 머신 러닝 방법론에 적합하지 않으므로 대부분 다른 방법으로 처리됩니다.
DaL

2
"질병이있는 사람 잘못 진단"한다는 것은 " 질병 없는 사람 (질병이없는 것으로) 진단하는 것"을 의미 합니까? 그 문구는 어느 쪽이든 해석 될 수 있기 때문입니다.
Tanner Swett 1

당신은 맞습니다 Tanner. 테스트를 더 명확하게하기 위해 변경했습니다.
DaL

20

정확성 문제

표준 정확도는 수행 된 분류 수에 대한 올바른 분류의 비율로 정의됩니다.

accuracy:=correct classificationsnumber of classifications

따라서 모든 클래스에 대해 전체적으로 측정되며 곧 알 수 있듯이 실제 유용한 테스트와 별도로 오라클에 알리는 것은 좋은 방법이 아닙니다. 오라클은 각 샘플에 대해 무작위 추측을 반환하는 분류 함수입니다. 마찬가지로 분류 기능의 분류 성능을 평가할 수 있기를 원합니다. 정확도 \ textit {class}는 클래스 당 동일한 양의 샘플이 있지만 불균형 한 샘플 세트가있는 경우에는 전혀 유용하지 않습니다. 더욱이, 테스트는 정확도가 높을 수 있지만 실제로 정확도가 낮은 테스트보다 성능이 떨어집니다.

표본의 90 \ %가 클래스 A 에 속하고 B 5 %, C 속하는 5 %에 속하는 표본 분포가있는 경우 다음 분류 함수의 정확도는 0.9 .

classify(sample):={Aif 

그러나, 우리가 방법을 알고 주어진 분명하다 classify 이이 떨어져에서 모든 클래스를 말할 수 없다 작동합니다. 마찬가지로 분류 함수를 구성 할 수 있습니다

classify(sample):=guess{Awith p =0.96Bwith p =0.02Cwith p =0.02

의 정확도를 가지고있는 0.960.9+0.020.052=0.866 항상 예측하지 A 하지만 여전히 우리가 방법을 알고 주어진 classify 그것을 떨어져 클래스를 말할 수없는 것은 분명하다 작동합니다. 이 경우 정확도는 분류 기능이 얼마나 잘 추측되는지 알려줍니다. 즉, 정확성은 오라클이 유용한 테스트와 별개로 판단하기에 좋은 척도가 아닙니다.

클래스 당 정확도

분류 기능에 동일한 클래스의 샘플 만 제공하여 클래스별로 개별적으로 정확도를 계산하고 올바른 분류 및 잘못된 분류의 수를 기억하고 계산 accuracy:=correct/(correct+incorrect) 다음 c c u r a c y : = correct / ( correct + wrong )를 계산합니다. . 우리는 모든 수업에 이것을 반복합니다. 우리는 정확하게 클래스 인식 할 수있는 분류 기능이있는 경우 A 하지만 출력이 다른 클래스에 대한 임의의 추측 다음이의 정확도를 초래합니다 1.00 에 대한 과의 정확도 0.33A0.33다른 수업을 위해. 이것은 이미 분류 기능의 성능을 판단하는 훨씬 더 좋은 방법을 제공합니다. 항상 같은 클래스를 추측하는 오라클 은 해당 클래스에 대해 클래스 당 정확도가 1.00 이지만 다른 클래스에 대해서는 0.00 을 생성합니다. 테스트가 유용하면 클래스 당 모든 정확도는 >0.5 여야합니다 . 그렇지 않으면 우리의 테스트는 우연보다 낫지 않습니다. 그러나 클래스 당 정확도는 오 탐지를 고려하지 않습니다. 우리의 분류 함수 클래스에 대한 100 \ %의 정확도를 갖지만 A 또한 대한 가양있을 것이다 (예로서 B 잘못 A와 구분 ).ABA

감도와 특이성

의료 검사에서 민감도는 질병을 가진 것으로 올바르게 식별 된 사람들과 실제로 질병을 앓고있는 사람들의 비율로 정의됩니다. 특이성은 건강으로 올바르게 식별 된 사람들과 실제로 건강한 사람들의 비율로 정의됩니다. 실제로 질병을 앓고있는 사람들의 양은 진정한 양성 검사 결과의 양과 거짓 음성 검사 결과의 양입니다. 실제로 건강한 사람의 양은 진정한 부정적인 테스트 결과의 양과 가양 성 테스트 결과의 양입니다.

이진 분류

이진 분류 문제에는 두 가지 클래스 PN 있습니다. Tn 올바르게 클래스에 속하는 것으로 확인 된 샘플들의 개수를 의미 nFn 거짓 클래스에 속하는 것으로 식별 werey 샘플들의 개수를 의미 n . 이 경우 감도와 특이성은 다음과 같이 정의됩니다.

sensitivity:=TPTP+FNspecificity:=TNTN+FP

TP 는 진 양성입니다FN 은 오 음성,TN 은 진 음성,FP 는 위양성입니다. 그러나, 부정과 긍정의 관점에서 생각하는 것은 의학적 검사에 적합하지만 더 나은 직관을 얻으려면 부정과 긍정의 관점에서 생각하지 말고 일반적인 클래스αβ 에서 생각해야합니다. 그런 다음, 우리가 올바르게에 속하는 것으로 확인 된 시료의 양을 말할 수α 있다Tα 실제로 속하는 샘플의 양α 입니다Tα+Fβ. 정확하게 속하지 않는 것으로 확인 된 샘플의 양은 αTβ 실제로 속하지 않는 샘플의 양 α 이고 Tβ+Fα . 이것은 우리에게 α 대한 감도와 특이성을 제공 하지만 클래스 β 에도 같은 것을 적용 할 수 있습니다 . 올바르게에 속하는 것으로 확인 된 샘플의 양은 βTβ 및 실제 속하는 샘플의 양이 βTβ+Fα . β에 속하지 않는 것으로 정확하게 식별 된 샘플의 양βTα 실제로 속하지 않는 샘플의 양이 β 이고 Tα+Fβ . 따라서 우리는 수업 당 감도와 특이성을 얻습니다.

sensitivityα:=TαTα+Fβspecificityα:=TβTβ+Fαsensitivityβ:=TβTβ+Fαspecificityβ:=TαTα+Fβ

그러나 sensitivityα=specificityβspecificityα=sensitivityβ. 이것은 우리가 두 개의 클래스 만 가지고 있다면 클래스 당 감도와 특이성이 필요하지 않다는 것을 의미합니다.

N- 아리 분류

클래스가 2 개인 클래스 만 있으면 민감도와 클래스 별 특성이 유용하지 않지만 클래스를 여러 클래스로 확장 할 수 있습니다. 감도와 특이성은 다음과 같이 정의됩니다.

sensitivity:=true positivestrue positives+false negativesspecificity:=true negativestrue negatives+false-positives

참 긍정은 단순히 Tn 이고, 거짓 긍정은 단순히 i(Fn,i) 이고, 오탐은 단순히 i(Fi,n) 입니다. 실제 음수를 찾는 것이 훨씬 어렵지만 n 과 다른 클래스에 속하는 것으로 올바르게 분류 하면 실제 음수로 간주됩니다. 이것은 우리가 최소한 i ( T i ) T ( n ) 을 가짐을 의미합니다i(Ti)T(n)진정한 부정. 그러나 이것이 모두 진정한 부정은 아닙니다. 다른 클래스에 대한 모든 잘못된 분류 n 올바르게에 속하는 것으로 확인되지 않았기 때문에, 또한 진정한 네거티브이다 n . i(k(Fi,k)) 는 모든 잘못된 분류를 나타냅니다. 이로부터 우리는 입력 클래스가 된 경우 빼기해야 n 우리가 거짓 네거티브를 빼기해야 의미 ni(Fn,i) 하지만 우리는 또한에 대한 잘못된 반응을 뺄 필요를n 그들이 잘못된 반응하고 우리는 또한 뺄 그래서없는 사실 네거티브 때문에i(Fi,n) 마지막으로지고 i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n). 요약하면 다음과 같습니다.

true positives:=Tntrue negatives:=i(Ti)T(n)+i(k(Fn,i))i(Fn,i)i(Fi,n)false positives:=i(Fi,n)false negatives:=i(Fn,i)

sensitivity(n):=TnTn+i(Fn,i)specificity(n):=i(Ti)Tn+i(k(Fi,k))i(Fn,i)i(Fi,n)i(Ti)Tn+i(k(Fi,k))i(Fn,i)

자신감을 소개

우리는 분류 함수의 응답이 실제로 정확하다는 확신을 가질 수있는 척도 인 confidence 를 정의 합니다. Tn+i(Fi,n) 은 분류 함수가 n 응답 했지만 Tn 만이 올바른 경우입니다. 따라서 우리는

confidence(n):=TnTn+i(Fi,n)

그러나 분류 함수가 n 이 아닌 다른 클래스로 응답 할 경우 실제로는 n 이 아니 었음 을 확신 할 수있는 척도 인 confidence define를 정의 할 수 있습니까?nn

i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)

confidence(n)=i(k(Fi,k))i(Fi,n)+i(Ti)Tni(Fn,i)i(k(Fi,k))i(Fi,n)+i(Ti)Tn


혼동 행렬을 사용하여 평균 정확도를 계산하는 예를 제공 할 수 있습니까?
Aadnan Farooq A 1

여기 예제와 함께 자세한 설명을 찾을 수 있습니다 mroman.ch/guides/sensspec.html
mroman

다시 읽으면 confidence_false 정의에 오류가 있습니다. 나는 아무도 그것을 발견하지 않은 것에 놀랐습니다. 앞으로 며칠 안에 해결하겠습니다.
mroman

8

데이터 세트의 불균형 클래스

간단히 말해서, 한 클래스의 99 % (사과)와 다른 클래스의 1 %가 데이터 세트 (바나나)에 있다고 상상해보십시오. 내 슈퍼 듀퍼 알고리즘은이 데이터 세트에 대해 놀라운 99 % 정확도를 얻습니다.

return "it's an apple"

그는 시간의 99 %가되며 99 %의 정확도를 얻습니다. 내 알고리즘을 판매 할 수 있습니까?

솔루션 : 절대 측정 (정확도)을 사용하지 말고 각 클래스에 상대적인 측정을 사용하십시오 (ROC AUC와 같이 많이 있습니다)


아니요, AUC는 불균형 데이터 세트에 적합하지 않습니다.
SiXUlm

@SiXUlm, 그것에 대해 자세히 설명해 주시겠습니까?
Mayou36

P(D)/P(DC)P(T|D)P(F|DC)

명확한 그림은 여기에서 찾을 수 있습니다 : quora.com/...를 . Jerry Ma의 답변을 살펴보십시오.
SiXUlm

나는 아직도 당신의 요점을 이해하지 못합니다. (Quora 포함) 솔루션에서 말하고 정확히 답변을 지원하지 않습니까? 요점은 우선 순위가 네트워크 성능을 측정하는 메트릭에 영향을 미치지 않아야한다는 것입니다. 무엇 이다 최선을 최적화하는 것입니다 예를 들어 적절한 것은, 당신의 문제에 달려 가능한 모든 컷 . 그래서 알려 : 그것은 성능에 사도에 불변하지만 민감한) 때문에, 이유것으로는 부적절? b) 다른 어떤 것이 적절하거나 어떤 특성이 필요 하다고 생각 하십니까?
Mayou36

2

DaL 답변은 바로 이것입니다. 계란 판매에 대한 간단한 예를 들어 설명하겠습니다.

21

21

분류자가 실수하지 않으면 기대할 수있는 최대 수익을 얻습니다. 완벽하지 않으면 다음을 수행하십시오.

  • 모든 오탐에 대해 를 잃습니다.1
  • 모든 거짓 부정에 대해 당신은 를 느슨하게1

그러면 분류기의 정확성은 정확히 최대 수익에 얼마나 근접한가입니다. 완벽한 척도입니다.

a

  • a
  • 2a

a=0.00120.001

예를 들어 분류자가 데이터베이스에서 관련 문서를 찾는 것이라면 관련 문서를 찾는 것과 관련없는 문서를 읽는 데 걸리는 "시간"을 비교할 수 있습니다.


1

분류 정확도는 정확한 예측 수를 총 예측 수로 나눈 값입니다.

정확도가 잘못 될 수 있습니다. 예를 들어, 클래스 불균형이 큰 문제에서 모델은 모든 예측에 대한 대다수 클래스의 값을 예측하고 높은 분류 정확도를 달성 할 수 있습니다. 따라서 F1 점수 및 Brier 점수와 같은 추가 성능 측정이 필요합니다.


-3

R2

R2

다른 사람들이 지적했듯이, 정확성의 또 다른 문제는 실패 가격에 대한 내재적 무관심입니다. 즉, 모든 오 분류가 동일하다는 가정입니다. 실제로는 그렇지 않으며 잘못된 분류를 얻는 비용은 매우 주제에 따라 다르며 정확성을 극대화하는 것보다 특정 종류의 잘못을 최소화하는 것이 좋습니다.


2
흠. (1) 정확성이나 다른 측정 기준 이 아닌 표본 을 평가하는 것이 이해 될 것이라고 생각하므로 정확도가 특정 과적 합 문제에 더 많은 영향을 미친다 는 것을 실제로 알지 못합니다 . (2) 모집단 A에 대해 훈련 된 모델을 다른 모집단 B에 적용하면 사과를 오렌지와 비교하고 있으며, 이것이 정확성에 대한 구체적인 문제 인지 다시는 알지 못합니다 .
Stephan Kolassa

(1) 그럼에도 불구하고 정확성에 대한 문제이며, 문제는 정확도를 금본위 제로 사용하는 것입니다. (2) 분류기를 만드는 것은 사과뿐만 아니라 오렌지에도 사용하는 것입니다. 훈련 데이터에 대한 교리 (catechism) 라기보다는 데이터에서 필수 신호 (그 신호가 존재하도록)를 포착하는 것이 일반적이어야합니다.
제임스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.