猿问

了解 Sklearn 的线性回归加权

我很难让 的线性回归中的加权数组影响输出。sklearn


下面是一个没有权重的示例。


import numpy as np

import seaborn as sns

from sklearn import linear_model


x = 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 curve

sns.lineplot(x=x, y = y_pred.T[0].tolist())      #plot non-weighted best fit line

sns.lineplot(x=x, y = yw_pred.T[0].tolist())     #plot weighted best fit line

http://img2.mukewang.com/6320691f00015efb03910248.jpg

Qyouu
浏览 151回答 1
1回答

ITMISS

这是由于代码中的错误。加权模型的拟合应为:yw_pred = wregr.predict(xr)而不是yw_pred = regr.predict(xr)有了这个,你会得到:
随时随地看视频慕课网APP

相关分类

Go
我要回答