Питер Друкер, известный гуру менеджмента, однажды сказал: Если вы не можете что-то измерить, вы не можете это улучшить. Здесь также мы измеряем, а затем улучшаем алгоритм машинного обучения, либо выбирая другие параметры (называемые настройкой гиперпараметров), либо выбирая другой алгоритм.

Однако первым шагом является выбор правильной метрики производительности/оценки. Есть много блогов и статей на эту тему. Но никто, похоже, не объясняет простыми словами, что я и попытаюсь сделать в этом коротком блоге.

Прежде чем мы начнем. Существует несколько жаргонных терминов для метрик оценки, с которыми мы обычно сталкиваемся для метрик оценки:
# Чувствительность, частота попаданий, полнота или доля истинно положительных результатов
# Специфичность или доля истинно отрицательных результатов
# Точность или положительный прогноз value
# Отрицательное прогностическое значение
# Частота выпадений или ложноположительных результатов
# Частота ложноотрицательных результатов
# Частота ложных пропусков
# Общая точность
# и т. д. . и т.д…

Однако большинство идей в науке о данных просты и могут быть объяснены с точки зрения непрофессионала. Ниже приведен пример жаргона науки о данных, которым, как мне кажется, будет интересно поделиться:

Если вы знаете, что такое матрица путаницы, все вышеперечисленные показатели можно вывести. Следовательно, элементы метрик путаницы являются строительными блоками.

Четыре составных элемента:
их хорошо объясняет приведенная ниже матрица путаницы 2 x 2. К ним относятся:
=> истинно положительный (TP), ложноположительный (FP), истинно отрицательный (TN), ложноотрицательный (FN).
=> ложноположительный также называется Type-I. ошибка.
=> Ложноотрицательный результат также называется ошибкой типа II.

Краткое объяснение с использованием нескольких примеров.
Предположим, у вас есть алгоритм машинного обучения для прогнозирования беременности.
а) Если это предсказывает беременность для женщины, которая действительно беременна. Ура, это Истинно Положительный (TP).
b) Если он предсказывает беременность мужчине или женщине, которая не беременна, то, увы, это Ложно Положительный (FP). Это также называется ошибками типа I. Это сродни осуждению невиновного мужчины.
c) Если он не предсказывает беременности для женщины, которая действительно беременна, то это Ложноотрицательный результат (FN). Это также называется ошибками типа II. Это все равно, что отпустить виновного на свободу.
d) Если он предсказывает НЕТ беременности для мужчины или женщины, которая не беременна , то это Истинно отрицательный (TN)

PS: в основном случаи использования, с которыми мы сталкиваемся, связаны с уменьшением ошибок типа I или типа II.

Давайте углубимся в детали

  1. Метрики: чувствительность, частота совпадений, отзыв или доля истинно положительных результатов.
    Формула: TP/(FN+TP)
    Обсуждение: У нас есть четыре термина для обозначения одного и того же. Эти показатели используются там, где ставки высоки, а шансы на успех низки. Например, мошенничество или опасные для жизни заболевания. Здесь нас интересует увеличение истинно положительных результатов, а также уменьшение ложноотрицательных результатов (то есть ошибок типа II). Эта метрика обычно используется в сочетании с False Omission rate.
  2. Метрики: Специфичность или истинно отрицательный показатель
    Формула: TN/(TN+TP)
    Обсуждение: здесь основное внимание уделяется объему, и нас интересует более широкий вопрос. Например: скажем, наш алгоритм машинного обучения предсказывает, есть ли у кого-то дом или нет. И мы хотим использовать эту информацию, чтобы направить рекламу недвижимости людям, у которых нет дома. Неспособность правильно предсказать не имеет серьезных последствий, так как это нормально, если часть наших рекламных долларов пропадет впустую. Заметьте, мы можем сделать такой же аргумент в отношении True Positives.
  3. Метрики: точность или положительная прогностическая ценность.
    Формула: TP /(FP+TP)
    Обсуждение: значения чувствительности и специфичности не связаны с процентом правильных прогнозов в прогнозируемой популяции. Но здесь мы делаем. Скажем, мы сделали прогноз на 100 случаев и правильно предсказали 70 из них. Таким образом, наша точность составляет 70%. Теперь скажем, наш алгоритм машинного обучения предсказывает потенциальных доноров на основе определенных демографических характеристик. Мы хотим убедиться, что мы правильно предсказали как можно больше. Поэтому для нас точность будет хорошей метрикой для отслеживания. Эта метрика обычно используется в сочетании с Отрицательной прогностической ценностью.
  4. Показатели: прогностическая ценность отрицательного результата
    Формула: TN / (FN + TN)
    Обсуждение: он просто измеряет истинное отрицательное значение среди населения, идентифицированного как отрицательное. Этот показатель обычно используется в сочетании с Положительной прогностической ценностью. Здесь нас интересует, насколько точен негативный прогноз. Теперь предположим, что наш алгоритм машинного обучения предсказывает лишь небольшой процент людей с риском развития диабета, тогда может возникнуть необходимость проверить, являются ли отрицательные случаи истинными отрицательными результатами. Если это не так, это может указывать на проблемы с самим алгоритмом.
  5. Метрики: ложный коэффициент пропусков
    Формула: FN/(TN+FN)
    Обсуждение: как обсуждалось в первом пункте , здесь мы имеем дело с ошибками типа II (т. е. отпусканием виновного на свободу)
  6. Показатели: общая точность
    Формула: (TP+TN)/(TP+FP+FN+TN)
    Обсуждение. Он просто измеряет, сколько мы правильно предсказали для данного населения.

Существуют и другие показатели, такие как баллы F1, которые объединяют один или несколько показателей выше, чтобы дать вам составной балл.

Если вам нужно вынести одну вещь из этого блога, это будет: какова цена (ущерб, последствия, потери в долларах и т. д.) из-за неправильного прогнозирования? Это поможет вам использовать правильные показатели.

Время кодирования

Нам нужна простая функция для расчета: True Positive (TP), False Positive (FP), True Negative (TN), False Negative (FN). Остальное все можно посчитать.
PS: y_actual – это фактические значения, а y_hat – прогнозируемые значения.

Код был взят из: https://stackoverflow.com/questions/31324218/scikit-learn-how-to-obtain-true-positive-true-negative-false-positive-and-false

Надеюсь, вам понравился этот пост в блоге.