偏依赖#

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, method='auto', kind='average')[source]#

特征的偏依赖。features

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

更多详情请参阅 用户指南

警告

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

参数:
estimatorBaseEstimator

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

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

X 用于为目标 features(将在其中评估偏依赖性)生成一系列值,并在 method 为 ‘brute’ 时生成补充特征的值。

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

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

sample_weight形状为 (n_samples,) 的 array-like,默认为 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,),dtype=str 的 array-like,默认为 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] 之间。

grid_resolutionint,默认为 100

每个目标特征上等距点的数量。

method{'auto', 'recursion', 'brute'},默认为 'auto'

用于计算平均预测值的方法。

有关'brute''recursion'方法之间差异的详细信息,请参阅此说明

kind{‘average’, ‘individual’, ‘both’}, default=’average’

返回数据集所有样本的平均偏依赖性,还是每个样本一个值,或者两者都返回。请参见下面的“返回”部分。

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

在 0.24 版本中添加。

返回:
predictionsBunch

类似字典的对象,具有以下属性。

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.])])