本文简要介绍python语言中 sklearn.inspection.PartialDependenceDisplay.from_estimator
的用法。
用法:
classmethod from_estimator(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)
部分依赖 (PD) 和个体条件期望 (ICE) 图。
通过设置
kind
参数,可以绘制部分依赖图、单独条件期望图或两者的叠加。len(features)
绘图排列在带有n_cols
列的网格中。双向部分相关图绘制为等高线图。对于 one-way 图,特征值的十分位数将在 x 轴上显示为刻度线,对于双向图,特征值的十分位数将在两个轴上显示为刻度线。在用户指南中阅读更多信息。
注意
PartialDependenceDisplay.from_estimator
不支持多次调用使用相同的轴。要绘制多个估算器的部分依赖性,请将第一次调用创建的轴传递给第二次调用:>>> from sklearn.inspection import PartialDependenceDisplay >>> 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 = PartialDependenceDisplay.from_estimator(est1, X, ... [1, 2]) >>> disp2 = PartialDependenceDisplay.from_estimator(est2, X, [1, 2], ... ax=disp1.axes_)
警告
对于
GradientBoostingClassifier
和GradientBoostingRegressor
,'recursion'
方法(默认使用)将不考虑提升过程的init
预测器。在实践中,这将产生与'brute'
相同的值,直到目标响应中的恒定偏移量,前提是init
是一个常数估计器(这是默认值)。但是,如果init
不是常数估计量,则'recursion'
的部分相关值不正确,因为偏移量将为 sample-dependent。最好使用'brute'
方法。请注意,这仅适用于GradientBoostingClassifier
和GradientBoostingRegressor
,不适用于HistGradientBoostingClassifier
和HistGradientBoostingRegressor
。- estimator:BaseEstimator
实现预测、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] 中。
- method:str,默认='自动'
用于计算平均预测的方法:
'recursion'
仅支持一些基于树的估计器(即GradientBoostingClassifier
,GradientBoostingRegressor
,HistGradientBoostingClassifier
,HistGradientBoostingRegressor
,DecisionTreeRegressor
,RandomForestRegressor
但在速度方面更有效。使用这种方法,分类器的目标响应始终是决策函数,而不是预测概率。由于'recursion'
方法通过设计隐式计算 ICE 的平均值,因此它与 ICE 不兼容,因此kind
必须是'average'
。- 任何估计器都支持
'brute'
,但计算量更大。 'auto'
:'recursion'
用于支持它的估计器,否则使用'brute'
。
请参阅此注释了解
'brute'
和'recursion'
方法之间的差异。- n_jobs:整数,默认=无
用于计算部分依赖关系的 CPU 数量。计算在
features
参数指定的特征上进行并行化。None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有处理器。有关详细信息,请参阅词汇表。- verbose:整数,默认=0
PD 计算期间的详细输出。
- line_kw:字典,默认=无
带有传递给
matplotlib.pyplot.plot
调用的关键字的字典。对于one-way 部分依赖图。它可用于定义ice_lines_kw
和pdp_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
调用的关键字的字典。对于双向部分依赖图。- ax:Matplotlib 轴或类似数组的 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_state:int、RandomState 实例或无,默认=无
当子样本不是
None
并且kind
是'both'
或'individual'
时,控制所选样本的随机性。有关详细信息,请参阅词汇表。
- display:
PartialDependenceDisplay
- display:
参数:
返回:
例子:
>>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_friedman1 >>> from sklearn.ensemble import GradientBoostingRegressor >>> from sklearn.inspection import PartialDependenceDisplay >>> X, y = make_friedman1() >>> clf = GradientBoostingRegressor(n_estimators=10).fit(X, y) >>> PartialDependenceDisplay.from_estimator(clf, X, [0, (0, 1)]) <...> >>> plt.show()
相关用法
- Python sklearn ParameterGrid用法及代码示例
- Python sklearn ParameterSampler用法及代码示例
- Python sklearn PatchExtractor用法及代码示例
- Python sklearn PassiveAggressiveClassifier用法及代码示例
- Python sklearn PairwiseKernel用法及代码示例
- Python sklearn PassiveAggressiveRegressor用法及代码示例
- Python sklearn PowerTransformer.inverse_transform用法及代码示例
- Python sklearn PredefinedSplit用法及代码示例
- Python sklearn PolynomialFeatures用法及代码示例
- Python sklearn Product用法及代码示例
- Python sklearn PLSRegression用法及代码示例
- Python sklearn PrecisionRecallDisplay.from_predictions用法及代码示例
- Python sklearn PrecisionRecallDisplay用法及代码示例
- Python sklearn PCA用法及代码示例
- Python sklearn PrecisionRecallDisplay.from_estimator用法及代码示例
- Python sklearn Perceptron用法及代码示例
- Python sklearn PLSSVD用法及代码示例
- Python sklearn PLSCanonical用法及代码示例
- Python sklearn Pipeline用法及代码示例
- Python sklearn PowerTransformer用法及代码示例
- Python sklearn PolynomialCountSketch用法及代码示例
- Python sklearn PoissonRegressor用法及代码示例
- Python sklearn jaccard_score用法及代码示例
- Python sklearn WhiteKernel用法及代码示例
- Python sklearn CalibrationDisplay.from_predictions用法及代码示例
注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.inspection.PartialDependenceDisplay.from_estimator。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。