Пусть имеется какая-нибудь machine learning задача, где нужно угадывать бинарный y - true или false, например тест наличия болезни по симптомам. Пусть мы используем метод random guess, когда мы с вероятностью p говорим "да".
Тогда:
precision от p не зависит, доля правильных результатов среди позитивных всегда одинакова.
recall растёт в завимости от p, чем больше p - тем больше доля правильных позитивных среди всех y=1.
Таким образом, наилучший random guess по F-score - это тот, который говорит "
всегда да", даже если положительных примеров очень мало.
Отдельный случай, когда в выборке нет ни одного положительного экземпляра - тогда F-score не определён.
Результат забавный, но на шнобелевку боюсь не тянет, слишком простой. Впрочем, данный пример показывает, что с F-score надо быть осторожным. Даже если положительные примеры всего лишь среди 0.0001% популяции, по метрике F-score выгодней говорить что они все положительные, а не что они почти все отрицательные. А если вдруг метод "всегда отрицательный" адекватен задаче, то F-score для него вообще не определён (деление 0 на 0).
F-score, precision, recall:
http://en.wikipedia.org/wiki/Precision_and_recallШнобелевская премия:
http://ru.wikipedia.org/wiki/Шнобелевская_премияАльтернативы:
Коррелляция -
http://en.wikipedia.org/wiki/Phi_coefficientMatthews correlation coefficient (MCC) -
http://en.wikipedia.org/wiki/Matthews_correlation_coefficientПлощадь под ROC-кривой (AUC) -
http://horicky.blogspot.com/2011/03/compare-machine-learning-models-with.htmlЛучше использовать реальную метрику, выраженную в долларах. Например для стоматологической клиники она может быть такой:
True negative: 0 баксов, клиент уходит не заплатив.
True positive: доход в 500 баксов
False negative: 0 баксов, клиент уходит не заплатив, расход на риск потери репутации
False positive: доход в 500 баксов, расход на риск судебного преследования за неправильное лечение и потери репутации