线性回归模型(使用梯度下降)无法在波士顿房屋数据集上收敛

时间:2019-03-31 22:16:59

标签: python machine-learning linear-regression gradient-descent

我一直在尝试找出为什么我的线性回归模型与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

有人可以帮我解决我的模型出问题的地方吗?我尝试更改许多迭代次数和学习率,但是并没有明显的改变。

如果有帮助,请访问colab上的ipython笔记本:https://colab.research.google.com/drive/1c3lWKkv2lJfZAc19LiDW7oTuYuacQ3nd

我们非常感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以设置更大的学习率,例如0.01。而且它的次数更多,例如50万次。然后,您将得到类似的结果。 enter image description here

或者您可以使用更大的数字(例如5)来初始化w1。