матрица смешения сюжета sklearn с метками

Я хочу построить матрицу путаницы, чтобы визуализировать производительность Classifer, но она показывает только числа ярлыков, а не самих этикеток:

from sklearn.metrics import confusion_matrix import pylab as pl y_test=['business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business'] pred=array(['health', 'business', 'business', 'business', 'business', 'business', 'health', 'health', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'health', 'health', 'business', 'health'], dtype='|S8') cm = confusion_matrix(y_test, pred) pl.matshow(cm) pl.title('Confusion matrix of the classifier') pl.colorbar() pl.show() 

Как добавить ярлыки (health, business..etc) в матрицу замешательства?

  • где поставить freeze_support () в сценарии Python?
  • не может передавать данные массива при вызове сохраненного классификатора
  • Пользовательский трансформатор для sklearn Pipeline, который изменяет как X, так и y
  • Как разбить данные на 3 набора (поезд, валидация и тест)?
  • Вычисление функции решения SVM вручную
  • sklearn: TFIDF Transformer: Как получить значения tf-idf данных слов в документе
  • Регрессия OLS: Scikit против Statsmodels?
  • pred_proba или decision_function как "доверие" оценщика
  • 2 Solutions collect form web for “матрица смешения сюжета sklearn с метками”

    Как намекнул на этот вопрос , вы должны «открыть» API-интерфейс нижнего уровня , сохранив объекты фигуры и оси, переданные функциями matplotlib, которые вы вызываете (приведенные ниже параметры fig , ax и cax ). Затем вы можете заменить set_xticklabels по умолчанию x и y с помощью set_xticklabels / set_yticklabels :

     labels = ['business', 'health'] cm = confusion_matrix(y_test, pred, labels) print(cm) fig = plt.figure() ax = fig.add_subplot(111) cax = ax.matshow(cm) pl.title('Confusion matrix of the classifier') fig.colorbar(cax) ax.set_xticklabels([''] + labels) ax.set_yticklabels([''] + labels) pl.xlabel('Predicted') pl.ylabel('True') pl.show() 

    Обратите внимание, что я передал список labels в функцию confusion_matrix чтобы убедиться, что он правильно отсортирован, соответствует тикам.

    Это приводит к следующему рисунку:

    введите описание изображения здесь

    Вас может заинтересовать https://github.com/pandas-ml/pandas-ml/

    который реализует реализацию Python Pandas в матрице Confusion.

    Некоторые функции:

    • матрица смешения
    • нормализованная матрица путаницы
    • статистика классов
    • общая статистика

    Вот пример:

     In [1]: from pandas_ml import ConfusionMatrix In [2]: import matplotlib.pyplot as plt In [3]: y_test = ['business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business'] In [4]: y_pred = ['health', 'business', 'business', 'business', 'business', 'business', 'health', 'health', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'business', 'health', 'health', 'business', 'health'] In [5]: cm = ConfusionMatrix(y_test, y_pred) In [6]: cm Out[6]: Predicted business health __all__ Actual business 14 6 20 health 0 0 0 __all__ 14 6 20 In [7]: cm.plot() Out[7]: <matplotlib.axes._subplots.AxesSubplot at 0x1093cf9b0> In [8]: plt.show() 

    Матрица смешения сюжета

     In [9]: cm.print_stats() Confusion Matrix: Predicted business health __all__ Actual business 14 6 20 health 0 0 0 __all__ 14 6 20 Overall Statistics: Accuracy: 0.7 95% CI: (0.45721081772371086, 0.88106840959427235) No Information Rate: ToDo P-Value [Acc > NIR]: 0.608009812201 Kappa: 0.0 Mcnemar's Test P-Value: ToDo Class Statistics: Classes business health Population 20 20 P: Condition positive 20 0 N: Condition negative 0 20 Test outcome positive 14 6 Test outcome negative 6 14 TP: True Positive 14 0 TN: True Negative 0 14 FP: False Positive 0 6 FN: False Negative 6 0 TPR: (Sensitivity, hit rate, recall) 0.7 NaN TNR=SPC: (Specificity) NaN 0.7 PPV: Pos Pred Value (Precision) 1 0 NPV: Neg Pred Value 0 1 FPR: False-out NaN 0.3 FDR: False Discovery Rate 0 1 FNR: Miss Rate 0.3 NaN ACC: Accuracy 0.7 0.7 F1 score 0.8235294 0 MCC: Matthews correlation coefficient NaN NaN Informedness NaN NaN Markedness 0 0 Prevalence 1 0 LR+: Positive likelihood ratio NaN NaN LR-: Negative likelihood ratio NaN NaN DOR: Diagnostic odds ratio NaN NaN FOR: False omission rate 1 0 
    Python - лучший язык программирования в мире.