猿问

为什么我定制的线性回归模型与 sklearn 不匹配?

我正在尝试使用 Python 创建一个简单的线性模型,不使用任何库(除了numpy)。

首先,它收敛得非常快。仅经过 14 次迭代。其次,它给了我一个与线性回归不同的结果sklearn。作为参考,我的sklearn代码是:


import numpy

import matplotlib.pyplot as plot

import pandas

import sklearn

from sklearn.model_selection import train_test_split

from sklearn.linear_model import LinearRegression


dataset = pandas.read_csv('Housing.csv', header=None)


x = dataset.iloc[:, :-1].values

y = dataset.iloc[:, 2].values


linearRegressor = LinearRegression()


xnorm = sklearn.preprocessing.scale(x)

scaleCoef = sklearn.preprocessing.StandardScaler().fit(x)

mean = scaleCoef.mean_

std = numpy.sqrt(scaleCoef.var_)

print('stf')

print(std)


stuff = linearRegressor.fit(xnorm, y)


predictedX = [[(2100 - mean[0]) / std[0], (3 - mean[1]) / std[1]]]

yPrediction = linearRegressor.predict(predictedX)

print('predictedX', predictedX)

print('predict', yPrediction)



print(stuff.coef_, stuff.intercept_)

我的自定义模型预测 y 的值是 337,000,而 sklearn 预测的是 355,000。我的数据是 47 行,看起来像


2104,3,3.999e+05

1600,3,3.299e+05

2400,3,3.69e+05

1416,2,2.32e+05

3000,4,5.399e+05

1985,4,2.999e+05

1534,3,3.149e+05

完整数据可在https://github.com/shamoons/linear-logistic-regression/blob/master/Housing.csv


我假设(a)我的梯度下降回归在某种程度上是错误的,或者(b)我没有sklearn正确使用。


2 不会为给定输入预测相同输出的任何其他原因?


拉丁的传说
浏览 201回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答