簡體   English   中英

使用 sklearn 擬合模型的總和

[英]Sum of fitted models with sklearn

我正在嘗試做一些涉及對兩個擬合模型求和的事情,以便輸出是另一個 LinearRegression 類型的對象。 我使用 sklearn 的標准 LinearRegression 方法擬合了這兩個模型。

from sklearn.linear_model import LinearRegression

reg_1 = LinearRegression().fit(X1, y)
reg_2 = LinearRegression().fit(X2, y)

我希望能夠生產出類似的東西

reg = reg_1 + reg_2

這樣我仍然可以執行標准操作,例如

reg.predict(X3)

有沒有一種簡單的方法可以做到這一點,顯然我可以獲得reg_1reg_2的系數,所以如果我可以使用這些來定義reg ,它會起作用,但我看不到這樣做的方法。

由於您這樣做的原因是“它們只是具有相同特征的不同數據集”,因此我建議您簡單地附加數據集並在所有數據上創建一個模型。

但是,如果由於某種原因這是不可能的,您可以通過將第三個線性模型的coef_intercept_屬性手動設置為前兩個的平均值來實現,例如:

reg = LinearRegression()
reg.coef_ = np.array([np.mean(t) for t in zip(reg_1.coef_, reg_2.coef_)])
reg.intercept_ = np.mean([reg_1.intercept_, reg_2.intercept_])

然后,您可以像往常一樣使用reg.predict(X3)方法從 2 個線性模型項的組合平均值進行預測。

但是,這種方法存在危險,例如,如果用於擬合原始模型的數據集之一比另一個大得多,那么較小數據集的截距和系數項將在組合模型中過重,您將可能想在平均截距和系數項時做一些加權。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM