Как стать автором
Обновить

Не радиус важен, а плотность! Часть 1: Глубокий взгляд на precision и recall

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров6.3K
Всего голосов 9: ↑9 и ↓0+9
Комментарии4

Комментарии 4

Кто объяснит тупому недоучке, чем F1 score лучше, чем FM score? И чем плохо просто пользоваться средним арифметическим между precision и recall?

Добрый день!

Что вы имеете ввиду под FM-score? Простите, я не слышал о таком, поправьте меня, если я не прав, но наверное вы хотели спросить про более общий вариант F-beta score? Если так, то я дам ответ дальше.

Что же насчет второй части вашего вопроса - известны 3 концептуально разных усреднений:
- Среднее арифметическое: (x_1 + ... + x_n) / n
- Среднее геометрическое: (x_1 * ... * x_n)**(1/n)
- Среднее гармоническое: n / (1/x_1 + ... + 1/x_n)

Я бы посоветовал вам погуглить какие-нибудь статейки на эту тему, даже википедию почитать. ИМХО - это просто принципиально разные способы получить число лежащее где-то между всеми x_1, ..., x_n. Но только у последних двух есть свойство, что если хотя бы один из x_i = 0, то и все среднее = 0.

В случае с precision и recall нам это и нужно, как я написал в статье, это просто условные вероятности, но двух противоположных событий (p(предсказан класс C|верный класс = C) и наоборот p(верный класс = C|предсказан класс C)), усредняя таким образом мы получаем величину, которая характеризует именно мощность алгоритма в таком случае, если хотя бы одна из величин близка или равно нулю, то и среднее гармоническое и среднее геометрическое будет, а вот среднее арифметическое совсем нет, оно будет примерно равно половине второй вероятности (вообще среднее арифметическое это аппроксимация мат.ожидания, а аппроксимация мат.ожидания вероятностей такой природы, да и всего по двум числам - ну такое, вообще природа не очь понятна этого действия).

Может возникнуть ризонный вопрос, почему тогда не использовать среднее геометрическое вместо среднего гармонического. Хмм, вообще интересный вопрос, я думаю можно поискать мб даже какие-то оригинальные статьи, мб на arxiv'е что-то будет. Я предположу, что дело просто в производной: при стремлении к граничным значениям, когда precision или recall близки к 0, геометрическое очень быстро к 0 стремится, в то время как гармоническое не так быстро. Можете в geogebra'е построить графики и убедиться, ну или явно рассмотреть градиент.

Так вот, возвращаясь к F-beta: коэффициент beta - это просто величина, которой мы регулируем важность precision'а над recall'ом или наоборот. Пример: хотим построить нейронную сеть, которая предсказывает наличие онкологического заболевания. Тогда precision - кол-во верных диагнозов из всех поставленных, а recall - кол-во установленных диагнозов для людей с наличием заболевания на самом деле. Так вот не так страшно выписать терапию здоровому человеку, чем НЕ выписать ее больному, поэтому в валидации алгоритма для такой задачи, можно было бы в F-beta-score'е придать чуть больший вес recall'у.
В любом случае, они задаются спецификой задачи, мне лично импонирует простота, ибо выбор этого beta обычно просто на глаз берется, я так не люблю.

Автор, это просто великолепно! Я даже решил зарегистрироваться на Хабре ради того, чтобы оставить этот комментарий.

Крайне порадовала наглядная демонстрация связи статистики и прикладных метрик, доступное и достаточно подробное изложение, желание копать в глубь, а не просто пробежаться по верхам.

Замечания косметические, но если интересно:

  1. В статье часто упоминаются true positive rate, fpr и тд, но насколько я понимаю, имеются в виду на самом деле просто true positive, false positive и тд, без rate. Rate - это доля. К примеру TPR=TP/(TP+FN)=recall

  2. В конце первого столпа, в формуле суммирования по значениям таргета: сумма от k=0 до С-1, наверное имелось в виду сумма от с=0 до С-1

  3. "тут бы наверное еще постов 10 написать, чтобы апеллировать к чему-то, ну совсе-е-ем строгому" - хотелось бы увидеть ссылку на какой-нибудь параграф в какой-нибудь книге, я бы с удовольствием почитал

Спасибо за материал! Очень жду новых статей. Лайк, подписка

Большое спасибо, но вы мне льстите :)

Отдельное спасибо за ваши замечания, все по делу.
1. Да, вы не первый, кто замечает подобное. Когда я писал, мне захотелось какое-то существительное поставить после true positive и тп. Слово rate в английском показалось подходящим т.к. на слуху в машинном обучении и как бы на примере курса евро (euro rate) или акций вроде как и не передает смысл числа только от 0 до 1. Но наверное было не лучшим решением раз оно вводит не одного человека в заблуждение. Тем более коллизия с TRP действительно уместна. Возможно действительно стоит исправить.
2. Да, вы правы, поправил, большое спасибо!:)
3. Что касается книг:
- Вообще мне импонирует строгое определение по Колмогорову, мне читали это в рамках лекций в университете, вот их сборник: https://teach-in.ru/file/synopsis/pdf/probabilistic-model-M.pdf, определение вероятности дается на 9-ой странице, см. "вероятностная мера". Вообще мне очень нравятся эти лекции, первая 1/2 - 2/3 книги очень хорошие, стараюсь не забывать, то что там написано. Дальше уже для совсем любителей.
- Определение условной вероятности мне нравится вот такое (см. ниже). К сожалению, не смог тут найти книгу, имя лектора тоже не помню:( Читали мне на спецкурсе "Байесовские методы оптимизации" на ВМК МГУ весной 2022-го, но сборника лекций как выше видимо нет т.к. это не основной курс.

Вообще очень советую поизучать теорию Байеса, я бы советовал что-то построже, без научпопа. Вводить вероятность как выше конечно правильно, но вот только почувствовать ее не получается. А вот после понимания теории Байеса появляется совсем новый взгляд на мир и то, что же в себе несет это число от 0 до 1.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории