当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn plot_partial_dependence用法及代码示例


本文简要介绍python语言中 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, line_kw=None, ice_lines_kw=None, pd_line_kw=None, contour_kw=None, ax=None, kind='average', subsample=1000, random_state=None)

已弃用:函数 plot_partial_dependence 在 1.0 中已弃用,并将在 1.2 中删除。改用 PartialDependenceDisplay.from_estimator

部分依赖 (PD) 和个体条件期望 (ICE) 图。

通过设置 kind 参数,可以绘制部分依赖图、单独条件期望图或两者的叠加。 len(features) 绘图排列在带有 n_cols 列的网格中。双向部分相关图绘制为等高线图。对于 one-way 图,特征值的十分位数将在 x 轴上显示为刻度线,对于双向图,特征值的十分位数将在两个轴上显示为刻度线。

在用户指南中阅读更多信息。

注意

plot_partial_dependence 不支持多次调用使用相同的轴。要绘制多个估算器的部分依赖性,请将第一次调用创建的轴传递给第二次调用:

>>> from sklearn.inspection import plot_partial_dependence
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.linear_model import LinearRegression
>>> from sklearn.ensemble import RandomForestRegressor
>>> X, y = make_friedman1()
>>> est1 = LinearRegression().fit(X, y)
>>> est2 = RandomForestRegressor().fit(X, y)
>>> disp1 = plot_partial_dependence(est1, X,
...                                 [1, 2])  
>>> disp2 = plot_partial_dependence(est2, X, [1, 2],
...                                 ax=disp1.axes_)

警告

对于 GradientBoostingClassifier GradientBoostingRegressor 'recursion' 方法(默认使用)将不考虑提升过程的 init 预测器。在实践中,这将产生与 'brute' 相同的值,直到目标响应中的恒定偏移量,前提是 init 是一个常数估计器(这是默认值)。但是,如果 init 不是常数估计量,则 'recursion' 的部分相关值不正确,因为偏移量将为 sample-dependent。最好使用'brute' 方法。请注意,这仅适用于 GradientBoostingClassifier GradientBoostingRegressor ,不适用于 HistGradientBoostingClassifier HistGradientBoostingRegressor

参数

estimatorBaseEstimator

实现预测、predict_proba 或 decision_function 的拟合估计器对象。不支持Multioutput-multiclass 分类器。

X{类数组, DataFrame },形状为 (n_samples, n_features)

X 用于为目标 features 生成值网格(将评估部分依赖性),并在 method'brute' 时生成补充特征的值。

features{int,str,int 对,str 对} 的列表

要为其创建 PDP 的目标函数。如果features[i]是整数或字符串,则创建one-way PDP;如果 features[i] 是一个元组,则创建双向 PDP(仅支持 kind='average' )。每个元组的大小必须为 2。如果任何条目是字符串,则它必须位于 feature_names 中。

feature_names形状类似数组 (n_features,),dtype=str,默认=None

每个函数的名称; feature_names[i] 包含索引为 i 的特征的名称。默认情况下,特征的名称对应于 NumPy 数组的数字索引和 pandas DataFrame 的列名。

target整数,默认=无
  • 在多类设置中,指定应计算 PDP 的类。请注意,对于二元分类,始终使用正类(索引 1)。
  • 在多输出设置中,指定应为其计算 PDP 的任务。

在二元分类或经典回归设置中被忽略。

response_method{‘auto’, ‘predict_proba’,‘decision_function’},默认='自动'

指定是使用predict_proba 还是decision_function 作为目标响应。对于回归器,此参数被忽略,响应始终是预测的输出。默认情况下,首先尝试predict_proba,如果不存在,我们将恢复为decision_function。如果 method'recursion' ,则响应始终是 decision_function 的输出。

n_cols整数,默认=3

网格图中的最大列数。仅当 ax 是单轴或 None 时才有效。

grid_resolution整数,默认=100

对于每个目标特征,图轴上等距点的数量。

percentiles浮点元组,默认=(0.05, 0.95)

用于为 PDP 轴创建极值的下百分位数和上百分位数。必须在 [0, 1] 中。

methodstr,默认='自动'

用于计算平均预测的方法:

请参阅此注释了解'brute''recursion' 方法之间的差异。

n_jobs整数,默认=无

用于计算部分依赖关系的 CPU 数量。计算在 features 参数指定的特征上进行并行化。

None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关详细信息,请参阅词汇表。

verbose整数,默认=0

PD 计算期间的详细输出。

line_kw字典,默认=无

带有传递给 matplotlib.pyplot.plot 调用的关键字的字典。对于one-way 部分依赖图。它可用于定义 ice_lines_kwpdp_line_kw 的通用属性。

ice_lines_kw字典,默认=无

带有传递给 matplotlib.pyplot.plot 调用的关键字的字典。对于one-way 部分依赖图中的 ICE 线。 ice_lines_kw 中定义的键值对优先于 line_kw

pd_line_kw字典,默认=无

带有传递给 matplotlib.pyplot.plot 调用的关键字的字典。对于one-way 部分依赖图中的部分依赖。 pd_line_kw 中定义的键值对优先于 line_kw

contour_kw字典,默认=无

带有传递给 matplotlib.pyplot.contourf 调用的关键字的字典。对于双向部分依赖图。

axMatplotlib 轴或类似数组的 Matplotlib 轴,默认=无
  • 如果传入单个轴,则将其视为边界轴,并且将在这些边界内绘制部分依赖图的网格。 n_cols 参数控制网格中的列数。
  • 如果传入类似数组的轴,则部分相关图将直接绘制到这些轴中。
  • 如果 None ,则创建图形和边界轴并将其视为单轴情况。
kind{‘average’, ‘individual’, ‘both’},默认='平均'

是绘制数据集中所有样本的平均部分依赖关系,还是每个样本一行或两者都绘制。

  • kind='average'导致传统的PD图;

  • kind='individual' 生成 ICE 图。

请注意,快速 method='recursion' 选项仅适用于 kind='average' 。绘制单个依赖项需要使用较慢的 method='brute' 选项。

subsample浮点数,int 或无,默认 = 1000

kind为‘individual’或‘both’时对ICE曲线进行采样。如果是 float ,则应介于 0.0 和 1.0 之间,并表示用于绘制 ICE 曲线的数据集的比例。如果 int ,表示要使用的绝对样本数。

请注意,当 kind='both' 时,仍使用完整数据集来计算平均部分依赖。

random_stateint、RandomState 实例或无,默认=无

当子样本不是 None 并且 kind'both''individual' 时,控制所选样本的随机性。有关详细信息,请参阅词汇表。

返回

displayPartialDependenceDisplay

例子

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.ensemble import GradientBoostingRegressor
>>> from sklearn.inspection import plot_partial_dependence
>>> X, y = make_friedman1()
>>> clf = GradientBoostingRegressor(n_estimators=10).fit(X, y)
>>> plot_partial_dependence(clf, X, [0, (0, 1)])  
<...>
>>> plt.show()
sklearn-inspection-plot_partial_dependence-1.png

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.inspection.plot_partial_dependence。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。