我很难让 的线性回归中的加权数组影响输出。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)
有了这个,你会得到:
- 1 回答
- 0 关注
- 150 浏览
添加回答
举报
0/150
提交
取消