线性回归模型(使用梯度下降)不收敛于波士顿住房数据集
Linear Regression model (using Gradient Descent) does not converge on Boston Housing Dataset
我一直在努力找出为什么我的线性回归模型与 sklearn 的线性回归模型相比表现不佳。
我的线性回归模型(基于梯度下降的更新规则)
w0 = 0
w1 = 0
alpha = 0.001
N = len(xTrain)
for i in range(1000):
yPred = w0 + w1*xTrain
w0 = w0 - (alpha/N)* sum(yPred - yTrain)
w1 = w1 - (alpha/N)*sum((yPred - yTrain) * xTrain)
用于绘制训练集中的 x 值和 y 的预测值的代码
#Scatter plot between x and y
plot.scatter(xTrain,yTrain, c='black')
plot.plot(xTrain, w0+w1*xTrain, color='r')
plot.xlabel('Number of rooms')
plot.ylabel('Median value in 1000s')
plot.show()
我得到了这里显示的输出 https://i.stack.imgur.com/jvOfM.png
在 运行 使用 sklearn 内置线性回归的相同代码,我得到了这个
https://i.stack.imgur.com/jvOfM.png
谁能帮我看看我的模型哪里出了问题?我试过改变一些迭代次数和学习率,但没有明显的变化。
这里是 ipython colab 笔记本,如果有帮助的话:https://colab.research.google.com/drive/1c3lWKkv2lJfZAc19LiDW7oTuYuacQ3nd
非常感谢任何帮助
您可以设置更大的学习率,例如 0.01。而且它更多次,例如500000次。然后你会得到类似的结果。
或者您可以用更大的数字(例如 5)初始化 w1。
我一直在努力找出为什么我的线性回归模型与 sklearn 的线性回归模型相比表现不佳。
我的线性回归模型(基于梯度下降的更新规则)
w0 = 0
w1 = 0
alpha = 0.001
N = len(xTrain)
for i in range(1000):
yPred = w0 + w1*xTrain
w0 = w0 - (alpha/N)* sum(yPred - yTrain)
w1 = w1 - (alpha/N)*sum((yPred - yTrain) * xTrain)
用于绘制训练集中的 x 值和 y 的预测值的代码
#Scatter plot between x and y
plot.scatter(xTrain,yTrain, c='black')
plot.plot(xTrain, w0+w1*xTrain, color='r')
plot.xlabel('Number of rooms')
plot.ylabel('Median value in 1000s')
plot.show()
我得到了这里显示的输出 https://i.stack.imgur.com/jvOfM.png
在 运行 使用 sklearn 内置线性回归的相同代码,我得到了这个 https://i.stack.imgur.com/jvOfM.png
谁能帮我看看我的模型哪里出了问题?我试过改变一些迭代次数和学习率,但没有明显的变化。
这里是 ipython colab 笔记本,如果有帮助的话:https://colab.research.google.com/drive/1c3lWKkv2lJfZAc19LiDW7oTuYuacQ3nd
非常感谢任何帮助
您可以设置更大的学习率,例如 0.01。而且它更多次,例如500000次。然后你会得到类似的结果。
或者您可以用更大的数字(例如 5)初始化 w1。