Демистификация матрицы путаницы в машинном обучении [удивительно]
Опубликовано: 2020-12-07Машинное обучение — это общий термин, под которым оно аккумулирует обработку данных, извлекая значимые выводы из данных и моделируя данные. После завершения моделирования данных необходимо измерить модель для оценки ее производительности и других отраслевых параметров, и одной из наиболее распространенных метрик является матрица путаницы.
Оглавление
Что такое матрица путаницы и почему она используется?
Это показатель производительности, используемый в задачах классификации, где выходных классов может быть два или более, и эта матрица представляет все комбинации прогнозируемых значений по модели с фактическими значениями, связанными с этим входом. Она называется «матрица путаницы», потому что следовать определениям кажется простым, но по мере того, как мы продвигаемся вперед, чтобы получить более ценные параметры, возникает путаница в отношении того, какой параметр лучше всего подходит в конкретном месте.
Он используется в местах, где проблема классификации сильно несбалансирована и один класс доминирует над другими классами. В таких сценариях вы можете быть удивлены, увидев, что точность модели достигает пика в 99%, но на самом деле модель сильно смещена в сторону доминирующего класса. Вероятность того, что вы получите предсказания для классов меньшинств, очень мала. Поэтому, чтобы проверить такой несбалансированный набор данных, мы рассмотрим матрицу путаницы.
Структура матрицы путаницы
Размер матрицы прямо пропорционален количеству выходных классов. Это квадратная матрица, в которой мы предполагаем заголовки столбцов как фактические значения, а заголовки строк — как предсказания модели. Значения, которые являются истинными и предсказаны моделью как истинные, являются истинными положительными значениями (TP) , правильные прогнозы отрицательных значений являются истинными отрицательными значениями (TN) , значения, которые были отрицательными, но предсказаны как истинные, являются ложными положительными значениями (FP) , а положительные значения, предсказанные как отрицательные, являются Ложноотрицательные результаты (ЛН) . Взгляните на это изображение:

Читайте: Типы алгоритмов классификации в машинном обучении
Что мы можем извлечь из этого?
Возникает закономерный вопрос, что мы можем сделать с этой матрицей. Есть несколько важных терминов, основанных на этом:

- Точность: это часть значений, которые идентифицируются моделью как правильные и имеют отношение к решению постановки задачи. Мы также можем указать это как значения, которые являются частью общих положительных результатов, полученных моделью, и являются положительными. Следовательно, мы можем дать его формулу как TP/(TP + FP).
- Напомним: это часть значений, которые модель правильно идентифицирует как положительные. Это также называется истинной положительной скоростью или чувствительностью. Его формула выглядит так: TP/(TP+FN).
- Оценка F-1: это гармоническое среднее Точности и Отзыва. Это означает, что если бы мы сравнивали две модели, то эта метрика подавляла бы экстремальные значения и одновременно учитывала бы как ложноположительные, так и ложноотрицательные результаты. Его можно указать как 2*точность*отзыв/ (точность+отзыв).
- Точность: это часть значений, которые идентифицируются правильно, независимо от того, являются ли они положительными или отрицательными. Это означает, что сюда включены все истинные положительные и истинные отрицания. Формула для этого: (TP+TN)/(TP+TN+FP+FN).
Из всех терминов наиболее широко используются точность и полнота. Их компромисс является полезной мерой успеха предсказания. Желаемая модель должна иметь высокую точность и высокую полноту, но это только в идеально разделимых данных. В практических случаях данные крайне неорганизованы и несбалансированы.

Как создать код для матрицы путаницы в Python?
Библиотека sklearn предоставляет множество функций для выполнения всех задач машинного обучения с максимальной точностью, и здесь реализовано почти все. Рассмотрим знаменитый набор данных Iris со всеми уже выполненными операторами импорта, код для матрицы путаницы будет таким:
радужная оболочка = наборы данных.load_iris()
X = радужная оболочка.данные
у = радужная оболочка.цель
class_names = радужная оболочка.target_names
X_train, X_test, y_train, y_test = train_test_split (X, y, random_state = 0 )
классификатор = svm.SVC (ядро = 'linear' , C = 0,01 ) . подходит (X_train, y_train)
plot_confusion_matrix (классификатор, X_test, y_test, display_labels = class_names, cmap = plt . cm . Blues)

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

печать (classification_report (y_true = y_test, y_pred = y_pred, target_names = class_names))

Читайте также: Алгоритм глубокого обучения
Какой использовать и где?
Это наиболее распространенный вопрос, возникающий при моделировании данных, и решение лежит в области постановки задачи. Рассмотрим эти два случая:
- Предположим, вы предсказываете, случится ли у человека остановка сердца. В этом сценарии вы не можете допустить неправильной классификации, и все сделанные прогнозы должны быть точными. С учетом сказанного стоимость ложноотрицательных результатов высока, поэтому человек был склонен к нападению, но считался безопасным. Этих случаев следует избегать. В этих ситуациях нам нужна модель с высокой полнотой.
- Предположим, что поисковая система предоставила случайные результаты, которые все предсказаны моделью как положительные, тогда вероятность того, что пользователь будет полагаться на нее, очень мала. Поэтому в этом сценарии нам нужна модель с высокой точностью, чтобы улучшить взаимодействие с пользователем, а веб-сайт рос в правильном направлении.
Заключение
Матрица путаницы — отличный метод для оценки модели классификации. Это дает фактическое представление о том, насколько точно модель классифицировала классы на основе предоставленных входных данных, и как этот класс может быть неправильно классифицирован.
Если вам интересно узнать больше о машинном обучении, ознакомьтесь с дипломом PG IIIT-B и upGrad в области машинного обучения и искусственного интеллекта, который предназначен для работающих профессионалов и предлагает более 450 часов тщательного обучения, более 30 тематических исследований и заданий, IIIT- Статус B Alumni, более 5 практических практических проектов и помощь в трудоустройстве в ведущих фирмах.
