В последние годы машинное обучение превратилось в модное слово, используемое для описания всех видов моделирования. При изучении машинного обучения важно познакомиться со всеми различными категориями, подпадающими под знаменитый общий термин. Во-первых, машинное обучение можно разбить на две простые категории: «Обучение с учителем» и «Обучение без учителя». В этой статье я остановлюсь только на подмножестве контролируемого обучения. Обучение с учителем - это класс машинного обучения, который может «изучить» задачу с помощью помеченных данных обучения. Помеченные данные - это то, что отличает обучение с учителем от обучения без учителя. Модели обучения без учителя интерпретируют данные только на основе входных данных. Кроме того, модели контролируемого обучения можно разделить еще на две отдельные категории: «Классификация» и «Регрессия». Сегодня мы сосредоточимся на классификационных моделях.

Ниже приведено простое изображение, которое поможет визуализировать эту структуру.

По большей части модели классификации - это то, что мы используем для прогнозирования категориальных данных. Это происходит в форме двоичного предсказания; Да или нет, положительный или отрицательный - вот некоторые примеры. В этой статье мы сосредоточимся на том, как мы можем оценить наши классификационные модели. Есть много шагов, которые необходимо выполнить для развертывания успешной модели; Предварительная обработка, EDA, разработка функций, выбор модели, обучение, затем оценка.

Зачем нужна оценка?

Нам необходимо оценить наши модели, чтобы определить, какая из них наиболее успешна. Есть много различных типов алгоритмов классификации, которые мы могли бы использовать для нашей модели; Логистическая регрессия, K-ближайшего соседа, Дерево решений - это всего лишь несколько примеров. Метрики оценки могут помочь нам решить, какой алгоритм лучше всего подходит для наших прогнозов.

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

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

Матрица неточностей

Матрицу неточностей, хотя это и не совсем показатель, чрезвычайно важно знать при оценке нашего классификатора. Есть четыре термина, которые мешают пониманию матрицы путаницы.

  • Истинно-положительный: результат, при котором модель правильно предсказывает положительный класс.
  • Истинно-отрицательный: результат, при котором модель правильно предсказывает отрицательный класс.
  • Ложноположительный результат: результат, при котором модель ложно предсказывает, что действительно отрицательный результат будет положительным. Ошибка типа I
  • Ложноотрицательный результат: результат, при котором модель ложно предсказывает, что действительно положительный результат будет отрицательным. Ошибка типа II

Ниже приведен простой пример матрицы неточностей.

Эта матрица путаницы отображает результаты прогнозирования модели, является ли изображение «Кошкой» или «Не-кошкой». По матрице неточностей мы можем сказать, что данные содержат 85 изображений кошки и 138 изображений не-кошки.

В Python scikit-learn дает нам возможность кодировать многие нужные нам метрики. В разделе «Ссылки» есть ссылка на их документацию.

Ниже приведен пример вычисляемой scikit-learn матрицы ошибок для нашего Cat Predictor.

В приведенной выше матрице путаницы;

  • Истинные положительные результаты: (при успешном предсказании кошки) - 63.
  • Истинно-отрицательный: (при успешном предсказании не-кошки) - 120.
  • Ложные срабатывания: (когда модель предсказывает кошку, но на самом деле она не кошка) составляет 18
  • Ложноотрицательные: (когда модель предсказывает, что это не кошка, но на самом деле это кошка) - 22.

Важно всегда помнить, что в моделях классификации важен контекст. Например, если ваша целевая частота экземпляров переменной составляет 80%, а ваша модель прогнозирует с вероятностью успеха 81%, ваша модель может быть столь же эффективной, предсказывая истинность каждый раз.

Оценочные показатели

Примечание. Эти шаги выполняются после разделения обучения и тестирования, масштабирования и запуска вашей модели.

Точность классификации: простейшая метрика оценки, показывающая, насколько часто ваш классификатор верен. Чтобы вычислить, мы складываем наши правильные прогнозы и делим их на общее количество прогнозов. Примечание. Не лучший показатель при работе с сильно несбалансированными данными.

; print((TP + TN) / (TP + TN + FP + FN))
or
print(metrics.accuracy_score(y_test, y_pred_class))
Cat Example Answer
0.820627802690583
82% Accuracy

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

print(TP / (TP + FP))
or
print(metrics.precision_score(y_test, y_pred_class))
Cat Example Answer
0.7777777777777778

Напоминание: доля выборок из класса, которые правильно спрогнозированы моделью. Или правильно определенная доля реальных положительных результатов.

print(TP / (TP + FN))
or
print(metrics.recall_score(y_test, y_pred_class))
Cat Example Answer
0.7411764705882353

Конкретность: показывает, когда фактическое значение отрицательное, как часто прогноз оказывается правильным.

print(TN / (TN + FP))
Cat Example Answer
0.8695652173913043

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

print(FP / (TN + FP))
Cat Example Answer
0.13043478260869565

Оценка F1: в зависимости от приложения вы можете отдать более высокий приоритет отзыву или точности. Но есть много приложений, в которых важны как отзыв, так и точность. Поэтому естественно придумать способ объединить эти два показателя в единую метрику. F1-оценка - это среднее гармоническое значение точности и запоминания. Идеальный F1 будет равен 1 (идеальная точность и отзыв), а худший балл F1 будет равен 0. Его можно рассчитать как = 2 * Точность * Напоминание / (Точность + Отзыв)

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

Выбор показателей классификации

Решая, какая метрика классификации важна для вас, важно взглянуть на вопрос. Например, если вы пытаетесь предсказать, есть ли у пациента коронавирус, сведение к минимуму ложных отрицательных результатов будет более важным, чем ложных срабатываний. Это связано с тем, что когда кто-то с положительным результатом на Коронавирус ходит вокруг, думая, что он / она отрицательный, чрезвычайно опасно, по сравнению с тем, что они думают, что они положительны на Коронавирус, но действительно отрицательны.

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