partial_dependence#

sklearn.inspection.partial_dependence(estimator, X, features, *, sample_weight=None, categorical_features=None, feature_names=None, response_method='auto', percentiles=(0.05, 0.95), grid_resolution=100, custom_values=None, method='auto', kind='average')[source]#

features 的部分依赖性。

特征(或一组特征)的偏依赖性对应于估算器对于该特征的每个可能值的平均响应。

偏依赖性图和个体条件期望图用户指南中阅读更多内容。

警告

对于GradientBoostingClassifierGradientBoostingRegressor'recursion'方法(默认使用)将不考虑提升过程的init预测器。实际上,只要init是常数估计器(默认),这将产生与'brute'相同的值,只是目标响应中存在一个常数偏移。但是,如果init不是常数估计器,则'recursion'的偏依赖性值是不正确的,因为偏移将取决于样本。最好使用'brute'方法。请注意,这仅适用于GradientBoostingClassifierGradientBoostingRegressor,不适用于HistGradientBoostingClassifierHistGradientBoostingRegressor

参数:
estimatorBaseEstimator

一个已拟合的估算器对象,实现了predictpredict_probadecision_function。不支持多输出多分类分类器。

X{array-like, sparse matrix or dataframe} 形状为 (n_samples, n_features)

X用于为目标features生成值网格(将在此处评估偏依赖性),并在method为“brute”时,用于为补充特征生成值。

featuresarray-like of {int, str, bool} 或 int 或 str

要计算偏依赖性的特征(例如[0])或交互特征对(例如[(0, 1)])。

sample_weightshape 为 (n_samples,) 的 array-like, default=None

样本权重用于在对模型输出进行平均时计算加权平均值。如果为None,则样本权重相等。如果sample_weight不为None,则method将设置为'brute'。请注意,对于kind='individual'sample_weight将被忽略。

在版本 1.3 中新增。

categorical_features形状为 (n_features,) 或 (n_categorical_features,) 的 array-like,dtype={bool, int, str},默认值为 None

指示类别特征。

  • None:不考虑任何特征为类别型;

  • 布尔型 array-like:形状为(n_features,)的布尔掩码,

    指示哪些特征是类别型。因此,此数组的形状与X.shape[1]相同;

  • 整数或字符串 array-like:整数索引或字符串,

    指示类别型特征。

1.2 版本新增。

feature_names形状为 (n_features,) 的 array-like,dtype=str,默认值为 None

每个特征的名称;feature_names[i]保存索引为i的特征的名称。默认情况下,NumPy 数组的特征名称对应于其数值索引,而 pandas 数据帧的特征名称对应于其列名。

1.2 版本新增。

response_method{‘auto’, ‘predict_proba’, ‘decision_function’},默认值为 ‘auto’

指定是使用predict_proba还是decision_function作为目标响应。对于回归器,此参数被忽略,响应始终是predict的输出。默认情况下,首先尝试predict_proba,如果不存在,则返回到decision_function。如果method为“recursion”,则响应始终是decision_function的输出。

percentiles浮点数元组,默认值为 (0.05, 0.95)

用于创建网格极值的下百分位数和上百分位数。必须在 [0, 1] 范围内。如果设置了custom_values参数,则此参数将被覆盖。

grid_resolutionint, default=100

网格上每个目标特征的等间距点的数量。如果设置了custom_values参数,则此参数将被覆盖。

custom_valuesdict

一个字典,将features元素的索引映射到一个值数组,该数组表示应为该特征计算偏依赖性的值。为特征设置一个值范围会覆盖grid_resolutionpercentiles

请参阅如何使用 partial_dependence以获取此参数如何使用的示例。

在版本 1.7 中新增。

method{‘auto’, ‘recursion’, ‘brute’},默认值为 ‘auto’

用于计算平均预测的方法

请参阅此说明以了解'brute''recursion'方法之间的差异。

kind{‘average’, ‘individual’, ‘both’},默认值为 ‘average’

是否返回数据集中所有样本的平均偏依赖性、每个样本一个值或两者。参见下方的返回部分。

请注意,快速的method='recursion'选项仅适用于kind='average'sample_weights=None。计算个体依赖性和执行加权平均需要使用较慢的method='brute'

0.24 版本新增。

返回:
predictionsBunch

Dictionary-like object, with the following attributes.

individual形状为 (n_outputs, n_instances, len(values[0]), len(values[1]), …) 的 ndarray

X 中所有样本在网格中所有点的预测值。这也称为个体条件期望 (ICE)。仅当kind='individual'kind='both'时可用。

average形状为 (n_outputs, len(values[0]), len(values[1]), …) 的 ndarray

网格中所有点的预测值,在 X 中所有样本(或训练数据,如果method是“recursion”)上平均。仅当kind='average'kind='both'时可用。

grid_values1d ndarray 序列

用于创建网格的值。生成的网格是grid_values中数组的笛卡尔积,其中len(grid_values) == len(features)grid_values[j]中每个数组的大小要么是grid_resolution,要么是X[:, j]中唯一值的数量,取两者中较小的一个。

在版本 1.3 中新增。

n_outputs对应于多分类设置中的类别数,或多输出回归任务的任务数。对于经典回归和二元分类,n_outputs==1n_values_feature_j对应于grid_values[j]的大小。

另请参阅

PartialDependenceDisplay.from_estimator

绘制偏依赖性。

PartialDependenceDisplay

偏依赖性可视化。

示例

>>> X = [[0, 0, 2], [1, 0, 0]]
>>> y = [0, 1]
>>> from sklearn.ensemble import GradientBoostingClassifier
>>> gb = GradientBoostingClassifier(random_state=0).fit(X, y)
>>> partial_dependence(gb, features=[0], X=X, percentiles=(0, 1),
...                    grid_resolution=2)
(array([[-4.52,  4.52]]), [array([ 0.,  1.])])