.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/model_selection/plot_confusion_matrix.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. or to run this example in your browser via Binder .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_examples_model_selection_plot_confusion_matrix.py: ================ 混淆矩阵 ================ 使用混淆矩阵评估分类器在鸢尾花数据集上的输出质量示例。对角线元素表示预测标签等于真实标签的点的数量,而非对角线元素则表示分类器错误标记的点。混淆矩阵的对角线值越高越好,表明正确预测的数量多。 图中显示了按类别支持大小(每个类别中的元素数量)进行归一化和未归一化的混淆矩阵。在类别不平衡的情况下,这种归一化可以更直观地解释哪个类别被错误分类。 这里的结果不如预期,因为我们选择的正则化参数C不是最佳的。在实际应用中,这个参数通常使用 :ref:`grid_search` 选择。 .. GENERATED FROM PYTHON SOURCE LINES 13-55 .. rst-class:: sphx-glr-horizontal * .. image-sg:: /auto_examples/model_selection/images/sphx_glr_plot_confusion_matrix_001.png :alt: Confusion matrix, without normalization :srcset: /auto_examples/model_selection/images/sphx_glr_plot_confusion_matrix_001.png :class: sphx-glr-multi-img * .. image-sg:: /auto_examples/model_selection/images/sphx_glr_plot_confusion_matrix_002.png :alt: Normalized confusion matrix :srcset: /auto_examples/model_selection/images/sphx_glr_plot_confusion_matrix_002.png :class: sphx-glr-multi-img .. rst-class:: sphx-glr-script-out .. code-block:: none Confusion matrix, without normalization [[13 0 0] [ 0 10 6] [ 0 0 9]] Normalized confusion matrix [[1. 0. 0. ] [0. 0.62 0.38] [0. 0. 1. ]] | .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, svm from sklearn.metrics import ConfusionMatrixDisplay from sklearn.model_selection import train_test_split # 导入一些数据来玩玩 iris = datasets.load_iris() X = iris.data y = iris.target class_names = iris.target_names # 将数据分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0) # 运行分类器,使用正则化过度的模型(C 值过低)以观察其对结果的影响 classifier = svm.SVC(kernel="linear", C=0.01).fit(X_train, y_train) np.set_printoptions(precision=2) # 绘制未归一化的混淆矩阵 titles_options = [ ("Confusion matrix, without normalization", None), ("Normalized confusion matrix", "true"), ] for title, normalize in titles_options: disp = ConfusionMatrixDisplay.from_estimator( classifier, X_test, y_test, display_labels=class_names, cmap=plt.cm.Blues, normalize=normalize, ) disp.ax_.set_title(title) print(title) print(disp.confusion_matrix) plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 0.092 seconds) .. _sphx_glr_download_auto_examples_model_selection_plot_confusion_matrix.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: binder-badge .. image:: images/binder_badge_logo.svg :target: https://mybinder.org/v2/gh/scikit-learn/scikit-learn/main?urlpath=lab/tree/notebooks/auto_examples/model_selection/plot_confusion_matrix.ipynb :alt: Launch binder :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_confusion_matrix.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_confusion_matrix.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_confusion_matrix.zip ` .. include:: plot_confusion_matrix.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_