簡體   English   中英

使用sklearn擬合線性回歸后如何獲得殘差的方差

[英]How to get the variance of residuals after fitting a linear regression using sklearn

我是 Python 的菜鳥。 我使用 sklearn 來擬合線性回歸:

lm = LinearRegression()
lm.fit(x, y)

如何獲得殘差的方差?

讓我們定義

y_true = np.array([3, -0.5, 2, 7])
y_pred = np.array([2.5, 0.0, 2, 8])

平均絕對誤差可以定義為

np.mean(np.abs(y_true - y_pred)) # 0.5 same as sklearn.metrics.mean_absolute_error

絕對誤差的方差為

np.var(np.abs(y_true - y_pred)) # 0.125

誤差的方差是

np.var((y_true - y_pred)) # 0.3125

現在如何用scikit-learn實現它?

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
# X and target data and train test split
boston = datasets.load_boston()
X, y = boston.data, boston.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
# initialize and fit to your train data and predict on test data
clf = LinearRegression()
clf.fit(X_train, y_train)
preds = clf.predict(X_test)
# evaluate
mean_absolute_error(y_test, preds) == np.mean(np.abs(y_test - preds))
# get the variance of (absolute) residuals
np.var(np.abs(y_test - preds))
np.var((y_test - preds))

暫無
暫無

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

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