的平方殘差之和我正在使用sklearn.linear_model.LinearRegression並希望計算我的係數的標準誤差。據我所知,sklearn不包含這樣做的函數,所以我需要手動計算它們(有關線性迴歸係數估計的標準誤差示例,請參閱https://en.wikipedia.org/wiki/Ordinary_least_squares)。sklearn.linear_model.LinearRegression
我使用我的線性迴歸的殘差_屬性來得到平方殘差的總和。我的問題是關於http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html的文檔,它將_residues定義爲:
residues_:array,shape(n_targets,)或(1,)或空。 總和 殘差。在 期間通過的每個目標的平方歐幾里德2-範數。如果線性迴歸問題未被確定(訓練矩陣的線性無關行數 小於其線性無關列的數目 ),則這是一個空數組。如果 在擬合過程中傳遞的目標矢量是1維的,這是一個 (1,)形狀數組。
「殘差總和」是否是文檔中的錯誤?我認爲它應該說「殘差平方和」。 (如果線性迴歸包括一個常數,則訓練數據上的殘差總和爲零:參見https://stats.stackexchange.com/questions/194523/why-does-the-sum-of-residuals-equal-0-from-a-graphical-perspective。另外,文檔中的以下句子表示「平方歐幾里德2-範數」,它是平方和。 )如果文檔確實是錯誤的,我該如何糾正?
編輯:
import numpy as np
from sklearn import linear_model
n_obs = 5
X = np.ones((n_obs, 1), dtype=float)
X[3] = 7.0
y = np.ones((n_obs,))
y[1] = 10.0
y[3] = 9.0
model = linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=1)
np.isclose(np.sum(np.power(y - model.predict(X=X), 2)), model.residues_) # True
如果你認爲這是一個錯誤,你可以將它發佈在他們的[github問題頁面](https://github.com/scikit-learn/scikit-learn/issues)上。如果你是對的,那麼他們會糾正這個錯誤,如果你不是這樣,你仍然可以獲得關於爲什麼這樣寫(或執行)的信息。 –
@VivekKumar感謝您的鏈接,我會這樣做。 – Adrian
發表於https://github.com/scikit-learn/scikit-learn/issues/9491 – Adrian