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 將轉換器擬合至 Xy,並傳回 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

設定 transformfit_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物件

更新後的物件。

transform(T)[原始碼]#

透過線性內插轉換新資料。

參數:
T形狀為 (n_samples,) 或 (n_samples, 1) 的類陣列資料

要轉換的資料。

於 0.24 版本變更: 也接受具有 1 個特徵的 2d 陣列。

返回:
y_pred形狀為 (n_samples,) 的 ndarray

轉換後的資料。