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, method='auto', kind='average')#
部分依赖于
features
。特征(或一组特征)的部分依赖对应于估计器对特征每个可能值的平均响应。
更多信息请参阅 用户指南 。
Warning
对于
GradientBoostingClassifier
和GradientBoostingRegressor
,默认使用的'recursion'
方法不会考虑 boosting 过程中的init
预测器。实际上,这将产生与'brute'
方法相同的值,直到目标响应中的一个常量偏移,前提是init
是一个常量估计器(这是默认设置)。然而,如果init
不是常量估计器,由于偏移量会依赖于样本,'recursion'
方法的部分依赖值将是不正确的。最好使用'brute'
方法。请注意,这仅适用于GradientBoostingClassifier
和GradientBoostingRegressor
,不适用于HistGradientBoostingClassifier
和HistGradientBoostingRegressor
。- Parameters:
- estimatorBaseEstimator
一个已拟合的估计器对象,实现 predict 、 predict_proba 或 decision_function 。 不支持多输出-多类分类器。
- X{array-like, sparse matrix 或 dataframe} of shape (n_samples, n_features)
X
用于生成目标features
的值网格(其中将评估部分依赖), 并且在method
为 ‘brute’ 时还用于生成补全特征的值。- featuresarray-like of {int, str, bool} 或 int 或 str
应计算部分依赖的特征(例如
[0]
)或交互特征对 (例如[(0, 1)]
)。- sample_weightarray-like of shape (n_samples,), default=None
样本权重用于在平均模型输出时计算加权平均值。如果为
None
,则样本等权重。 如果sample_weight
不为None
,则method
将设置为'brute'
。 请注意,sample_weight
对于kind='individual'
被忽略。Added in version 1.3.
- categorical_featuresarray-like of shape (n_features,) 或 shape (n_categorical_features,), dtype={bool, int, str}, default=None
指示分类特征。
None
:不考虑任何特征为分类特征;- 布尔数组:形状为
(n_features,)
的布尔掩码 指示哪些特征是分类特征。因此,该数组的形状与
X.shape[1]
相同;
- 布尔数组:形状为
- 整数或字符串数组:整数索引或字符串
指示分类特征。
Added in version 1.2.
- feature_namesarray-like of shape (n_features,), dtype=str, default=None
每个特征的名称;
feature_names[i]
持有索引为i
的特征的名称。 默认情况下,特征的名称对应于它们的数字索引(对于 NumPy 数组)或它们的列名(对于 pandas dataframe)。Added in version 1.2.
- response_method{‘auto’, ‘predict_proba’, ‘decision_function’}, default=’auto’
指定使用 predict_proba 还是 decision_function 作为目标响应。对于回归器 此参数被忽略,响应始终是 predict 的输出。默认情况下,首先尝试 predict_proba , 如果不存在则回退到 decision_function 。如果
method
是 ‘recursion’,响应始终是 decision_function 的输出。- percentilestuple of float, default=(0.05, 0.95)
用于创建网格极端值的下限和上限百分位数。必须在 [0, 1] 范围内。
- grid_resolutionint, default=100
网格上每个目标特征的等间距点数。
- method{‘auto’, ‘recursion’, ‘brute’}, default=’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’}, default=’average’
是否返回数据集中所有样本的部分依赖平均值或每个样本一个值或两者。 请参阅返回值。
请注意,快速
method='recursion'
选项仅适用于kind='average'
和sample_weights=None
。计算个体依赖并进行加权平均需要使用较慢的method='brute'
。Added in version 0.24.
- Returns:
- predictions
Bunch
类似字典的对象,具有以下属性。
- individualndarray of shape (n_outputs, n_instances, len(values[0]), len(values[1]), …)
所有样本在网格上所有点的预测。这也称为个体 条件期望(ICE)。 仅在
kind='individual'
或kind='both'
时可用。- averagendarray of shape (n_outputs, len(values[0]), len(values[1]), …)
所有样本在网格上所有点的预测,平均 超过所有样本在 X 上(或如果
method
是 ‘recursion’,则超过训练数据)。 仅在kind='average'
或kind='both'
时可用。- grid_valuesseq of 1d ndarrays
用于创建网格的值。生成的 网格是
grid_values
中数组的笛卡尔积,其中len(grid_values) == len(features)
。每个数组grid_values[j]
的大小要么是grid_resolution
,要么是X[:, j]
中的唯一值数,以较小者为准。Added in version 1.3.
n_outputs
对应于多类设置中的类数,或 多输出回归中的任务数。对于经典回归和二分类n_outputs==1
。n_values_feature_j
对应于grid_values[j]
的大小。
- predictions
See also
PartialDependenceDisplay.from_estimator
绘制部分依赖。
PartialDependenceDisplay
部分依赖可视化。
Examples
>>> 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.])])