我正在尝试使用 Python 创建一个简单的线性模型,不使用任何库(除了numpy)。首先,它收敛得非常快。仅经过 14 次迭代。其次,它给了我一个与线性回归不同的结果sklearn。作为参考,我的sklearn代码是:import numpyimport matplotlib.pyplot as plotimport pandasimport sklearnfrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LinearRegressiondataset = pandas.read_csv('Housing.csv', header=None)x = dataset.iloc[:, :-1].valuesy = dataset.iloc[:, 2].valueslinearRegressor = 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+051600,3,3.299e+052400,3,3.69e+051416,2,2.32e+053000,4,5.399e+051985,4,2.999e+051534,3,3.149e+05完整数据可在https://github.com/shamoons/linear-logistic-regression/blob/master/Housing.csv我假设(a)我的梯度下降回归在某种程度上是错误的,或者(b)我没有sklearn正确使用。2 不会为给定输入预测相同输出的任何其他原因?
添加回答
举报
0/150
提交
取消