被動攻擊迴歸器 (PassiveAggressiveRegressor)#

class sklearn.linear_model.PassiveAggressiveRegressor(*, C=1.0, fit_intercept=True, max_iter=1000, tol=0.001, early_stopping=False, validation_fraction=0.1, n_iter_no_change=5, shuffle=True, verbose=0, loss='epsilon_insensitive', epsilon=0.1, random_state=None, warm_start=False, average=False)[原始碼]#

被動積極迴歸器。

請參閱使用者指南以了解更多資訊。

參數:
Cfloat,預設值為 1.0

最大步長(正規化)。預設值為 1.0。

fit_interceptbool,預設值為 True

是否應該估計截距。如果為 False,則假設資料已經置中。預設值為 True。

max_iterint,預設值為 1000

訓練資料的最大傳遞次數(又稱 epoch)。它只會影響 fit 方法的行為,而不會影響 partial_fit 方法。

在版本 0.19 中新增。

tolfloat 或 None,預設值為 1e-3

停止條件。如果不是 None,則當 (loss > previous_loss - tol) 時,迭代將停止。

在版本 0.19 中新增。

early_stoppingbool,預設值為 False

是否使用提前停止來在驗證分數沒有改善時終止訓練。如果設為 True,它會自動將一部分訓練資料設為驗證集,並在驗證分數連續 n_iter_no_change 個 epoch 中沒有改善至少 tol 時終止訓練。

在版本 0.20 中新增。

validation_fractionfloat,預設值為 0.1

設定為驗證集以進行提前停止的訓練資料比例。必須介於 0 和 1 之間。僅當 early_stopping 為 True 時才使用。

在版本 0.20 中新增。

n_iter_no_changeint,預設值為 5

在提前停止之前,沒有改善的迭代次數。

在版本 0.20 中新增。

shufflebool,預設值為 True

是否應該在每個 epoch 後打亂訓練資料。

verboseint,預設值為 0

詳細程度。

lossstr,預設值為 "epsilon_insensitive"

要使用的損失函數:epsilon_insensitive:相當於參考論文中的 PA-I。squared_epsilon_insensitive:相當於參考論文中的 PA-II。

epsilonfloat,預設值為 0.1

如果目前的預測值與正確標籤之間的差異低於此閾值,則不會更新模型。

random_stateint,RandomState 實例,預設值為 None

shuffle 設為 True 時,用於打亂訓練資料。傳遞一個 int 以在多個函數呼叫中產生可重複的輸出。請參閱詞彙表

warm_startbool,預設值為 False

當設為 True 時,會將先前 fit 呼叫的解重新用作初始化,否則只會清除先前的解。請參閱詞彙表

當 warm_start 為 True 時重複呼叫 fit 或 partial_fit,由於資料的打亂方式,可能會導致與單次呼叫 fit 時不同的解。

averagebool 或 int,預設值為 False

當設為 True 時,會計算平均 SGD 權重,並將結果儲存在 coef_ 屬性中。如果設為大於 1 的整數,則在看到的樣本總數達到 average 後開始平均。因此,average=10 將在看到 10 個樣本後開始平均。

在版本 0.19 中新增: 參數 average 以在 SGD 中使用權重平均。

屬性:
coef_array,形狀 = [1, n_features] 如果 n_classes == 2,否則為 [n_classes, n_features]

指派給特徵的權重。

intercept_array,形狀 = [1] 如果 n_classes == 2,否則為 [n_classes]

決策函數中的常數。

n_features_in_int

fit 期間看到的特徵數量。

在版本 0.24 中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

在版本 1.0 中新增。

n_iter_int

達到停止條件的實際迭代次數。

t_int

訓練期間執行的權重更新次數。與 (n_iter_ * n_samples + 1) 相同。

另請參閱

SGDRegressor

透過使用 SGD 最小化正規化經驗損失來擬合的線性模型。

參考文獻

線上被動積極演算法 <http://jmlr.csail.mit.edu/papers/volume7/crammer06a/crammer06a.pdf> K. Crammer, O. Dekel, J. Keshat, S. Shalev-Shwartz, Y. Singer - JMLR (2006)。

範例

>>> from sklearn.linear_model import PassiveAggressiveRegressor
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=4, random_state=0)
>>> regr = PassiveAggressiveRegressor(max_iter=100, random_state=0,
... tol=1e-3)
>>> regr.fit(X, y)
PassiveAggressiveRegressor(max_iter=100, random_state=0)
>>> print(regr.coef_)
[20.48736655 34.18818427 67.59122734 87.94731329]
>>> print(regr.intercept_)
[-0.02306214]
>>> print(regr.predict([[0, 0, 0, 0]]))
[-0.02306214]
densify()[原始碼]#

將係數矩陣轉換為密集陣列格式。

coef_ 成員(還原)轉換為 numpy.ndarray。這是 coef_ 的預設格式,並且是擬合所必需的,因此只有在先前被稀疏化的模型上才需要呼叫此方法;否則,它是一個空操作。

回傳
self

已擬合的估計器。

fit(X, y, coef_init=None, intercept_init=None)[原始碼]#

使用被動-積極演算法擬合線性模型。

參數:
X{類陣列, 稀疏矩陣},形狀為 (n_samples, n_features)

訓練資料。

y形狀為 [n_samples] 的 numpy 陣列

目標值。

coef_init陣列,形狀 = [n_features]

用於熱啟動最佳化的初始係數。

intercept_init陣列,形狀 = [1]

用於熱啟動最佳化的初始截距。

回傳
self物件

已擬合的估計器。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看使用者指南,瞭解路由機制如何運作。

回傳
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

get_params(deep=True)[原始碼]#

取得此估計器的參數。

參數:
deepbool,預設為 True

若為 True,則將回傳此估計器和包含的子物件(屬於估計器)的參數。

回傳
paramsdict

參數名稱對應至其值。

partial_fit(X, y)[原始碼]#

使用被動-積極演算法擬合線性模型。

參數:
X{類陣列, 稀疏矩陣},形狀為 (n_samples, n_features)

訓練資料的子集。

y形狀為 [n_samples] 的 numpy 陣列

目標值的子集。

回傳
self物件

已擬合的估計器。

predict(X)[原始碼]#

使用線性模型進行預測。

參數:
X{類陣列, 稀疏矩陣},形狀為 (n_samples, n_features)

輸入資料。

回傳
形狀為 (n_samples,) 的 ndarray

每個 X 元素預測的目標值。

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 的期望值、忽略輸入特徵的恆定模型將會得到 0.0 的 \(R^2\) 分數。

參數:
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(*, coef_init: bool | None | str = '$UNCHANGED$', intercept_init: bool | None | str = '$UNCHANGED$') PassiveAggressiveRegressor[原始碼]#

請求傳遞給 fit 方法的中繼資料。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關 (請參閱 sklearn.set_config)。請參閱關於路由機制如何運作的 使用者指南

每個參數的選項如下

  • True:要求中繼資料,並在提供時傳遞給 fit。如果未提供中繼資料,則會忽略此請求。

  • False:不要求中繼資料,且元估計器不會將其傳遞給 fit

  • None:不要求中繼資料,且如果使用者提供,元估計器會引發錯誤。

  • str:應使用此給定的別名而不是原始名稱,將中繼資料傳遞給元估計器。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 會保留現有的請求。這可讓您變更某些參數的請求,而保持其他參數不變。

於 1.3 版新增。

注意

只有當此估計器用作元估計器的子估計器時,例如在 Pipeline 內使用時,此方法才相關。否則它不會產生任何作用。

參數:
coef_initstr、True、False 或 None,預設值 = sklearn.utils.metadata_routing.UNCHANGED

fitcoef_init 參數的中繼資料路由。

intercept_initstr、True、False 或 None,預設值 = sklearn.utils.metadata_routing.UNCHANGED

fitintercept_init 參數的中繼資料路由。

回傳
self物件

已更新的物件。

set_params(**params)[原始碼]#

設定此估計器的參數。

此方法適用於簡單的估計器以及巢狀物件 (例如 Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個元件。

參數:
**paramsdict

估計器參數。

回傳
self估計器實例

估計器實例。

set_partial_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') PassiveAggressiveRegressor[原始碼]#

請求傳遞給 partial_fit 方法的中繼資料。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關 (請參閱 sklearn.set_config)。請參閱關於路由機制如何運作的 使用者指南

每個參數的選項如下

  • True:要求中繼資料,並在提供時傳遞給 partial_fit。如果未提供中繼資料,則會忽略此請求。

  • False:不請求元數據,且元估計器不會將其傳遞給 partial_fit

  • None:不要求中繼資料,且如果使用者提供,元估計器會引發錯誤。

  • str:應使用此給定的別名而不是原始名稱,將中繼資料傳遞給元估計器。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 會保留現有的請求。這可讓您變更某些參數的請求,而保持其他參數不變。

於 1.3 版新增。

注意

只有當此估計器用作元估計器的子估計器時,例如在 Pipeline 內使用時,此方法才相關。否則它不會產生任何作用。

參數:
sample_weightstr、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

用於 partial_fitsample_weight 參數的元數據路由。

回傳
self物件

已更新的物件。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') PassiveAggressiveRegressor[原始碼]#

請求傳遞至 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

用於 scoresample_weight 參數的元數據路由。

回傳
self物件

已更新的物件。

sparsify()[原始碼]#

將係數矩陣轉換為稀疏格式。

coef_ 成員轉換為 scipy.sparse 矩陣,對於 L1 正則化的模型,這比通常的 numpy.ndarray 表示法更節省記憶體和儲存空間。

不會轉換 intercept_ 成員。

回傳
self

已擬合的估計器。

注意事項

對於非稀疏模型,即當 coef_ 中沒有太多零時,這實際上可能會增加記憶體使用量,因此請謹慎使用此方法。一個經驗法則是,零元素的數量(可以使用 (coef_ == 0).sum() 計算)必須超過 50% 才能提供顯著的好處。

在呼叫此方法後,在您呼叫 densify 之前,使用 partial_fit 方法(如果有)進一步擬合將無法運作。