DecisionBoundaryDisplay#

class sklearn.inspection.DecisionBoundaryDisplay(*, xx0, xx1, response, multiclass_colors=None, xlabel=None, ylabel=None)[source]#

决策边界可视化。

建议使用 from_estimator 来创建 DecisionBoundaryDisplay。所有参数都存储为属性。

用户指南 中阅读更多内容。

有关比较多项式和一对多逻辑回归决策边界的详细示例,请参阅 多项式和一对多逻辑回归的决策边界

版本 1.1 中新增。

参数:
xx0形状为 (grid_resolution, grid_resolution) 的 ndarray

meshgrid 的第一个输出。

xx1形状为 (grid_resolution, grid_resolution) 的 ndarray

meshgrid 的第二个输出。

response形状为 (grid_resolution, grid_resolution) 或 (grid_resolution, grid_resolution, n_classes) 的 ndarray

响应函数的值。

multiclass_colorsstr 或 str 列表, default=None

指定在绘制多类别问题的所有类别时如何为每个类别着色。对于二元问题和每个点只绘制一个预测值的多类别问题,此参数将被忽略。可能的输入包括

将从列表中的颜色或从色彩映射表中获取的颜色生成单色色彩映射表,并将其传递给 plot_methodcmap 参数。

在版本 1.7 中新增。

xlabelstr, default=None

放置在 x 轴上的默认标签。

ylabelstr, default=None

放置在 y 轴上的默认标签。

属性:
surface_matplotlib QuadContourSetQuadMesh 或此类对象的列表

如果 plot_method 是 'contour' 或 'contourf',则 surface_QuadContourSet。如果 plot_method 是 'pcolormesh',则 surface_QuadMesh

multiclass_colors_形状为 (n_classes, 4) 的数组

用于绘制多类别问题中每个类别的颜色。仅在 color_of_interest 为 None 时定义。

在版本 1.7 中新增。

ax_matplotlib Axes

带有决策边界的坐标轴。

figure_matplotlib Figure

包含决策边界的图。

另请参阅

DecisionBoundaryDisplay.from_estimator

给定估计器,绘制决策边界。

示例

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> from sklearn.datasets import load_iris
>>> from sklearn.inspection import DecisionBoundaryDisplay
>>> from sklearn.tree import DecisionTreeClassifier
>>> iris = load_iris()
>>> feature_1, feature_2 = np.meshgrid(
...     np.linspace(iris.data[:, 0].min(), iris.data[:, 0].max()),
...     np.linspace(iris.data[:, 1].min(), iris.data[:, 1].max())
... )
>>> grid = np.vstack([feature_1.ravel(), feature_2.ravel()]).T
>>> tree = DecisionTreeClassifier().fit(iris.data[:, :2], iris.target)
>>> y_pred = np.reshape(tree.predict(grid), feature_1.shape)
>>> display = DecisionBoundaryDisplay(
...     xx0=feature_1, xx1=feature_2, response=y_pred
... )
>>> display.plot()
<...>
>>> display.ax_.scatter(
...     iris.data[:, 0], iris.data[:, 1], c=iris.target, edgecolor="black"
... )
<...>
>>> plt.show()
../../_images/sklearn-inspection-DecisionBoundaryDisplay-1.png
classmethod from_estimator(estimator, X, *, grid_resolution=100, eps=1.0, plot_method='contourf', response_method='auto', class_of_interest=None, multiclass_colors=None, xlabel=None, ylabel=None, ax=None, **kwargs)[source]#

给定估计器,绘制决策边界。

用户指南 中阅读更多内容。

参数:
estimatorobject

用于绘制决策边界的已训练估计器。

X形状为 (n_samples, 2) 的 {array-like, sparse matrix, dataframe}

输入数据,应仅为 2 维。

grid_resolutionint, default=100

用于绘制决策边界的网格点数量。值越高,图表看起来越美观,但渲染速度越慢。

epsfloat, default=1.0

扩展 X 的最小值和最大值以评估响应函数。

plot_method{‘contourf’, ‘contour’, ‘pcolormesh’}, default=’contourf’

绘制响应时调用的绘图方法。有关详细信息,请参阅以下 matplotlib 文档:contourf, contour, pcolormesh

response_method{‘auto’, ‘decision_function’, ‘predict_proba’, ‘predict’}, default=’auto’

指定是使用 decision_functionpredict_proba 还是 predict 作为目标响应。如果设置为 'auto',则按照上面列出的顺序尝试响应方法。

版本 1.6 中的更改: 对于多类别问题,'auto' 不再默认为 'predict'。

class_of_interestint, float, bool or str, default=None

response_method 为 'predict_proba' 或 'decision_function' 时要绘制的类别。如果为 None,则对于二元分类器,estimator.classes_[1] 被视为正类别。对于多类别分类器,如果为 None,则所有类别都将显示在决策边界图中;每个点上具有最高响应值的类别将被绘制。每个类别的颜色可以通过 multiclass_colors 设置。

1.4 版本新增。

multiclass_colorslist of str, or str, default=None

指定当绘制多类别 'predict_proba' 或 'decision_function' 且 class_of_interest 为 None 时如何为每个类别着色。在所有其他情况下被忽略。

可能的输入包括

  • list: Matplotlib 颜色 字符串列表,长度为 n_classes

  • str: matplotlib.colors.Colormap 的名称

  • None: 如果类别数小于或等于 10,则使用 'tab10' 色彩映射表采样颜色,

    否则使用 'gist_rainbow' 色彩映射表。

将从列表中的颜色或从色彩映射表中获取的颜色生成单色色彩映射表,并将其传递给 plot_methodcmap 参数。

在版本 1.7 中新增。

xlabelstr, default=None

用于 x 轴的标签。如果为 None,则尝试从 X 中提取标签(如果它是 dataframe),否则使用空字符串。

ylabelstr, default=None

用于 y 轴的标签。如果为 None,则尝试从 X 中提取标签(如果它是 dataframe),否则使用空字符串。

axMatplotlib axes, default=None

绘图的坐标轴对象。如果为 None,则会创建新的图和坐标轴。

**kwargsdict

传递给 plot_method 的额外关键字参数。

返回:
displayDecisionBoundaryDisplay

存储结果的对象。

另请参阅

DecisionBoundaryDisplay

决策边界可视化。

sklearn.metrics.ConfusionMatrixDisplay.from_estimator

给定估计器、数据和标签,绘制混淆矩阵。

sklearn.metrics.ConfusionMatrixDisplay.from_predictions

给定真实标签和预测标签,绘制混淆矩阵。

示例

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import load_iris
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.inspection import DecisionBoundaryDisplay
>>> iris = load_iris()
>>> X = iris.data[:, :2]
>>> classifier = LogisticRegression().fit(X, iris.target)
>>> disp = DecisionBoundaryDisplay.from_estimator(
...     classifier, X, response_method="predict",
...     xlabel=iris.feature_names[0], ylabel=iris.feature_names[1],
...     alpha=0.5,
... )
>>> disp.ax_.scatter(X[:, 0], X[:, 1], c=iris.target, edgecolor="k")
<...>
>>> plt.show()
../../_images/sklearn-inspection-DecisionBoundaryDisplay-2.png
plot(plot_method='contourf', ax=None, xlabel=None, ylabel=None, **kwargs)[source]#

绘制可视化结果。

参数:
plot_method{‘contourf’, ‘contour’, ‘pcolormesh’}, default=’contourf’

绘制响应时调用的绘图方法。有关详细信息,请参阅以下 matplotlib 文档:contourf, contour, pcolormesh

axMatplotlib axes, default=None

绘图的坐标轴对象。如果为 None,则会创建新的图和坐标轴。

xlabelstr, default=None

覆盖 x 轴标签。

ylabelstr, default=None

覆盖 y 轴标签。

**kwargsdict

传递给 plot_method 的额外关键字参数。

返回:
display: DecisionBoundaryDisplay

存储计算值的对象。