偏依赖#
- 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- 特征(或一组特征)的偏依赖对应于估计器对特征每个可能值的平均响应。 - 更多详情请参阅 用户指南。 - 警告 - 对于 - GradientBoostingClassifier和- GradientBoostingRegressor,默认使用的- 'recursion'方法不会考虑增强过程中的- init预测器。实际上,如果- init是一个常数估计器(默认情况),这将产生与- 'brute'相同的值,目标响应值仅相差一个常数偏移量。但是,如果- init不是常数估计器,则- 'recursion'的偏依赖值是不正确的,因为偏移量将取决于样本。最好使用- 'brute'方法。请注意,这仅适用于- GradientBoostingClassifier和- GradientBoostingRegressor,不适用于- HistGradientBoostingClassifier和- HistGradientBoostingRegressor。- 参数:
- estimatorBaseEstimator
- 一个已拟合的估计器对象,实现了 predict、predict_proba 或 decision_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:形状为 
- 整数或字符串型 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'
- 用于计算平均预测值的方法。 - 仅部分基于树的估计器支持 - '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'。- 在 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==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.])]) 
 
    