Tweedie 迴歸器#
- class sklearn.linear_model.TweedieRegressor(*, power=0.0, alpha=1.0, fit_intercept=True, link='auto', solver='lbfgs', max_iter=100, tol=0.0001, warm_start=False, verbose=0)[原始碼]#
具有 Tweedie 分佈的廣義線性模型。
此估算器可用於根據
power
參數來建模不同的 GLM,該參數決定了底層分佈。請參閱使用者指南以了解更多資訊。
在 0.23 版本中新增。
- 參數:
- powerfloat,預設值=0
power 決定了底層目標分佈,如下表所示
Power
分佈
0
常態分佈
1
Poisson 分佈
(1,2)
複合 Poisson Gamma 分佈
2
Gamma 分佈
3
反高斯分佈
對於
0 < power < 1
,不存在分佈。- alphafloat,預設值=1
乘以 L2 懲罰項並決定正規化強度的常數。
alpha = 0
等同於未懲罰的 GLM。 在這種情況下,設計矩陣X
必須具有完整的列秩(沒有共線性)。alpha
的值必須在[0.0, inf)
範圍內。- fit_interceptbool,預設值=True
指定是否將常數(也稱為偏差或截距)加入線性預測器 (
X @ coef + intercept
)。- link{‘auto’, ‘identity’, ‘log’},預設值='auto'
GLM 的連結函數,即從線性預測器
X @ coeff + intercept
到預測y_pred
的映射。 選項 'auto' 會根據所選的power
參數設定連結,如下所示對於
power <= 0
,例如常態分佈,使用 'identity'對於
power > 0
,例如 Poisson、Gamma 和反高斯分佈,使用 'log'
- solver{‘lbfgs’, ‘newton-cholesky’},預設值='lbfgs'
在最佳化問題中使用的演算法
- 'lbfgs'
呼叫 scipy 的 L-BFGS-B 最佳化器。
- 'newton-cholesky'
使用牛頓-拉弗森步驟(在任意精度的算術中等同於迭代重新加權最小平方),並使用基於 Cholesky 的內部求解器。此求解器適用於
n_samples
>>n_features
的情況,尤其是具有稀有類別的 one-hot 編碼分類特徵。請注意,此求解器的記憶體使用量與n_features
呈二次方依賴關係,因為它會明確計算 Hessian 矩陣。在 1.2 版本中新增。
- max_iterint,預設值=100
求解器的最大迭代次數。值必須在
[1, inf)
範圍內。- tolfloat,預設值=1e-4
停止條件。對於 lbfgs 求解器,當
max{|g_j|, j = 1, ..., d} <= tol
時,迭代將停止,其中g_j
是目標函數的梯度(導數)的第 j 個分量。值必須在(0.0, inf)
範圍內。- warm_startbool,預設值=False
如果設定為
True
,則重複使用先前呼叫fit
的解決方案作為coef_
和intercept_
的初始化。- verboseint,預設值=0
對於 lbfgs 求解器,將 verbose 設定為任何正數以進行詳細輸出。值必須在
[0, inf)
範圍內。
- 屬性:
另請參閱
PoissonRegressor
具有 Poisson 分佈的廣義線性模型。
GammaRegressor
具有 Gamma 分佈的廣義線性模型。
範例
>>> from sklearn import linear_model >>> clf = linear_model.TweedieRegressor() >>> X = [[1, 2], [2, 3], [3, 4], [4, 3]] >>> y = [2, 3.5, 5, 5.5] >>> clf.fit(X, y) TweedieRegressor() >>> clf.score(X, y) np.float64(0.839...) >>> clf.coef_ array([0.599..., 0.299...]) >>> clf.intercept_ np.float64(1.600...) >>> clf.predict([[1, 1], [3, 4]]) array([2.500..., 4.599...])
- fit(X, y, sample_weight=None)[原始碼]#
擬合廣義線性模型。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}
訓練資料。
- y形狀為 (n_samples,) 的類陣列
目標值。
- sample_weight形狀為 (n_samples,) 的類陣列,預設值=None
樣本權重。
- 返回:
- self物件
已擬合的模型。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看使用者指南,了解路由機制的運作方式。
- 返回:
- routingMetadataRequest
一個
MetadataRequest
,封裝了路由資訊。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deep布林值,預設為 True
如果為 True,將回傳此估算器和包含的子物件(也是估算器)的參數。
- 返回:
- params字典
參數名稱對應到它們的值。
- predict(X)[原始碼]#
使用特徵矩陣 X,以廣義線性模型 (GLM) 進行預測。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}
樣本。
- 返回:
- y_pred形狀為 (n_samples,) 的陣列
回傳預測值。
- score(X, y, sample_weight=None)[原始碼]#
計算 D^2,即偏差解釋的百分比。
D^2 是決定係數 R^2 的推廣。R^2 使用平方誤差,而 D^2 使用此 GLM 的偏差,請參閱 使用者指南。
D^2 定義為 \(D^2 = 1-\frac{D(y_{true},y_{pred})}{D_{null}}\), \(D_{null}\) 是零偏差,即僅具有截距的模型的偏差,對應於 \(y_{pred} = \bar{y}\)。 平均值 \(\bar{y}\) 由 sample_weight 加權平均。最佳可能分數為 1.0,且可能為負值(因為模型可能任意地更糟)。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列, 稀疏矩陣}
測試樣本。
- y形狀為 (n_samples,) 的類陣列
目標的真實值。
- sample_weight形狀為 (n_samples,) 的類陣列,預設值=None
樣本權重。
- 返回:
- score浮點數
self.predict(X) 相對於 y 的 D^2。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') TweedieRegressor [原始碼]#
請求傳遞到
fit
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱關於路由機制如何運作的 使用者指南。每個參數的選項如下:
True
:請求中繼資料,並在提供時傳遞給fit
。如果未提供中繼資料,則忽略請求。False
:不請求中繼資料,且 meta-estimator 不會將其傳遞給fit
。None
:不請求中繼資料,且如果使用者提供中繼資料,meta-estimator 將會引發錯誤。str
:中繼資料應使用此給定別名傳遞給 meta-estimator,而不是原始名稱。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有的請求。這允許您變更某些參數的請求,而不是其他參數。在 1.3 版中新增。
注意
只有當此估算器用作 meta-estimator 的子估算器時,例如在
Pipeline
內使用時,此方法才相關。否則,它沒有任何效果。- 參數:
- sample_weight字串、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED
fit
中sample_weight
參數的中繼資料路由。
- 返回:
- self物件
更新後的物件。
- set_params(**params)[原始碼]#
設定此估算器的參數。
此方法適用於簡單的估算器以及巢狀物件(例如
Pipeline
)。後者具有<元件>__<參數>
形式的參數,因此可以更新巢狀物件的每個元件。- 參數:
- **params字典
估算器參數。
- 返回:
- self估算器實例
估算器實例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') TweedieRegressor [原始碼]#
請求傳遞給
score
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱關於路由機制如何運作的 使用者指南。每個參數的選項如下:
True
:請求中繼資料,並在提供時傳遞給score
。如果未提供中繼資料,則忽略請求。False
:不請求中繼資料,並且 meta-estimator 不會將其傳遞給score
。None
:不請求中繼資料,且如果使用者提供中繼資料,meta-estimator 將會引發錯誤。str
:中繼資料應使用此給定別名傳遞給 meta-estimator,而不是原始名稱。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有的請求。這允許您變更某些參數的請求,而不是其他參數。在 1.3 版中新增。
注意
只有當此估算器用作 meta-estimator 的子估算器時,例如在
Pipeline
內使用時,此方法才相關。否則,它沒有任何效果。- 參數:
- sample_weight字串、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED
score
中sample_weight
參數的中繼資料路由。
- 返回:
- self物件
更新後的物件。