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的部分依赖性。特征(或一组特征)的偏依赖性对应于估算器对于该特征的每个可能值的平均响应。
在偏依赖性图和个体条件期望图和用户指南中阅读更多内容。
警告
对于
GradientBoostingClassifier和GradientBoostingRegressor,'recursion'方法(默认使用)将不考虑提升过程的init预测器。实际上,只要init是常数估计器(默认),这将产生与'brute'相同的值,只是目标响应中存在一个常数偏移。但是,如果init不是常数估计器,则'recursion'的偏依赖性值是不正确的,因为偏移将取决于样本。最好使用'brute'方法。请注意,这仅适用于GradientBoostingClassifier和GradientBoostingRegressor,不适用于HistGradientBoostingClassifier和HistGradientBoostingRegressor。- 参数:
- estimatorBaseEstimator
一个已拟合的估算器对象,实现了predict、predict_proba或decision_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:形状为
- 整数或字符串 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_resolution和percentiles。请参阅如何使用 partial_dependence以获取此参数如何使用的示例。
在版本 1.7 中新增。
- method{‘auto’, ‘recursion’, ‘brute’},默认值为 ‘auto’
用于计算平均预测的方法
'recursion'仅支持某些基于树的估计器(即GradientBoostingClassifier、GradientBoostingRegressor、HistGradientBoostingClassifier、HistGradientBoostingRegressor、DecisionTreeRegressor、RandomForestRegressor)当kind='average'时。这种方法在速度方面更高效。使用此方法时,分类器的目标响应始终是决策函数,而不是预测概率。由于'recursion'方法设计上隐式计算个体条件期望(ICE)的平均值,因此它与ICE不兼容,因此kind必须是'average'。'brute'支持任何估计器,但计算强度更高。'auto':对于支持它的估计器使用'recursion',否则使用'brute'。如果sample_weight不为None,则无论估计器如何,都使用'brute'。
请参阅此说明以了解
'brute'和'recursion'方法之间的差异。- kind{‘average’, ‘individual’, ‘both’},默认值为 ‘average’
是否返回数据集中所有样本的平均偏依赖性、每个样本一个值或两者。参见下方的返回部分。
请注意,快速的
method='recursion'选项仅适用于kind='average'和sample_weights=None。计算个体依赖性和执行加权平均需要使用较慢的method='brute'。0.24 版本新增。
- 返回:
- predictions
Bunch 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==1。n_values_feature_j对应于grid_values[j]的大小。
- predictions
另请参阅
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.])])