为了账号安全,请及时绑定邮箱和手机立即绑定

了解 Sklearn 的线性回归加权

了解 Sklearn 的线性回归加权

Go
Qyouu 2022-09-13 19:26:51
我很难让 的线性回归中的加权数组影响输出。sklearn下面是一个没有权重的示例。import numpy as npimport seaborn as snsfrom sklearn import linear_modelx = np.arange(0,100.)y = (x**2.0)xr = np.array(x).reshape(-1, 1)yr = np.array(y).reshape(-1, 1)regr = linear_model.LinearRegression()regr.fit(xr, yr)y_pred = regr.predict(xr)sns.scatterplot(x=x, y = y)sns.lineplot(x=x, y = y_pred.T[0].tolist())现在,在添加权重时,我得到了相同的最佳配合线。我预计会看到回归有利于曲线的更陡峭部分。我做错了什么?w = [p**2 for p in x.reshape(-1)]wregr = linear_model.LinearRegression()wregr.fit(xr,yr, sample_weight=w)yw_pred = regr.predict(xr)wregr = linear_model.LinearRegression(fit_intercept=True)wregr.fit(xr,yr, sample_weight=w)yw_pred = regr.predict(xr)sns.scatterplot(x=x, y = y)                      #plot curvesns.lineplot(x=x, y = y_pred.T[0].tolist())      #plot non-weighted best fit linesns.lineplot(x=x, y = yw_pred.T[0].tolist())     #plot weighted best fit line
查看完整描述

1 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

这是由于代码中的错误。加权模型的拟合应为:

yw_pred = wregr.predict(xr)

而不是

yw_pred = regr.predict(xr)

有了这个,你会得到:

//img1.sycdn.imooc.com//6320692e0001c26203860246.jpg

查看完整回答
反对 回复 2022-09-13
  • 1 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信