로그 손실과 작동 방식을 더 잘 이해하려고하지만 찾을 수없는 것 중 하나는 로그 손실 번호를 일종의 컨텍스트에 넣는 것입니다. 내 모델의 로그 손실이 0.5이면 좋습니까? 좋은 점수와 나쁜 점수는 무엇입니까? 이러한 임계 값은 어떻게 변경됩니까?
로그 손실과 작동 방식을 더 잘 이해하려고하지만 찾을 수없는 것 중 하나는 로그 손실 번호를 일종의 컨텍스트에 넣는 것입니다. 내 모델의 로그 손실이 0.5이면 좋습니까? 좋은 점수와 나쁜 점수는 무엇입니까? 이러한 임계 값은 어떻게 변경됩니까?
답변:
다른 메트릭과 마찬가지로, 좋은 메트릭은 관측에 대한 정보없이 추측 할 필요가있을 경우 "기회"추측보다 나은 것입니다. 이를 통계에서 인터셉트 전용 모델이라고합니다.
이 "멍청한"추측은 두 가지 요소에 따라 다릅니다.
LogLoss 메트릭의 경우, 일반적인 "잘 알려진" 메트릭 중 하나 는 0.693 이 정보가 아닌 값 이라고 말합니다 . 이 그림은 p = 0.5
이진 문제의 모든 클래스를 예측하여 얻습니다 . 이것은 균형 이진 문제에 대해서만 유효합니다 . 한 클래스의 유병률이 10 % 인 p =0.1
경우 항상 해당 클래스를 예측 합니다. 예측 0.5
이 어둡기 때문에 이것은 바보 같은 기준에 의한 기준이 될 것 입니다.
I. 벙어리 광택에 대한 클래스 수의 영향 N
:
균형이 잡힌 경우 (모든 클래스가 동일한 유병률을 가짐) p = prevalence = 1 / N
모든 관측치에 대해 예측할 때 방정식은 간단하게됩니다.
Logloss = -log(1 / N)
log
인 Ln
이 규칙을 사용하는 사람들을 위해, neperian 로그.
이진 경우 N = 2
:Logloss = - log(1/2) = 0.693
따라서 바보 같은 로고는 다음과 같습니다.
II. dumb-Logloss에 대한 클래스 유병률의 영향 :
ㅏ. 이진 분류 사례
이 경우 always를 예측 p(i) = prevalence(i)
하고 다음 표를 얻습니다.
따라서 클래스가 매우 불균형 할 때 (유병률 <2 %), 0.1의 로그 손실은 실제로 매우 나쁠 수 있습니다! 이 경우 98 %의 정확도와 같은 것은 나쁠 것입니다. 따라서 Logloss가 사용하기에 가장 좋은 지표가 아닐 수도 있습니다.
비. 3 가지 경우
유병률에 따른 "Dumb"-logloss-3 가지 경우 :
여기서 균형 이진 및 3 클래스 사례 (0.69 및 1.1)의 값을 볼 수 있습니다.
결론
0.69의 logloss는 멀티 클래스 문제에서 우수 할 수 있으며 이진 바이어스 된 경우에는 매우 나쁩니다.
경우에 따라 예측의 의미를 확인하기 위해 문제의 기준을 스스로 계산하는 것이 좋습니다.
편향된 경우 loglog는 정확성 및 기타 손실 기능과 동일한 문제가 있음을 이해합니다. 성능의 전체적인 측정 만 제공합니다. 따라서 소수 클래스 (리콜 및 정밀도)에 중점을 둔 측정 항목으로 이해를 보완하거나 로그 로스를 전혀 사용하지 않을 수 있습니다.
따라서 이것은 실제로 Firebugs 응답보다 복잡하며 모두 예측하려는 프로세스의 고유 한 변형에 따라 다릅니다.
내가 변형을 말할 때 '알려 지거나 알려지지 않은 동일한 조건에서 이벤트가 반복되면 동일한 결과가 다시 발생할 확률은 얼마입니까?'입니다.
완벽한 예측 변수는 확률 P에 대해 손실을 갖습니다. 손실 = P ln P + (1-P) ln (1-P)
최악의 경우 일부 이벤트가 50/50의 결과로 예측 될 수있는 것을 예측하려는 경우 평균 손실을 합산하여 평균 손실은 다음과 같습니다. L = 0.5
당신이 예측하려고하는 것이 조금 더 반복적이라면 완벽한 모델의 손실은 더 낮습니다. 예를 들어, 충분한 정보를 바탕으로 완벽한 모델은 가능한 모든 이벤트에서 최악의 경우 '이 이벤트는 90 % 확률로 발생합니다'라고 말하면 평균 손실은 L = 0입니다. .
확률 분포가 균일하지 않은 경우에도 차이가 있습니다.
따라서 귀하의 질문에 대한 대답은 '예측하려는 대상의 본질에 달려 있습니다'입니다
표준 통계 답변은 절편 전용 모델과 비교하는 것입니다. (이것은 다른 답변에서 언급 된 불균형 클래스를 처리합니다) cf mcFadden의 의사 r ^ 2. https://stats.idre.ucla.edu/other/mult-pkg/faq/general/faq-what-are-pseudo-r-squareds/
이제 문제는 최대 값입니다. 근본적으로 문제는 이벤트의 확률이 이벤트 모델 외부에서 정의되지 않는다는 것입니다. 내가 제안하는 방식은 테스트 데이터를 가져와 특정 수준으로 집계하여 확률 추정치를 얻는 것입니다. 그런 다음이 추정치의 로그 로스를 계산하십시오.
예를 들어 (web_site, ad_id, consumer_id)를 기준으로 클릭률을 예측 한 다음 클릭 수, 노출 수를 web_site 수준으로 집계하고 각 웹 사이트에 대한 테스트 세트의 클릭률을 계산합니다. 그런 다음 이러한 테스트 클릭률을 예측으로 사용하여 테스트 data_set에서 log_loss를 계산하십시오. 그러면 웹 사이트 ID 만 사용하는 모델 에 대한 테스트 세트에서 최적의 로그 로스입니다 . 문제는 각 레코드가 고유하게 식별 될 때까지 더 많은 기능을 추가하여 원하는만큼 손실을 줄일 수 있다는 것입니다.