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

屬性:
coef_形狀為 (n_features,) 的陣列

特徵的估計係數。

intercept_float

模型的截距,也稱為偏差項。

n_features_in_int

fit 期間看到的特徵數量。

於 0.24 版本新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 具有全為字串的特徵名稱時才定義。

於 1.0 版本新增。

n_iter_int

求解器執行的實際迭代次數。

另請參閱

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

fitsample_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物件

更新後的物件。