sklearn.inspection.plot_partial_dependence

sklearn.inspection.plot_partial_dependence(estimator, X, features, *, feature_names=None, target=None, response_method='auto', n_cols=3, grid_resolution=100, percentiles=(0.050.95), method='auto', n_jobs=None, verbose=0, fig=None, line_kw=None, contour_kw=None, ax=None)

部分依赖图。

这些len(features)图以带n_cols 列的网格形式排列。双向偏相关图被绘制为等高线图。对于单向绘图,特征值的十分位数将在刻度上显示刻度线,对于双向绘图,将在两个轴上显示刻度线。

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

注意:plot_partial_dependence不支持在多个调用中使用相同的轴。要绘制多个估计量的偏相关性,请将第一个调用创建的轴传递给第二个调用:

>>> from sklearn.inspection import plot_partial_dependence
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.linear_model import LinearRegression
>>> X, y = make_friedman1()
>>> est = LinearRegression().fit(X, y)
>>> disp1 = plot_partial_dependence(est, X)  
>>> disp2 = plot_partial_dependence(est, X,
...                                 ax=disp1.axes_)  

警告:对于GradientBoostingClassifierGradientBoostingRegressor,“recursion”方法(默认使用)将不考虑提升过程的init预测因子。实际上,init是常量估计器(默认),这将产生与“brute”相同的值,直到目标响应中的偏移量恒定。但是,如果init不是常量估计量,则部分相关性值对于“recursion”是不正确的,因为偏移量将取决于样本。最好使用“brute”方法。请注意,这仅适用于 GradientBoostingClassifierGradientBoostingRegressor,不适用于 HistGradientBoostingClassifierHistGradientBoostingRegressor

参数 说明
estimator BaseEstimator
一个合适的估计对象,实现了预测预测决策函数。不支持多输出多类分类器。
X {array-like or dataframe} of shape (n_samples, n_features)
X用于为目标features(其中部分依赖将被评估)生成一个值网格,也用于在method为‘brute’时为补充特征生成值。
features list of {int, str, pair of int, pair of str}
要为其创建PDP的目标特征。如果features [i]是一个int或字符串,则将创建一个单向PDP;如果features [i]是一个元组,则会创建一个双向PDP。每个元组的大小必须为2。如果传入的是字符串,则它必须在feature_names中。
feature_names array-like of shape (n_features,), dtype=str, default=None
每个特征的名称;feature_names [i]保存索引为i的特征名称。默认情况下,特征的名称对应于NumPy数组的数字索引和pandas数据框的列名称。
target int, optional (default=None)
- 在多类设置中,指定应为其计算PDP的类。请注意,对于二进制分类,始终使用正类(索引为1)。
- 在多输出设置中,指定应为其计算PDP的任务。

在二进制分类或经典回归设置中被忽略。
response_method ‘auto’, ‘predict_proba’ or ‘decision_function’, optional (default=’auto’)
指定是使用predict_proba还是 decision_function作为目标响应。对于回归变量,将忽略此参数,并且响应始终是预测的输出 。默认情况下,最先尝试使用predict_proba,如果不存在,将恢复为decision_function。如果 method是“recursion”,响应输出总是 decision_function
n_cols int, optional (default=3)
网格图中的最大列数。仅在ax 为单轴或None时有效。
grid_resolution int, optional (default=100)
对于每个目标特征,在绘图轴上等距的点数。
percentiles tuple of float, optional (default=(0.05, 0.95))
上下百分比,用于为PDP轴创建极值。必须在[0,1]中。
method str, optional (default=’auto’)
用于计算平均预测的方法:

- “recursion”只支持一些基于树的估计(即 GradientBoostingClassifierGradientBoostingRegressorHistGradientBoostingClassifierHistGradientBoostingRegressorDecisionTreeRegressorRandomForestRegressor 但在速度方面更有效率。通过这种方法,分类的目标响应始终是决策函数,而不是预测的概率。

- 'brute' 任何估算器均支持,但计算量更大。
- 'auto':'recursion'用于支持它的估计器,否则使用'brute'。

请参阅此注释,以了解“brute”和“recursion”方法之间的区别。
n_jobs int, optional (default=None)
用于计算部分依赖关系的CPU数量。 除非上下文中设置了joblib.parallel_backend,否则None表示1 。 -1表示使用所有处理器。有关更多详细信息,请参见词汇表
verbose int, optional (default=0)
PD计算期间的输出详细程度。
fig Matplotlib figure object, optional (default=None)
一个图形对象,在图形被清除后,将在其上绘制图形。默认情况下,会创建一个新的。

自0.22版本起已弃用:fig将在0.24中删除。
line_kw dict, optional
对于单向偏相关图,包含传递给matplotlib.pyplot.plot的关键字字典。
contour_kw dict, optional
对于双向部分依赖图,包含传递给matplotlib.pyplot.contourf的关键字字典。
ax Matplotlib axes or array-like of Matplotlib axes, default=None
- 如果传入单个轴,则将其视为边界轴,并在这些边界内绘制部分依赖图网格。n_cols参数控制网格中的列数。
- 如果传入一个类数组的轴,则部分依赖图将直接绘制到这些轴中。
- 如果None,则创建图形和边界轴,并将其视为单轴情况。
返回值 说明
display PartialDependenceDisplay

另见

示例

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.ensemble import GradientBoostingRegressor
>>> X, y = make_friedman1()
>>> clf = GradientBoostingRegressor(n_estimators=10).fit(X, y)
>>> plot_partial_dependence(clf, X, [0, (01)]) #doctest: +SKIP