분모가 0 일 때 정밀도와 리콜에 대한 올바른 값은 무엇입니까?


16

정밀도는 다음과 같이 정의됩니다.

p = 참 긍정 / (참 긍정 + 거짓 긍정)

(true positives + false positives) = 0 인 경우 정밀도 값은 무엇입니까? 정의되지 않았습니까?

리콜에 대한 동일한 질문 :

r = 참 긍정 / (참 긍정 + 거짓 부정)

이 경우, (true positives + false negatives) = 0 인 경우 리콜 값은 얼마입니까?

추신 :이 질문은 질문과 매우 유사합니다. 엣지 케이스에서 정밀도와 리콜의 정확한 값은 무엇입니까? .


1
Heh, 그것은 복제본으로도 대답됩니다. 좋은 복제본이라고합시다.

답변:


9

연결된 이전 질문에 대한 답변도 여기에 적용됩니다.

(true positives + false negatives) = 0이면 입력 데이터에 긍정적 인 사례가 없으므로이 사례에 대한 분석에는 정보가 없으므로 긍정적 인 사례를 처리하는 방법에 대한 결론이 없습니다. N / A 또는 비율 결과와 비슷한 것을 원하면 0 으로 나누기 오류를 피할 수 있습니다.

(true positives + false positives) = 0이면 모든 사례가 음수 인 것으로 예측 된 것입니다. 이것은 ROC 곡선의 한쪽 끝입니다. 다시 말하지만, 0 으로 나누기 오류 를 피하면서이 가능성을 인식하고보고하려고합니다 .


답변 해 주셔서 감사합니다. 만약 내가 제대로 이해하고, 전자의 경우에, 당신은 하지 않습니다 당신이 후자의 경우 반면에, 그 결과를 인식하고보고 싶어 . 그 맞습니까?
Raffi Khatchadourian

예 : 입력이없는 양의 경우 정밀도는 의미가 없습니다. 양성이 예측되지 않은 경우, 테스트가 매우 부정적으로 설정되었다고보고하려고합니다.
Henry

5

흥미로운 답변이 여기에 제공됩니다 : https://github.com/dice-group/gerbil/wiki/Precision,-Recall-and-F1-measure

이 모듈의 저자는 정확성에 대해 서로 다른 점수를 출력하고 진 양성, 오 탐지 및 거짓 음성이 모두 0 인지 여부에 따라 리콜합니다 . 그 결과가 표면적으로 양호합니다.

드문 경우이지만 Precision 또는 Recall을 계산하면 0으로 나눌 수 있습니다. 정밀도와 관련하여 어노 테이터의 답변에 결과가 없으므로 오 탐지뿐만 아니라 true도 0입니다. 이러한 특별한 경우에, 우리는 참 긍정, 거짓 긍정 및 거짓 부정이 모두 0 인 경우, 정밀도, 리콜 및 F1 측정 값이 1 인 것으로 정의했습니다. 이는 금본 표준에 문서가없는 경우에 발생할 수 있습니다. 주석과 주석은 (올바르게) 주석을 반환하지 않습니다. 진정한 양의 값이 0이고 다른 두 카운터 중 하나가 0보다 큰 경우 정밀도, 재 호출 및 F1 측정 값은 0입니다.

이 유형의 점수 매기기가 특별한 경우를 제외하고 다른 상황에서 유용한 지 확실하지 않지만 약간의 가치가 있습니다.


1

높은 임계 값에서 분류기를 평가할 때, 리콜이 0 일 때 정밀도는 1이 아닐 수 있습니다. 일반적으로 N / A입니다! 사람들이 P / R 곡선을 그리는 방법에 문제가 있다고 생각합니다. N / A 샘플을 피하는 것은 특이성 샘플을 피한다는 의미에서 바이어스입니다. N / A 샘플을 무시하고 평균 리콜에 대한 평균 정밀도를 계산했으며 객체 감지에서 얕은 신경망에 대해 0에서 리콜을 시작하는 분류기를 얻지 못했습니다. 이것은 tp, fp, fn 숫자로 계산 된 곡선에도 해당됩니다. 하나의 이미지로 종이와 연필로 쉽게 확인할 수 있습니다. 예를 들어 : 단일 이미지에 대해 출력하는 분류 기가 있습니다. preds = [. 7 .6 .5 .1 .05] truth = [nynny] 다양한 임계 값으로 혼동 행렬을 계산하여 다음과 같은 결과를 얻습니다. tp = [2 1 110 1], fn = [0111 2], fp = [3 2 1 1 0]. 리콜 rec = [1.5 .5 .5 0 0], 정밀도 = [. 4 .25 1/3 .5 0 NaN]. NaN 또는 precision (@ recall == 0)을 1로 바꾸는 것이 어떤 의미인지는 알 수 없습니다. 1은 precision (@ recall == 0)을 바꾸는 값이 아니라 상한이어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.