Коэффициент корреляции Мэтьюза и статистика J Юдена
Если вы занимались машинным обучением или статистическим моделированием (особенно решали задачи классификации) в течение как минимум одного месяца, держу пари, к настоящему времени вы просмотрели более 9000 статей о точности em. >, точность и запоминание, чувствительность и специфичность, оценка F1, матрица путаницы и Кривая ROC . Так что вас не так легко обмануть, если показатель точности превышает 99,9%. Надеюсь, сегодня я расскажу вам что-нибудь новенькое.
Эта статья посвящена двум различным, немного менее популярным метрикам, которые я обнаружил при исследовании показателей оценки рекомендательных систем, которые, в зависимости от вашей цели, могут отражать производительность модели лучше, чем точность, отзывчивость или оценка F1:
- Коэффициент корреляции Мэтьюза (MCC)
- Статистика Юдена (YJS)
Я уже слышу, как вы спрашиваете: «В чем проблема с точностью, запоминанием и оценкой F1?». Что ж, проблема может быть, а может и не быть, в зависимости от цели вашей модели. Давайте посмотрим на несколько примеров. Веселитесь с электронными таблицами! Ура!
Серые столбцы представляют набор данных: [+] - это количество положительных точек данных, которые наш классификатор предназначен для обнаружения, [-] - это число. или негативы. Их сумма составляет общий размер набора данных: 100 + 900 = 1000.
Синие и фиолетовые столбцы представляют поведение нашей модели: сколько именно истинных положительных результатов (TP) и ложных положительных результатов (FP) , истинно отрицательные (TN) и ложноотрицательные (FN), которые он производит.
Точность (A) - это показатель, который всем понятен: количество правильных решений, которые принимает модель, деленное на общее количество решений: (TP + TN) / размер набора данных.
Точность (P) - это доля правильных положительных решений среди всех положительных решений, которые принимает модель: TP / (TP + FP)
Напоминание (также известное как Чувствительность) (R (S)) - это доля положительных точек данных, которую модель правильно определяет среди всех положительных точек данных: TP / [+]
F1 оценка - это комбинированный однозначный показатель точности и запоминания - их гармоническое среднее: 2 * P * R / (P + R)
Специфичность (Sp) - это доля отрицательных точек данных, которую модель правильно определяет среди всех отрицательных точек данных: TN / [-]
Каждая строка в таблице представляет разные классификаторы (от наименее чувствительных до наиболее чувствительных). Зеленый / красный показывает, увеличивается или уменьшается показатель в этом столбце с увеличением чувствительности классификатора.
Предположим, что с увеличением чувствительности классификатора числа TP и FP растут примерно одинаково (в этом примере с 50 до 99), что является довольно разумным предположением, которое отражает компромисс между точностью и точностью воспроизведения . Не волнуйтесь, позже мы сделаем более пессимистические предположения :)
Наконец, MCC и YJS - это причины, по которым вы все еще читаете эту статью. О них поговорим чуть позже. Пожалуйста, продолжайте!
Поэтому я просто снова вставляю ту же таблицу (чтобы вам не нужно было прокручивать назад), а также добавляю таблицу 2 с теми же классификаторами, но с большим количеством отрицательных примеров (9900 по сравнению с 900 в таблице 1), которые наши классификаторы правильно идентифицируют как негативы, поэтому номера TP, FP и FN остаются прежними.
Чем больше мы увеличиваем чувствительность (также называемую вспоминанием), тем лучшие значения F1 мы получаем, при условии, что точность остается прежней. Кроме того, поскольку TN становится меньше, значение специфичности падает (и становится красным).
Теперь взгляните на значения точности, отзыва и оценки F1 в обеих таблицах. Они абсолютно одинаковы в пределах одного уровня чувствительности! Независимо от того, сколько отрицательных точек данных мы добавим к тестовой выборке.
Вот и все! Это проблема точности, отзыва и результата F1. Они полностью игнорируют истинный негатив. Пришло время ввести коэффициент корреляции Мэтьюза:
Формула может показаться устрашающей или довольно знакомой, но мы не собираемся углубляться в математические рассуждения, стоящие за ней. Видите этот симпатичный TN в числителе? Это делает MCC чувствительным к истинному негативу. Это станет ясно, если вы сравните столбцы MCC в таблице 1 и таблице 2.
Теперь давайте посмотрим на статистику Youden’s J, которая еще проще:
YJS = чувствительность + специфичность - 1
Как вы помните, чувствительность и специфичность - это в точности отношения TP / [+] и TN / [-] соответственно. Итак, YJS - это просто линейная комбинация тех, которые находятся по шкале от 0 до 1.
Мы заметили существенное увеличение MCC и YJS, когда добавили больше отрицательных примеров, которые правильно идентифицированы моделью. Но оба показателя также растут по мере того, как мы увеличиваем чувствительность классификатора, потому что они на самом деле заботятся как о чувствительности, так и о специфичности. Довольно круто, правда?
Становится темнее…
Как я и обещал, сейчас все станет немного более пессимистичным. Но, конечно, ради науки. Наука о данных!
В таблице 3 FP пропорционален TP: он всегда в 20 раз больше. В таблице 4 FP - квадрат TP.
В таблице 3 точность падает с увеличением чувствительности, поскольку FP растет в 20 раз быстрее, чем TP. Точность остается прежней, потому что сама пропорция TP / FP является постоянной. В таблице 4 все показатели, кроме отзыва, падают (отзыв точно представляет чувствительность, которую мы постепенно увеличиваем в этих экспериментах).
Таким образом, и MCC, и YJS учитывают как чувствительность, так и специфичность, и оба чувствительны к пропорции TP и FP, а также к скорости изменения этой пропорции. Как это круто ?!
Кстати, хорошее представление этой пропорции в зависимости от чувствительности модели - это кривая ROC.
Выводы
- MCC и YJS - это простые и эффективные метрики классификации, которые могут быть более актуальными, чем точность, отзыв и оценка F1 для вашего классификатора, если вы заботитесь об истинных отрицаниях.
- Если вас действительно волнуют истинные негативы, то случай отказа от MCC и YJS является хорошим признаком того, что вы идете в неправильном направлении при разработке модели.
- Хорошей стратегией может быть установка минимально допустимого значения специфичности и максимизация MCC или YJS.
- Распределения имеют значение! Не всегда правильно сравнивать показатели производительности моделей на двух разных наборах тестов. В идеале вы должны стремиться иметь такое же распределение данных в наборах для обучения / оценки / тестирования, которое максимально приближено к реальной жизни. Но если вы хотите понять, как ваша модель ведет себя в случае несоответствия данных, вам помогут MCC и YJS.
- Таблицы потрясающие! Если вы относитесь к тому типу людей, которым легче понять общую закономерность, глядя на набор конкретных примеров (так же, как это делают модели машинного обучения), вам определенно будет полезно просто моделировать их в электронной таблице, даже не написав ни строчки кода. Как бы я ни ненавидел это говорить как разработчик.
Спасибо! Имейте чистые данные и с умом выбирайте метрики!