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.05, 0.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_)
警告:对于GradientBoostingClassifier
和 GradientBoostingRegressor
,“recursion”方法(默认使用)将不考虑提升过程的init
预测因子。实际上,init
是常量估计器(默认),这将产生与“brute”相同的值,直到目标响应中的偏移量恒定。但是,如果init
不是常量估计量,则部分相关性值对于“recursion”是不正确的,因为偏移量将取决于样本。最好使用“brute”方法。请注意,这仅适用于 GradientBoostingClassifier
和 GradientBoostingRegressor
,不适用于 HistGradientBoostingClassifier
和 HistGradientBoostingRegressor
。
参数 | 说明 |
---|---|
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”只支持一些基于树的估计(即 GradientBoostingClassifier , GradientBoostingRegressor , HistGradientBoostingClassifier , HistGradientBoostingRegressor , DecisionTreeRegressor , RandomForestRegressor 但在速度方面更有效率。通过这种方法,分类的目标响应始终是决策函数,而不是预测的概率。- '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 |
另见
sklearn.inspection.partial_dependence
返回原始的部分依赖值
示例
>>> 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, (0, 1)]) #doctest: +SKIP