Рубрики

Матрица путаницы в машинном обучении

В области машинного обучения и, в частности, проблемы статистической классификации, используется матрица путаницы, также известная как матрица ошибок.
Путаница — это таблица, которая часто используется для описания эффективности модели классификации (или «классификатора») на наборе тестовых данных, для которых известны истинные значения. Это позволяет визуализировать производительность алгоритма.
Это позволяет легко идентифицировать путаницу между классами, например, один класс обычно называют другим. Большинство показателей эффективности вычисляются из матрицы путаницы.

Эта статья направлена на:
1. Что такое матрица путаницы и зачем вам ее использовать?
2. Как вычислить матрицу путаницы для задачи классификации двух классов с нуля.
3. Как создать путаницу в Python.

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

Вот,
• Класс 1: положительный
• Класс 2: отрицательный

Определение терминов:
• Положительный (P): Наблюдение положительное (например: яблоко).
• Отрицательный (N): наблюдение не является положительным (например, это не яблоко).
• True Positive (TP): Наблюдение положительно, и прогнозируется, что оно будет положительным.
• False Negative (FN): Наблюдение положительно, но прогнозируется как отрицательное.
• True Negative (TN): Наблюдение отрицательно и прогнозируется как отрицательное.
• Ложно-положительный (FP): Наблюдение отрицательно, но прогнозируется как положительное.

Классификация Скорость / Точность:
Коэффициент классификации или точность определяется соотношением:

Однако есть проблемы с точностью. Это предполагает равные затраты для обоих видов ошибок. Точность 99% может быть отличной, хорошей, посредственной, плохой или ужасной в зависимости от проблемы.

Отзыв:
Напомним, можно определить как отношение общего числа правильно классифицированных положительных примеров к общему количеству положительных примеров. High Recall указывает, что класс правильно распознан (небольшое количество FN).

Напомним, дается соотношение:

Точность:
Чтобы получить значение точности, мы делим общее количество правильно классифицированных положительных примеров на общее количество предсказанных положительных примеров. Высокая точность указывает, что пример, помеченный как положительный, действительно является положительным (небольшое количество FP).
Точность определяется соотношением:

Высокий отзыв, низкая точность: это означает, что большинство положительных примеров правильно распознаются (низкий FN), но есть много ложных срабатываний.

Низкий отзыв, высокая точность: это показывает, что мы пропускаем много положительных примеров (высокий FN), но те, которые мы прогнозируем как положительные, действительно являются положительными (низкий FP)

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

Теперь давайте рассмотрим пример, в котором у нас есть бесконечные элементы данных класса B и один элемент класса A, и модель прогнозирует класс A для всех экземпляров в тестовых данных.
Вот,
Точность: 0,0
Напомним: 1,0

Сейчас:
Среднее арифметическое: 0,5
Среднее гармоническое: 0,0
Принимая среднее арифметическое, оно будет на 50% правильным. Несмотря на худший из возможных результатов! Принимая среднее гармоническое, F-мера равна 0.

Пример для интерпретации матрицы путаницы:

Для упрощения вышеуказанной матрицы путаницы я добавил все термины, такие как TP, FP и т. Д., А также итоги строк и столбцов на следующем рисунке:

Сейчас,
Классификация Скорость / Точность:
Точность = (TP + TN) / (TP + TN + FP + FN) = (100 + 50) / (100 + 5 + 10 + 50) = 0,90

Напомним: Напомним, дает нам представление о том, когда это на самом деле да, как часто это предсказывает да.
Напомним = TP / (TP + FN) = 100 / (100 + 5) = 0,95

Точность: Точность говорит нам о том, когда он предсказывает, да, как часто это правильно.
Точность = TP / (TP + FP) = 100 / (100 + 10) = 0,91

F-мера:
Fmeasure = (2 * * Напомним Точность) / (Напомним + Presision) = (2 * 0,95 * 0,91) / (0,91 + 0,95) = 0,92

Вот скрипт Python, который демонстрирует, как создать матрицу путаницы на предсказанной модели. Для этого мы должны импортировать модуль матрицы путаницы из библиотеки sklearn, которая помогает нам генерировать матрицу путаницы.

Ниже приведена реализация вышеприведенного объяснения в Python:
Обратите внимание, что эта программа может не работать в Geeksforgeeks IDE, но она может легко запускаться на вашем локальном интерпретаторе python, при условии, что вы установили необходимые библиотеки.

# Python скрипт для создания матрицы путаницы.

from sklearn.metrics import confusion_matrix

from sklearn.metrics import accuracy_score

from sklearn.metrics import classification_report

actual = [1, 1, 0, 1, 0, 0, 1, 0, 0, 0]

predicted = [1, 0, 0, 1, 0, 0, 1, 1, 1, 0]

results = confusion_matrix(actual, predicted)

print 'Confusion Matrix :'

print(results)

print 'Accuracy Score :',accuracy_score(actual, predicted)

print 'Report : '

print classification_report(actual, predicted)

ВЫХОД ->


Confusion Matrix :
[[4 2]
[1 3]]
Accuracy Score : 0.7
Report :
precision recall f1-score support
0 0.80 0.67 0.73 6
1 0.60 0.75 0.67 4
avg / total 0.72 0.70 0.70 10

Ссылки :
https://machinelearningmastery.com/confusion-matrix-machine-learning/ http://www.dataschool.io/simple-guide-to-confusion-matrix-terminology/

Эта статья предоставлена Абхишеком Шармой . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

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

Рекомендуемые посты:

Матрица путаницы в машинном обучении

0.00 (0%) 0 votes