Python机器学习房价预测 (斯坦福大学机器学习课程)

问题来自慕课斯坦福机器学习课程

问题

·输入数据只有一维:房子的面积
·目标的数据只有一维:房子的价格
根据已知房子的面积和价格进行机器学习和模型预测
数据见文章末尾
数据需要标准化X=(X-aver(sum(Xi)))/std(Xi)

步骤①数据获取与处理

横轴是标准化之后的面积,纵轴是房子的价格

步骤②选择与训练模型

模型损失函数是平方损失函数也就是所谓的欧式距离,这里的目的是要将损失函数最小化
利用Numpy训练和优化

模型的数学表达式为:
f(x|p;n)=p0x^n+p1x^(n-1)+...+pn-1x+pn
L(p;n)=0.5∑[f(x|p;n)-y]^2

步骤③评估与显示

多项式拟合,采用n=1,4,10进行评估
不需要进行交叉验证因为数据太少了

当n=4和10时出现过拟合现象,因此n=1是预测较好的模型

完整代码

参考文献

Python与机器学习实战 何宇健

数据集

在桌面创建txt文件,注意代码中的路径

house_prices.txt

2104,399900
1600,329900
2400,369000
1416,232000
3000,539900
1985,299900
1534,314900
1427,198999
1380,212000
1494,242500
1940,239999
2000,347000
1890,329999
4478,699900
1268,259900
2300,449900
1320,299900
1236,199900
2609,499998
3031,599000
1767,252900
1888,255000
1604,242900
1962,259900
3890,573900
1100,249900
1458,464500
2526,469000
2200,475000
2637,299900
1839,349900
1000,169900
2040,314900
3137,579900
1811,285900
1437,249900
1239,229900
2132,345000
4215,549000
2162,287000
1664,368500
2238,329900
2567,314000
1200,299000
852,179900
1852,299900
1203,239500

 

6 评论

  1. 博主 您这里很多的干货,正在努力学习中,尤其是算法这块!一个小的建议,您的网站的文本编辑可以考虑下markdown格式?目前看的时候略微有点乱,仅仅是个人建议

  2. x.append(float(_x)),这个语句老是报错,不知道是什么原因
    Traceback (most recent call last):
    File “”, line 3, in
    x.append(float(_x))
    AttributeError: ‘numpy.ndarray’ object has no attribute ‘append’

  3. 十分感谢作者的贡献。今晚学到了东西。对于您为社区做的奉献,小弟满怀感激之情。愿您生活愉快

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注