DecisionBoundaryDisplay#
- class sklearn.inspection.DecisionBoundaryDisplay(*, xx0, xx1, response, multiclass_colors=None, xlabel=None, ylabel=None)[源代码]#
决策边界可视化。
建议使用
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,默认为 None
指定在绘制多类问题的所有类别时如何为每个类别着色。对于二元问题和在每个点绘制单个预测值时的多类问题,此参数将被忽略。可能的输入有:
list: Matplotlib 颜色字符串列表,长度为
n_classes
str:
matplotlib.colors.Colormap
的名称None: 使用 'viridis' 颜色映射来采样颜色
将从列表中或从颜色映射中获取的颜色生成单色颜色映射,并传递给
plot_method
的cmap
参数。在 1.7 版本中新增。
- xlabelstr,默认为 None
放置在 x 轴上的默认标签。
- ylabelstr,默认为 None
放置在 y 轴上的默认标签。
- 属性:
- surface_matplotlib
QuadContourSet
或QuadMesh
或此类对象的列表 如果
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
包含决策边界的图。
- surface_matplotlib
另请参阅
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()
- 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)[源代码]#
绘制给定估计器的决策边界。
在用户指南中了解更多信息。
- 参数:
- estimator对象
用于绘制决策边界的已训练估计器。
- X{类数组、稀疏矩阵、数据框},形状为 (n_samples, 2)
应为二维的输入数据。
- grid_resolutionint,默认为 100
用于绘制决策边界的网格点数量。值越高,绘图效果越好,但渲染速度会变慢。
- epsfloat,默认为 1.0
扩展 X 的最小值和最大值,用于评估响应函数。
- plot_method{‘contourf’, ‘contour’, ‘pcolormesh’},默认为 ‘contourf’
绘制响应时调用的绘图方法。有关详细信息,请参阅以下 Matplotlib 文档:
contourf
,contour
,pcolormesh
。- response_method{‘auto’, ‘decision_function’, ‘predict_proba’, ‘predict’},默认为 ‘auto’
指定是否使用 decision_function、predict_proba 或 predict 作为目标响应。如果设置为 ‘auto’,则按上述顺序尝试响应方法。
在 1.6 版本中更改: 对于多类问题,‘auto’ 不再默认为 ‘predict’。
- class_of_interestint, float, bool 或 str,默认为 None
当
response_method
为 ‘predict_proba’ 或 ‘decision_function’ 时要绘制的类别。如果为 None,则对于二元分类器,estimator.classes_[1]
被视为正类别。对于多类分类器,如果为 None,则所有类别都将在决策边界图中表示;绘制在每个点上具有最高响应值的类别。每个类别的颜色可以通过multiclass_colors
设置。在 1.4 版本中新增。
- multiclass_colorsstr 列表或 str,默认为 None
指定当绘制多类‘predict_proba’或‘decision_function’且
class_of_interest
为 None 时如何为每个类别着色。在所有其他情况下,此参数将被忽略。可能的输入有
list: Matplotlib 颜色字符串列表,长度为
n_classes
str:
matplotlib.colors.Colormap
的名称- None: 如果类别数量
小于或等于 10,则使用 ‘tab10’ 颜色映射来采样颜色,否则使用 ‘gist_rainbow’ 颜色映射。
将从列表中或从颜色映射中获取的颜色生成单色颜色映射,并传递给
plot_method
的cmap
参数。在 1.7 版本中新增。
- xlabelstr,默认为 None
用于 x 轴的标签。如果为
None
,则尝试从X
(如果它是数据框)中提取标签,否则使用空字符串。- ylabelstr,默认为 None
用于 y 轴的标签。如果为
None
,则尝试从X
(如果它是数据框)中提取标签,否则使用空字符串。- axMatplotlib 坐标轴,默认为 None
要绘制的坐标轴对象。如果为
None
,则会创建一个新的图形和坐标轴。- **kwargs字典
要传递给
plot_method
的额外关键字参数。
- 返回:
- display
DecisionBoundaryDisplay
存储结果的对象。
- display
另请参阅
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()
- plot(plot_method='contourf', ax=None, xlabel=None, ylabel=None, **kwargs)[源代码]#
绘制可视化结果。
- 参数:
- plot_method{‘contourf’, ‘contour’, ‘pcolormesh’},默认为 ‘contourf’
绘制响应时调用的绘图方法。有关详细信息,请参阅以下 Matplotlib 文档:
contourf
,contour
,pcolormesh
。- axMatplotlib 坐标轴,默认为 None
要绘制的坐标轴对象。如果为
None
,则会创建一个新的图形和坐标轴。- xlabelstr,默认为 None
覆盖 x 轴标签。
- ylabelstr,默认为 None
覆盖 y 轴标签。
- **kwargs字典
要传递给
plot_method
的额外关键字参数。
- 返回:
- display:
DecisionBoundaryDisplay
存储计算值的对象。
- display: