我正在学习新的知识,希望社区能提供帮助。我主要是Ruby程序员,但正在尝试转向Python,以便能够使用TensorFlow进行机器学习。我在使用我收集的房屋数据来运行这个逻辑回归脚本时遇到了很大的困难。
数据链接:
https://storage.googleapis.com/datastorage_machinelearning/first1500.csv
逻辑回归脚本:
https://gist.github.com/Nick-Harvey/404b605423b3c19710eb2a1de6cb5880
脚本输出:
https://gist.github.com/Nick-Harvey/3eab9262770bfb690730cad1fbadf9eb
错误信息显示形状不兼容,这很可能是因为我对城市名称的编码增加了额外的列。然而,我似乎找不到一种方法来拟合数据,以便能够根据平方英尺预测房价,并能够绘制所有数据。最终,我希望能够绘制数据,以便可以比较平方英尺与价格,并按城市排序。
回答:
注意:我认为你做的不是逻辑回归。逻辑回归要求因变量是二元的,并且通过最大似然估计,例如Fischer评分。你使用的误差函数是平均最小二乘法,而你的因变量是数值的。这看起来像是多重线性回归。
我研究了你的代码,并且能够训练一个模型。你的代码在计算最小二乘损失时崩溃了,但我会把这个问题留给你解决。
你的问题在于训练数据的维度。你的因变量 y_train
的形状是: (1176)
。
试试以下方法:
y_train = y_train.reshape((y_train.shape[0], 1))
在
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)
之后执行。