Рубрики
Без рубрики

Как построить Sklearn Cow Confusion Matrix с этикетками?

Резюме: Лучший способ построить путаницу матрицы с этикетками, это использовать объект ConfunusucaMatrixdisplay из модуля Sklearn.Metrics. Еще один простым и элегантным способом – использовать функцию Meaborn.HeatMap (). https://youtu.be/esjx0egy9ti Примечание. Все решения, приведенные ниже, были проверены с помощью Python 3.9.0b5. Формулия задачи Представьте себе следующие списки фактических и предсказанных … Как построить Sklearn Cow Confusion Matrix с этикетками? Подробнее “

Автор оригинала: Girish Rao.

Резюме : Лучший способ построить Путаница матрицы С этикетками, это использовать ConfuncudeMatrixdisplay объект из Sklearn.metrics модуль. Еще один простой и элегантный способ – использовать Meanborn.Heatmap () функция.

Примечание : Все приведенные ниже решения были проверены с использованием Python 3.9.0b5 Отказ

Постановка проблемы

Представьте себе следующие списки Фактический и Предсказано Значения в Питон .

actual_data = \
       ['apples',  'pears',   'apples',
        'apples',  'apples',  'pears',
        'oranges', 'oranges', 'apples',
        'apples',  'apples',  'apples',
        'apples',  'apples',  'pears',
        'apples',  'oranges', 'apples',
        'apples',  'apples']

predicted_data = \
      ['oranges', 'pears',   'apples',
       'apples',  'apples',  'pears',
       'oranges', 'oranges', 'apples', 
       'apples',  'apples',  'apples',
       'apples',  'apples',  'pears',
       'apples',  'oranges', 'oranges',
       'apples',  'oranges']

Как один участок A Путаница матрицы Такие, как показано ниже?

Фон

предсказано Приведенные выше данные, часто является результатом данных, подаваемых в Модель классификации Отказ   В идеальном мире совершенных моделей, предсказано Данные должны соответствовать фактический данные. Но в реальном мире предсказано данные и фактический Данные редко совпадают. Как это имеет смысл этой неприятной путаницы? Ты понял!! Один из графиков A Путаница Матрица . А Путаница Матрица это способ измерить производительность классификатора.

Этот блог демонстрирует, как легко сделать Путаница Матрица с этикетки Отказ Как всегда, Python Сообщество продолжает развивать более простые и интуитивные способы кода. Sklearn Метрики Модуль обеспечивает превосходные функции оценки и метрики производительности. Матплотлиб и Морской Библиотеки предоставляют отличные визуализации Отказ Этот блог демонстрирует, как использовать эти библиотеки, чтобы построить Путаница Матрица с этикетки Отказ

Я смущен!! Как я могу записать путаницу матрицу с этикетками, быстро !!

Вы уже знакомы с концепциями Путаница матрицы и Визуализация ? Если это так, то решение, предложенное ниже, является самым быстрым и простым способом построить данные. Начальная точка – Классифицировано Данные (I.e. Фактический V/S Предсказанный ). Это означает, что нужно не придерживаться накладных расходов, чтобы снова использовать классификатор. Этот метод демонстрирует, как настроить сам объект ConfusuduaseMatrixdisplay. Это получает нам результаты, которые мы хотим, быстро и эффективно. Этот метод проще потому что мы используем то же самое Sklearn.metrics Модуль для …

  • Создайте путаницу матрицы.
  • Устранить путаницу матрицы.

Читатель должен использовать код ниже, подключить их фактический и предсказано ценности. Комментарии объясняют, что делает то, что в коде. Для простоты данные, показанные ниже, имеют 3 типа фруктов. Это яблоки, апельсины и груши. Обратите внимание, что потому, что это строки, Sklearn приказывает им в алфавитном порядке. Следовательно, упорядочение клещей этикетки должно соответствовать этому алфавитному порядку сортировки. I.E. display_labels = [«Яблоки», «Апельсины», «Груши»] Отказ Например, если он использует яблоки, груши и помидоры в качестве данных, а затем используйте display_labels = [«Яблоки», «Груши», «Помидоры»] Отказ

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

Хорошо, теперь, когда вы едите свои фрукты, давайте сделаем другой момент. Путаница Matrix может отображать данные с 2 или более категориями. В этом примере показаны данные, которые имеют 3 категории фруктов. Не забудьте перечислить все категории в 'display_labels' в правильном порядке.

Сохраните следующий код в файле (например, Fruitsklearn.py ).

## The Matplotlib Library underpins the Visualizations we are about to
## demonstrate.
import matplotlib.pyplot as plt

## The scikit-learn Library (aka sklearn) provides simple and efficient
## tools for predictive data analysis.
from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay

## For Simplicity, we start from the data that was already generated
## by the Classifier Model.

## The list 'actual_data' represents the actual(real) outputs
actual_data = \
       ['apples',  'pears',   'apples',
        'apples',  'apples',  'pears',
        'oranges', 'oranges', 'apples',
        'apples',  'apples',  'apples',
        'apples',  'apples',  'pears',
        'apples',  'oranges', 'apples',
        'apples',  'apples']

## The list 'predicted_data' represents the output generated by the
## Classifier Model. For the perfect Classification Model, the Predicted
## data would have exactly matched the Actual data. But as we all very
## well know, there is no such thing as the 'perfect Classification Model'.
## Hence the Confusion Matrix provides a way to visualize and make
## sense of the accuracy of the Classification Model.
predicted_data = \
      ['oranges', 'pears',   'apples',
       'apples',  'apples',  'pears',
       'oranges', 'oranges', 'apples', 
       'apples',  'apples',  'apples',
       'apples',  'apples',  'pears',
       'apples',  'oranges', 'oranges',
       'apples',  'oranges']
    
## Create the Confusion Matrix out of the Actual and Predicted Data.
cm = confusion_matrix(actual_data, predicted_data)

## Print the Confusion Matrix.
print(cm)

## Create the Confusion Matrix Display Object(cmd_obj). Note the 
## alphabetical sorting order of the labels.
cmd_obj = ConfusionMatrixDisplay(cm, display_labels=['apples', 'oranges', 'pears'])

## The plot() function has to be called for the sklearn visualization
## code to do its work and the Axes object to be created.
cmd_obj.plot()

## Use the Axes attribute 'ax_' to get to the underlying Axes object.
## The Axes object controls the labels for the X and the Y axes. It
## also controls the title.
cmd_obj.ax_.set(
                title='Sklearn Confusion Matrix with labels!!', 
                xlabel='Predicted Fruits', 
                ylabel='Actual Fruits')

## Finally, call the matplotlib show() function to display the visualization
## of the Confusion Matrix.
plt.show()

Далее запустите код следующим образом, чтобы построить матрицу путаницы.

$ python
$ python -V
Python 3.9.0b5
$ python fruitsSKLearn.py
[[11  3  0]
 [ 0  3  0]
 [ 0  0  3]]
$

Отображает следующую визуализацию. Обратите внимание на этикетки «Фактические фрукты» и «Прогнозируемые фрукты» Отказ

Это правда Что всегда есть еще один путь в Python, делать то же самое?

Хорошо!! Допустим, «почти» всегда !! В этом разделе мы используем Морской Библиотека на сюжет Путаница Матрица с этикетки Отказ Морской это библиотека визуализации данных на основе matplotlib. .

В этом методе тоже можно использовать Классифицированные данные как начальная точка. Можно увидеть после изучения кода Searborn, что это очень похоже на код Sklearn. Это потому, что оба эти библиотеки прикреплены Матплотлиб библиотека. В обоих этих случаях можно модифицировать атрибуты основных осей объекта. Sklearn Изменяет основные оси объект через ConfuncudeMatrixdisplay объект.   В то время как морской HeatMap () Функция на самом деле создает и возвращает основные оси объект. Затем код изменяет этот объект осей, напрямую.

Как и в предыдущем разделе, читатель должен подключиться к себе фактический и предсказано данные. Не забудьте настроить этикетки по мере необходимости. Сохраните модифицированный код в файле (например, FruitsseaBorn.py )

## The Matplotlib Library underpins the Visualizations we are about to
## demonstrate.
import matplotlib.pyplot as plt

## The scikit-learn Library (aka sklearn) provides simple and efficient
## tools for predictive data analysis.
from sklearn.metrics import confusion_matrix

## The Seaborn Library provides data visualization. In this example, it plots
## the Confusion Matrix
import seaborn as sns

## For Simplicity, we start from the data that was already generated
## by the Classifier Model.

## The list 'actual_data' represents the actual(real) outputs
actual_data = \
       ['apples',  'pears',   'apples',
        'apples',  'apples',  'pears',
        'oranges', 'oranges', 'apples',
        'apples',  'apples',  'apples',
        'apples',  'apples',  'pears',
        'apples',  'oranges', 'apples',
        'apples',  'apples']

## The list 'predicted_data' represents the output generated by the
## Classifier Model. For the perfect model, the Predicted data would
## have exactly matched the Actual data. But as we all very well know
## there is no such thing as the 'perfect Classification Model'.
predicted_data = \
      ['oranges', 'pears',   'apples',
       'apples',  'apples',  'pears', 
       'oranges', 'oranges', 'apples', 
       'apples',  'apples',  'apples',
       'apples',  'apples',  'pears', 
       'apples',  'oranges', 'oranges',
       'apples',  'oranges']
    
## Create the Confusion Matrix out of the Actual and Predicted Data.
cm = confusion_matrix(actual_data, predicted_data)

## Print the Confusion Matrix
print(cm)

## Call the heatmap() function from the Seaborn Library.
## annot=True annotates cells.
## fmt='g' disables scientific notation.
## The heatmap() function returns a Matplotlib Axes Object.
ax = sns.heatmap(cm, annot=True, fmt='g');

## Modify the Axes Object directly to set various attributes such as the
## Title, X/Y Labels.
ax.set_title('Seaborn Confusion Matrix with labels!!');
ax.set_xlabel('Predicted Fruits')
ax.set_ylabel('Actual Fruits');

## For the Tick Labels, the labels should be in Alphabetical order
ax.xaxis.set_ticklabels(['apples', 'oranges', 'pears'])
ax.yaxis.set_ticklabels(['apples', 'oranges', 'pears'])

## Finally call the matplotlib show() function to display the visualization
## of the Confusion Matrix.
plt.show()

Далее запустите код следующим образом, чтобы построить Путаница матрицы Отказ

$ python
$ python -V
Python 3.9.0b5
$ python fruitsSeaborn.py
[[11  3  0]
 [ 0  3  0]
 [ 0  0  3]]
$

Отображает следующую визуализацию. Обратите внимание на этикетки «Фактические фрукты» и «Прогнозируемые фрукты» Отказ Также обратите внимание, что цветовые схемы по умолчанию отличаются по сравнению с библиотекой Sklearn. В библиотеке Seborbor в цветовой схеме управляется 'cmap' Параметр HeatMap () функция.

Заключение

Python похож на видеоигру подземелья и дракона. Существуют огромное количество уголков и дольше, чтобы исследовать. Приведенные выше примеры показывают два простых способа построить путаницу матрицы с этикетками. Python Coder’s разработал несколько других модных методов, чтобы сделать то же самое. Они варьируются от Super Simple до излишне сложности. Дело в том, что в Интернете много информации о Python. Проведите исследование, чтобы найти самый элегантный и простой способ.

Хотя один участвует Python, нет ухода от локтевой смазки (ака. Тяжелая мозговая работа). Жесткая мозговая работа нуждается в большом количестве энергии и питания. Так что ешьте эти яблоки, апельсины и груши, пока вы решаете Python.

Финктерская академия

Этот блог был доставлен вам Гириша Рао , студент Финктерская академия . Вы можете найти его Профиль намного здесь Отказ

Ссылка

Все исследования для этой статьи в блоге было сделано с использованием Python Documents , Поисковая система Google и общая база знаний Финктерская академия и Переполнение стека Общины.

Следующие библиотеки и модули также были исследованы во время создания этого блога.

Оригинал: “https://blog.finxter.com/how-to-plot-sklearn-confusion-matrix-with-labels/”