當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn plot_partial_dependence用法及代碼示例


本文簡要介紹python語言中 sklearn.inspection.plot_partial_dependence 的用法。

用法:

sklearn.inspection.plot_partial_dependence(estimator, X, features, *, feature_names=None, target=None, response_method='auto', n_cols=3, grid_resolution=100, percentiles=(0.05, 0.95), method='auto', n_jobs=None, verbose=0, line_kw=None, ice_lines_kw=None, pd_line_kw=None, contour_kw=None, ax=None, kind='average', subsample=1000, random_state=None)

已棄用:函數 plot_partial_dependence 在 1.0 中已棄用,並將在 1.2 中刪除。改用 PartialDependenceDisplay.from_estimator

部分依賴 (PD) 和個體條件期望 (ICE) 圖。

通過設置 kind 參數,可以繪製部分依賴圖、單獨條件期望圖或兩者的疊加。 len(features) 繪圖排列在帶有 n_cols 列的網格中。雙向部分相關圖繪製為等高線圖。對於 one-way 圖,特征值的十分位數將在 x 軸上顯示為刻度線,對於雙向圖,特征值的十分位數將在兩個軸上顯示為刻度線。

在用戶指南中閱讀更多信息。

注意

plot_partial_dependence 不支持多次調用使用相同的軸。要繪製多個估算器的部分依賴性,請將第一次調用創建的軸傳遞給第二次調用:

>>> from sklearn.inspection import plot_partial_dependence
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.linear_model import LinearRegression
>>> from sklearn.ensemble import RandomForestRegressor
>>> X, y = make_friedman1()
>>> est1 = LinearRegression().fit(X, y)
>>> est2 = RandomForestRegressor().fit(X, y)
>>> disp1 = plot_partial_dependence(est1, X,
...                                 [1, 2])  
>>> disp2 = plot_partial_dependence(est2, X, [1, 2],
...                                 ax=disp1.axes_)

警告

對於 GradientBoostingClassifier GradientBoostingRegressor 'recursion' 方法(默認使用)將不考慮提升過程的 init 預測器。在實踐中,這將產生與 'brute' 相同的值,直到目標響應中的恒定偏移量,前提是 init 是一個常數估計器(這是默認值)。但是,如果 init 不是常數估計量,則 'recursion' 的部分相關值不正確,因為偏移量將為 sample-dependent。最好使用'brute' 方法。請注意,這僅適用於 GradientBoostingClassifier GradientBoostingRegressor ,不適用於 HistGradientBoostingClassifier HistGradientBoostingRegressor

參數

estimatorBaseEstimator

實現預測、predict_proba 或 decision_function 的擬合估計器對象。不支持Multioutput-multiclass 分類器。

X{類數組, DataFrame },形狀為 (n_samples, n_features)

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

features{int,str,int 對,str 對} 的列表

要為其創建 PDP 的目標函數。如果features[i]是整數或字符串,則創建one-way PDP;如果 features[i] 是一個元組,則創建雙向 PDP(僅支持 kind='average' )。每個元組的大小必須為 2。如果任何條目是字符串,則它必須位於 feature_names 中。

feature_names形狀類似數組 (n_features,),dtype=str,默認=None

每個函數的名稱; feature_names[i] 包含索引為 i 的特征的名稱。默認情況下,特征的名稱對應於 NumPy 數組的數字索引和 pandas DataFrame 的列名。

target整數,默認=無
  • 在多類設置中,指定應計算 PDP 的類。請注意,對於二元分類,始終使用正類(索引 1)。
  • 在多輸出設置中,指定應為其計算 PDP 的任務。

在二元分類或經典回歸設置中被忽略。

response_method{‘auto’, ‘predict_proba’,‘decision_function’},默認='自動'

指定是使用predict_proba 還是decision_function 作為目標響應。對於回歸器,此參數被忽略,響應始終是預測的輸出。默認情況下,首先嘗試predict_proba,如果不存在,我們將恢複為decision_function。如果 method'recursion' ,則響應始終是 decision_function 的輸出。

n_cols整數,默認=3

網格圖中的最大列數。僅當 ax 是單軸或 None 時才有效。

grid_resolution整數,默認=100

對於每個目標特征,圖軸上等距點的數量。

percentiles浮點元組,默認=(0.05, 0.95)

用於為 PDP 軸創建極值的下百分位數和上百分位數。必須在 [0, 1] 中。

methodstr,默認='自動'

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

請參閱此注釋了解'brute''recursion' 方法之間的差異。

n_jobs整數,默認=無

用於計算部分依賴關係的 CPU 數量。計算在 features 參數指定的特征上進行並行化。

None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有處理器。有關詳細信息,請參閱詞匯表。

verbose整數,默認=0

PD 計算期間的詳細輸出。

line_kw字典,默認=無

帶有傳遞給 matplotlib.pyplot.plot 調用的關鍵字的字典。對於one-way 部分依賴圖。它可用於定義 ice_lines_kwpdp_line_kw 的通用屬性。

ice_lines_kw字典,默認=無

帶有傳遞給 matplotlib.pyplot.plot 調用的關鍵字的字典。對於one-way 部分依賴圖中的 ICE 線。 ice_lines_kw 中定義的鍵值對優先於 line_kw

pd_line_kw字典,默認=無

帶有傳遞給 matplotlib.pyplot.plot 調用的關鍵字的字典。對於one-way 部分依賴圖中的部分依賴。 pd_line_kw 中定義的鍵值對優先於 line_kw

contour_kw字典,默認=無

帶有傳遞給 matplotlib.pyplot.contourf 調用的關鍵字的字典。對於雙向部分依賴圖。

axMatplotlib 軸或類似數組的 Matplotlib 軸,默認=無
  • 如果傳入單個軸,則將其視為邊界軸,並且將在這些邊界內繪製部分依賴圖的網格。 n_cols 參數控製網格中的列數。
  • 如果傳入類似數組的軸,則部分相關圖將直接繪製到這些軸中。
  • 如果 None ,則創建圖形和邊界軸並將其視為單軸情況。
kind{‘average’, ‘individual’, ‘both’},默認='平均'

是繪製數據集中所有樣本的平均部分依賴關係,還是每個樣本一行或兩者都繪製。

  • kind='average'導致傳統的PD圖;

  • kind='individual' 生成 ICE 圖。

請注意,快速 method='recursion' 選項僅適用於 kind='average' 。繪製單個依賴項需要使用較慢的 method='brute' 選項。

subsample浮點數,int 或無,默認 = 1000

kind為‘individual’或‘both’時對ICE曲線進行采樣。如果是 float ,則應介於 0.0 和 1.0 之間,並表示用於繪製 ICE 曲線的數據集的比例。如果 int ,表示要使用的絕對樣本數。

請注意,當 kind='both' 時,仍使用完整數據集來計算平均部分依賴。

random_stateint、RandomState 實例或無,默認=無

當子樣本不是 None 並且 kind'both''individual' 時,控製所選樣本的隨機性。有關詳細信息,請參閱詞匯表。

返回

displayPartialDependenceDisplay

例子

>>> import matplotlib.pyplot as plt
>>> from sklearn.datasets import make_friedman1
>>> from sklearn.ensemble import GradientBoostingRegressor
>>> from sklearn.inspection import plot_partial_dependence
>>> X, y = make_friedman1()
>>> clf = GradientBoostingRegressor(n_estimators=10).fit(X, y)
>>> plot_partial_dependence(clf, X, [0, (0, 1)])  
<...>
>>> plt.show()
sklearn-inspection-plot_partial_dependence-1.png

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.inspection.plot_partial_dependence。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。