В чем смысл матрицы путаницы, которую я получил, используя 5 классов для классификации? - PullRequest
0 голосов
/ 02 мая 2019

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

PS Я работаю над проблемой классификации, имеющей 5 классов для предсказания изображений.

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

# Confusion Matrix
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(tr_int,prediction)

Вы можете проверить тепловую карту здесь -> Тепловая карта .И изображение массива матрицы путаницы здесь-> ConfusionMatrix Код, который я использую для построения графиков, приведен ниже.

import itertools
def plot_con(cm,classes,normalize=False,title="Confusion Matrix", cmap = plt.cm.Blues):
    plt.imshow(cm,interpolation='nearest', cmap=cmap)
    plt.title(title)
    plt.colorbar()
    tick_marks = np.arange(len(classes))
    plt.xticks(tick_marks, classes, rotation = 45)
    plt.yticks(tick_marks,classes)

    if normalize: 
        cm = cm.astype('float')/ cm.sum(axis = 1)[:, np.newaxis]
        print("Normalized C Matrix")
    else:
        print("Without Normalization")

    print(cm)

    thresh = cm.max() / 2.
    for i, j in itertools.product(range(cm.shape[0]),range(cm.shape[1])):
        plt.text(j, i, cm[i,j],
                horizontalalignment = "center"
                color = "white" if cm[i,j] > thresh else "black")

    plt.tight_layout()
    plt.ylabel('True Label')
    plt.xlabel('Predicted')

Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

В этом случае ваш классификатор выбирает один конкретный класс для заданного набора значений признаков (как вы сказали, что вы создаете мультиклассовый классификатор).

Итак, допустим, у вас есть ? классов, тогда ваша путаницаmatrix будет представлять собой матрицу ? × ?, где на левой оси показан истинный класс (как известно в наборе тестов), а на верхней оси показан класс, назначенный элементу с этим истинным классом.Каждый элемент ?, ? матрицы будет количеством элементов с истинным классом ?, которые были классифицированы как принадлежащие к классу ?.

Это просто прямое расширение матрицы смешения 2-х классов.

Подробнее здесь: https://stats.stackexchange.com/questions/179835/how-to-build-a-confusion-matrix-for-a-multiclass-classifier

0 голосов
/ 02 мая 2019

Вы должны проверить свои векторы tr_int и prediction, я думаю, что есть 10 различных значений, поскольку ваша матрица путаницы имеет размерность 10 * 10.Каждая строка и столбец матрицы соответствуют разным классам.

...