Я пытался выяснить, почему моя модель линейной регрессии работает плохо по сравнению с моделью линейной регрессии Склеарна.
Моя модель линейной регрессии (обновление правил на основе градиентного спуска)
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
Любая помощь высоко ценится