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 的部分依賴 (Partial dependence)。

特徵(或一組特徵)的部分依賴性對應於估計器對於特徵每個可能值的平均響應。

請參閱使用者指南以了解更多資訊。

警告

對於 GradientBoostingClassifierGradientBoostingRegressor'recursion' 方法(預設使用)不會考慮 boosting 過程的 init 預測器。實際上,如果 init 是一個常數估計器(這是預設值),則這將產生與 'brute' 相同的值,直到目標響應中的常數偏移量。但是,如果 init 不是常數估計器,則 'recursion' 的部分依賴值將不正確,因為偏移量將取決於樣本。最好使用 'brute' 方法。請注意,這僅適用於 GradientBoostingClassifierGradientBoostingRegressor,而不適用於 HistGradientBoostingClassifierHistGradientBoostingRegressor

參數:
estimatorBaseEstimator

一個已擬合的估計器物件,實現了 predictpredict_probadecision_function。不支援多輸出-多類別分類器。

X形狀為 (n_samples, n_features) 的類陣列、稀疏矩陣或資料框

X 用於為目標 features 生成值網格(將在其中評估部分依賴性),並且在 method 為 'brute' 時,也用於生成補全特徵的值。

features類陣列,包含 {int, str, bool} 或 int 或 str

應計算部分依賴性的特徵 (例如 [0]) 或相互作用特徵對 (例如 [(0, 1)])。

sample_weight形狀為 (n_samples,) 的類陣列,預設值=None

樣本權重用於在平均模型輸出時計算加權平均值。如果為 None,則樣本的權重相等。如果 sample_weight 不是 None,則 method 將被設定為 'brute'。請注意,對於 kind='individual'sample_weight 會被忽略。

版本 1.3 新增。

categorical_features形狀為 (n_features,) 或形狀為 (n_categorical_features,) 的類陣列,dtype={bool, int, str},預設值=None

指示類別特徵。

  • None:不將任何特徵視為類別特徵;

  • 布林值類陣列:形狀為 (n_features,) 的布林遮罩

    指示哪些特徵是類別特徵。因此,此陣列的形狀與 X.shape[1] 相同;

  • 整數或字串類陣列:整數索引或字串

    指示類別特徵。

版本 1.2 新增。

feature_names形狀為 (n_features,),dtype=str 的類陣列,預設值=None

每個特徵的名稱;feature_names[i] 保存索引為 i 的特徵的名稱。預設情況下,特徵的名稱對應於 NumPy 陣列的數字索引和 pandas 資料框的欄名稱。

版本 1.2 新增。

response_method{‘auto’, ‘predict_proba’, ‘decision_function’},預設值='auto'

指定是否使用 predict_probadecision_function 作為目標響應。對於迴歸器,此參數將被忽略,響應始終是 predict 的輸出。預設情況下,會先嘗試 predict_proba,如果不存在,則會回復到 decision_function。如果 method 為 'recursion',則響應始終是 decision_function 的輸出。

percentilesfloat 元組,預設值=(0.05, 0.95)

用於建立網格極值的下限和上限百分位數。必須在 [0, 1] 範圍內。

grid_resolutionint,預設值=100

網格上每個目標特徵的等間隔點數量。

method{‘auto’, ‘recursion’, ‘brute’},預設值=’auto’

用於計算平均預測值的方法

請參閱 此說明,了解 'brute''recursion' 方法之間的差異。

kind{‘average’, ‘individual’, ‘both’},預設值=’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_values1 維 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.])])