QuantileRegressor#
- class sklearn.linear_model.QuantileRegressor(*, quantile=0.5, alpha=1.0, fit_intercept=True, solver='highs', solver_options=None)[來源]#
預測條件分位數的線性迴歸模型。
線性
QuantileRegressor
針對所需的分位數(quantile)
優化 pinball 損失函數,並且對離群值具有穩健性。此模型使用類似
Lasso
的 L1 正則化。請在使用者指南中閱讀更多資訊。
於 1.0 版本新增。
- 參數:
- quantilefloat,預設值=0.5
模型嘗試預測的分位數。它必須嚴格介於 0 和 1 之間。如果為 0.5 (預設值),則模型預測 50% 分位數,即中位數。
- alphafloat,預設值=1.0
乘以 L1 懲罰項的正則化常數。
- fit_interceptbool,預設值=True
是否擬合截距。
- solver{‘highs-ds’、‘highs-ipm’、‘highs’、‘interior-point’、‘revised simplex’},預設值=’highs’
scipy.optimize.linprog
用於求解線性規劃公式的方法。建議使用 highs 方法,因為它們是最快的方法。「highs-ds」、「highs-ipm」和「highs」求解器支援稀疏輸入數據,並且實際上總是轉換為稀疏 csc 格式。
從
scipy>=1.11.0
開始,「interior-point」不再可用。在 1.4 版本中變更:
solver
的預設值在 1.4 版本中更改為"highs"
。- solver_optionsdict,預設值=None
作為選項傳遞給
scipy.optimize.linprog
的其他參數。如果None
且如果solver='interior-point'
,則為了穩定性,將{"lstsq": True}
傳遞給scipy.optimize.linprog
。
- 屬性:
另請參閱
Lasso
Lasso 是一個使用 l1 正則化來估計稀疏係數的線性模型。
HuberRegressor
對離群值具有穩健性的線性回歸模型。
範例
>>> from sklearn.linear_model import QuantileRegressor >>> import numpy as np >>> n_samples, n_features = 10, 2 >>> rng = np.random.RandomState(0) >>> y = rng.randn(n_samples) >>> X = rng.randn(n_samples, n_features) >>> # the two following lines are optional in practice >>> from sklearn.utils.fixes import sp_version, parse_version >>> reg = QuantileRegressor(quantile=0.8).fit(X, y) >>> np.mean(y <= reg.predict(X)) np.float64(0.8)
- fit(X, y, sample_weight=None)[原始碼]#
根據給定的訓練資料擬合模型。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列、稀疏矩陣
訓練資料。
- y形狀為 (n_samples,) 的類陣列
目標值。
- sample_weight形狀為 (n_samples,) 的類陣列,預設值=None
樣本權重。
- 回傳值:
- self物件
回傳 self。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看使用者指南以了解路由機制如何運作。
- 回傳值:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deepbool,預設值=True
如果為 True,將回傳此估算器以及所包含的子物件(也是估算器)的參數。
- 回傳值:
- paramsdict
參數名稱對應到其值。
- predict(X)[原始碼]#
使用線性模型進行預測。
- 參數:
- X類陣列或稀疏矩陣,形狀 (n_samples, n_features)
樣本。
- 回傳值:
- C陣列,形狀 (n_samples,)
回傳預測值。
- score(X, y, sample_weight=None)[原始碼]#
回傳預測的決定係數。
決定係數 \(R^2\) 定義為 \((1 - \frac{u}{v})\),其中 \(u\) 是殘差平方和
((y_true - y_pred)** 2).sum()
,而 \(v\) 是總平方和((y_true - y_true.mean()) ** 2).sum()
。最佳分數為 1.0,且可能為負值(因為模型可能任意地差)。一個總是預測y
的期望值,而不考慮輸入特徵的常數模型,會得到 \(R^2\) 分數為 0.0。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
測試樣本。對於某些估計器,這可能是一個預先計算好的核心矩陣,或是一個形狀為
(n_samples, n_samples_fitted)
的通用物件列表,其中n_samples_fitted
是估計器在擬合時使用的樣本數量。- y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列
X
的真實值。- sample_weight形狀為 (n_samples,) 的類陣列,預設值=None
樣本權重。
- 回傳值:
- score浮點數
self.predict(X)
相對於y
的 \(R^2\)。
注意事項
當在回歸器上呼叫
score
時,使用的 \(R^2\) 分數從 0.23 版本開始使用multioutput='uniform_average'
,以保持與r2_score
的預設值一致。這會影響所有多輸出回歸器的score
方法(除了MultiOutputRegressor
)。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') QuantileRegressor [原始碼]#
請求傳遞給
fit
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱關於路由機制如何運作的 使用者指南。每個參數的選項如下
True
:請求中繼資料,如果已提供,則傳遞給fit
。如果未提供中繼資料,則會忽略請求。False
:不請求中繼資料,並且元估計器不會將其傳遞給fit
。None
:不請求中繼資料,如果使用者提供,元估計器將會引發錯誤。str
:中繼資料應使用此給定的別名而非原始名稱傳遞給元估計器。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有的請求。這允許您更改某些參數的請求,而不更改其他參數的請求。在 1.3 版本中新增。
注意事項
只有當此估計器被用作元估計器的子估計器時,此方法才相關,例如在
Pipeline
內部使用。否則沒有效果。- 參數:
- sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED
fit
中sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。
- set_params(**params)[原始碼]#
設定此估計器的參數。
該方法適用於簡單估計器以及巢狀物件(例如
Pipeline
)。後者具有<component>__<parameter>
形式的參數,因此可以更新巢狀物件的每個組件。- 參數:
- **params字典
估計器參數。
- 回傳值:
- self估計器實例
估計器實例。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') QuantileRegressor [原始碼]#
請求傳遞至
score
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱關於路由機制如何運作的 使用者指南。每個參數的選項如下
True
:請求中繼資料,並在提供時傳遞至score
。如果未提供中繼資料,則會忽略此請求。False
:不請求中繼資料,並且 meta-estimator 不會將其傳遞至score
。None
:不請求中繼資料,如果使用者提供,元估計器將會引發錯誤。str
:中繼資料應使用此給定的別名而非原始名稱傳遞給元估計器。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有的請求。這允許您更改某些參數的請求,而不更改其他參數的請求。在 1.3 版本中新增。
注意事項
只有當此估計器被用作元估計器的子估計器時,此方法才相關,例如在
Pipeline
內部使用。否則沒有效果。- 參數:
- sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED
用於
score
中的sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。