首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用sklearn拟合线性回归后获得残差的方差

如何在使用sklearn拟合线性回归后获得残差的方差
EN

Stack Overflow用户
提问于 2018-10-24 12:20:57
回答 1查看 3.8K关注 0票数 1

我是Python的新手。我使用sklearn来拟合线性回归:

代码语言:javascript
复制
lm = LinearRegression()
lm.fit(x, y)

如何获得残差的方差?

EN

回答 1

Stack Overflow用户

发布于 2018-10-24 22:43:42

让我们定义一下

代码语言:javascript
复制
y_true = np.array([3, -0.5, 2, 7])
y_pred = np.array([2.5, 0.0, 2, 8])

平均绝对误差可以定义为

代码语言:javascript
复制
np.mean(np.abs(y_true - y_pred)) # 0.5 same as sklearn.metrics.mean_absolute_error

绝对误差的方差为

代码语言:javascript
复制
np.var(np.abs(y_true - y_pred)) # 0.125

误差的方差是

代码语言:javascript
复制
np.var((y_true - y_pred)) # 0.3125

现在如何用scikit-learn实现它呢?

代码语言:javascript
复制
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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52961074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档