IsotonicRegression#
- class sklearn.isotonic.IsotonicRegression(*, y_min=None, y_max=None, increasing=True, out_of_bounds='nan')[原始碼]#
等張迴歸模型。
請參閱使用者指南以了解更多資訊。
於 0.13 版本新增。
- 參數:
- y_minfloat,預設值為 None
最低預測值的下限(最小值可能仍較高)。如果未設定,則預設為 -inf。
- y_maxfloat,預設值為 None
最高預測值的上限(最大值可能仍較低)。如果未設定,則預設為 +inf。
- increasingbool 或 ‘auto’,預設值為 True
決定預測是否應限制為隨著
X
增加或減少。 ‘auto’ 將根據 Spearman 相關性估計值的符號來決定。- out_of_bounds{‘nan’,‘clip’,‘raise’},預設值為 ‘nan’
處理預測期間如何處理訓練域之外的
X
值。‘nan’,預測將為 NaN。
‘clip’,預測值將設定為最接近的訓練間隔端點的值。
‘raise’,將引發
ValueError
。
- 屬性:
- X_min_float
輸入陣列
X_
的最小值,作為左邊界。- X_max_float
輸入陣列
X_
的最大值,作為右邊界。- X_thresholds_形狀為 (n_thresholds,) 的 ndarray
用於內插 y = f(X) 單調函數的唯一遞增
X
值。於 0.24 版本新增。
- y_thresholds_形狀為 (n_thresholds,) 的 ndarray
適用於內插 y = f(X) 單調函數的去重複
y
值。於 0.24 版本新增。
- f_函數
涵蓋輸入域
X
的逐步內插函數。- increasing_bool
increasing
的推斷值。
參見
sklearn.linear_model.LinearRegression
普通最小平方法線性迴歸。
sklearn.ensemble.HistGradientBoostingRegressor
梯度提升是一種非參數模型,可接受單調性約束。
isotonic_regression
求解等張迴歸模型的函數。
註解
使用 de Leeuw,1977 年的次要方法來打破關係。
參考文獻
等張中位數迴歸:線性規劃方法,Nilotpal Chakravarti,運籌學數學,第 14 卷,第 2 期(1989 年 5 月),第 303-308 頁
R 中的等張最佳化:Pool-Adjacent-Violators 演算法 (PAVA) 和主動集方法,de Leeuw,Hornik,Mair,《統計軟體雜誌》,2009 年
Kruskal 的單調迴歸演算法的正確性與關係,de Leeuw,《心理測量學》,1977 年
範例
>>> from sklearn.datasets import make_regression >>> from sklearn.isotonic import IsotonicRegression >>> X, y = make_regression(n_samples=10, n_features=1, random_state=41) >>> iso_reg = IsotonicRegression().fit(X, y) >>> iso_reg.predict([.1, .2]) array([1.8628..., 3.7256...])
- fit(X, y, sample_weight=None)[原始碼]#
使用 X、y 作為訓練資料來擬合模型。
- 參數:
- X形狀為 (n_samples,) 或 (n_samples, 1) 的類陣列
訓練資料。
於 0.24 版本變更: 也接受具有 1 個特徵的 2d 陣列。
- y形狀為 (n_samples,) 的類陣列
訓練目標。
- sample_weight形狀為 (n_samples,) 的類陣列,預設值為 None
權重。如果設定為 None,則所有權重都將設定為 1(相等權重)。
- 返回:
- self物件
返回自身的執行個體。
註解
X 會儲存以供未來使用,因為
transform
需要 X 來內插新輸入資料。
- fit_transform(X, y=None, **fit_params)[原始碼]#
擬合資料,然後轉換資料。
使用選擇性參數
fit_params
將轉換器擬合至X
和y
,並傳回X
的轉換版本。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列
輸入樣本。
- y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列,預設值為 None
目標值(非監督轉換為 None)。
- **fit_paramsdict
其他擬合參數。
- 返回:
- X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列
轉換後的陣列。
- get_feature_names_out(input_features=None)[原始碼]#
取得轉換的輸出特徵名稱。
- 參數:
- input_features字串的類陣列或 None,預設值為 None
已忽略。
- 返回:
- feature_names_out字串物件的 ndarray
一個具有一個字串的 ndarray,即 ["isotonicregression0"]。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請檢查使用者指南,以了解路由機制如何運作。
- 返回:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估算器的參數。
- 參數:
- deepbool, 預設值=True
若為 True,將會回傳此估算器及其所包含的子物件(也是估算器)的參數。
- 返回:
- paramsdict
參數名稱對應到其值的字典。
- predict(T)[原始碼]#
通過線性內插預測新資料。
- 參數:
- T形狀為 (n_samples,) 或 (n_samples, 1) 的類陣列資料
要轉換的資料。
- 返回:
- y_pred形狀為 (n_samples,) 的 ndarray
已轉換的資料。
- 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
樣本權重。
- 返回:
- scorefloat
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$') IsotonicRegression [原始碼]#
要求傳遞至
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_output(*, transform=None)[原始碼]#
設定輸出容器。
請參閱 介紹 set_output API,取得如何使用 API 的範例。
- 參數:
- transform{“default”, “pandas”, “polars”},預設值為 None
設定
transform
和fit_transform
的輸出。"default"
:轉換器的預設輸出格式"pandas"
:DataFrame 輸出"polars"
:Polars 輸出None
:轉換設定保持不變
在 1.4 版中新增:新增
"polars"
選項。
- 返回:
- self估算器執行個體
估算器執行個體。
- set_params(**params)[原始碼]#
設定此估算器的參數。
此方法適用於簡單的估算器以及巢狀物件(例如
Pipeline
)。後者的參數形式為<component>__<parameter>
,因此可以更新巢狀物件的每個元件。- 參數:
- **paramsdict
估算器參數。
- 返回:
- self估算器執行個體
估算器執行個體。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') IsotonicRegression [原始碼]#
要求傳遞至
score
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時(請參閱sklearn.set_config
),此方法才相關。請參閱 使用者指南,瞭解路由機制如何運作。每個參數的選項如下:
True
:請求中繼資料,並在提供時傳遞至score
。若未提供中繼資料,則會忽略請求。False
:不請求中繼資料,且元估算器不會將其傳遞至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物件
更新後的物件。