web-dev-qa-db-ja.com

分類子なしでscikit-learnを使用して混同行列をプロットする

sklearn.metrics.confusion_matrixで作成した混同行列があります。

ここで、sklearn.metrics.plot_confusion_matrixでプロットしたいと思いますが、最初のパラメータは documentation で指定されているトレーニング済みの分類子です。問題は、分類子がないことです。結果は手動計算で得られました。

Scikit-learnを介して混同行列を1行にプロットすることはまだ可能ですか、それともmatplotlibを使用して自分でコーディングする必要がありますか?

前もって感謝します!

8
Irina

_plot_confusion_matrix_を直接インポートできるという事実は、最新バージョンのscikit-learn(0.22)がインストールされていることを示唆しています。したがって、plot_confusion_matrix()のソースコードを見て、estimatorの使用方法を確認できます。

ここでは最新のソース から、推定量は次の目的で使用されます。

  1. _confusion_matrix_を使用した混同行列の計算
  2. ラベルを取得する(混同行列の0、1、2 ..に対応するyの一意の値)

したがって、これら2つがすでにある場合は、以下の部分が必要です。

_import matplotlib.pyplot as plt
from sklearn.metrics import ConfusionMatrixDisplay

disp = ConfusionMatrixDisplay(confusion_matrix=cm,
                              display_labels=display_labels)


# NOTE: Fill all variables here with default values of the plot_confusion_matrix
disp = disp.plot(include_values=include_values,
                 cmap=cmap, ax=ax, xticks_rotation=xticks_rotation)

plt.show()
_

コメントのNOTEを見てください。

古いバージョンの場合、matplotlibパーツがどのようにコーディングされているかを以下で確認できます。

5
Vivek Kumar