.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "auto_examples/classification/plot_classification_probability.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end <sphx_glr_download_auto_examples_classification_plot_classification_probability.py>` 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_classification_plot_classification_probability.py: =============================== 绘制分类概率 =============================== 绘制ä¸åŒåˆ†ç±»å™¨çš„分类概率。我们使用一个包å«3个类别的数æ®é›†ï¼Œå¹¶ä½¿ç”¨æ”¯æŒå‘é‡åˆ†ç±»å™¨ã€L1å’ŒL2惩罚的逻辑回归(多项å¼å¤šç±»ï¼‰ã€åŸºäºŽé€»è¾‘回归的一对多版本以åŠé«˜æ–¯è¿‡ç¨‹åˆ†ç±»æ¥å¯¹å…¶è¿›è¡Œåˆ†ç±»ã€‚ 线性SVCé»˜è®¤ä¸æ˜¯ä¸€ä¸ªæ¦‚率分类器,但在æ¤ç¤ºä¾‹ä¸å¯ç”¨äº†å†…ç½®æ ¡å‡†é€‰é¡¹ï¼ˆ `probability=True` )。 ä¸€å¯¹å¤šé€»è¾‘å›žå½’é»˜è®¤ä¸æ˜¯ä¸€ä¸ªå¤šç±»åˆ†ç±»å™¨ã€‚å› æ¤ï¼Œå®ƒåœ¨åŒºåˆ†ç±»åˆ«2和类别3时比其他估计器更困难。 .. GENERATED FROM PYTHON SOURCE LINES 13-90 .. image-sg:: /auto_examples/classification/images/sphx_glr_plot_classification_probability_001.png :alt: Class 0, Class 1, Class 2, Class 0, Class 1, Class 2, Class 0, Class 1, Class 2, Class 0, Class 1, Class 2, Class 0, Class 1, Class 2, Probability :srcset: /auto_examples/classification/images/sphx_glr_plot_classification_probability_001.png :class: sphx-glr-single-img .. rst-class:: sphx-glr-script-out .. code-block:: none Accuracy (train) for L1 logistic: 83.3% Accuracy (train) for L2 logistic (Multinomial): 82.7% Accuracy (train) for L2 logistic (OvR): 79.3% Accuracy (train) for Linear SVC: 82.0% Accuracy (train) for GPC: 82.7% | .. code-block:: Python # 作者:scikit-learn å¼€å‘者 # SPDX-License-Identifier:BSD-3-Clause import matplotlib.pyplot as plt import numpy as np from matplotlib import cm from sklearn import datasets from sklearn.gaussian_process import GaussianProcessClassifier from sklearn.gaussian_process.kernels import RBF from sklearn.inspection import DecisionBoundaryDisplay from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score from sklearn.multiclass import OneVsRestClassifier from sklearn.svm import SVC iris = datasets.load_iris() X = iris.data[:, 0:2] # we only take the first two features for visualization y = iris.target n_features = X.shape[1] C = 10 kernel = 1.0 * RBF([1.0, 1.0]) # for GPC # 创建ä¸åŒçš„分类器。 classifiers = { "L1 logistic": LogisticRegression(C=C, penalty="l1", solver="saga", max_iter=10000), "L2 logistic (Multinomial)": LogisticRegression( C=C, penalty="l2", solver="saga", max_iter=10000 ), "L2 logistic (OvR)": OneVsRestClassifier( LogisticRegression(C=C, penalty="l2", solver="saga", max_iter=10000) ), "Linear SVC": SVC(kernel="linear", C=C, probability=True, random_state=0), "GPC": GaussianProcessClassifier(kernel), } n_classifiers = len(classifiers) fig, axes = plt.subplots( nrows=n_classifiers, ncols=len(iris.target_names), figsize=(3 * 2, n_classifiers * 2), ) for classifier_idx, (name, classifier) in enumerate(classifiers.items()): y_pred = classifier.fit(X, y).predict(X) accuracy = accuracy_score(y, y_pred) print(f"Accuracy (train) for {name}: {accuracy:0.1%}") for label in np.unique(y): # 绘制分类器æä¾›çš„æ¦‚率估计 disp = DecisionBoundaryDisplay.from_estimator( classifier, X, response_method="predict_proba", class_of_interest=label, ax=axes[classifier_idx, label], vmin=0, vmax=1, ) axes[classifier_idx, label].set_title(f"Class {label}") # ç»˜åˆ¶é¢„æµ‹å±žäºŽç»™å®šç±»åˆ«çš„æ•°æ® mask_y_pred = y_pred == label axes[classifier_idx, label].scatter( X[mask_y_pred, 0], X[mask_y_pred, 1], marker="o", c="w", edgecolor="k" ) axes[classifier_idx, label].set(xticks=(), yticks=()) axes[classifier_idx, 0].set_ylabel(name) ax = plt.axes([0.15, 0.04, 0.7, 0.02]) plt.title("Probability") _ = plt.colorbar( cm.ScalarMappable(norm=None, cmap="viridis"), cax=ax, orientation="horizontal" ) plt.show() .. rst-class:: sphx-glr-timing **Total running time of the script:** (0 minutes 4.540 seconds) .. _sphx_glr_download_auto_examples_classification_plot_classification_probability.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/classification/plot_classification_probability.ipynb :alt: Launch binder :width: 150 px .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_classification_probability.ipynb <plot_classification_probability.ipynb>` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_classification_probability.py <plot_classification_probability.py>` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: plot_classification_probability.zip <plot_classification_probability.zip>` .. include:: plot_classification_probability.recommendations .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_