基于python建立房价预测模型

全文阅读路线:

数据理解

数据准备

数据清洗

建立模型

数据预测

1. 数据理解

此次建模预测的数据集来源于Data Castle上的“美国King County房价预测训练赛”,链接如下:

数据特征描述如下:

测试集主要包括3000条记录,13个字段,跟训练集的不同是测试集并不包括房屋销售价格,通过由训练集所建立的模型以及所给的测试集,得出测试集相应的房屋销售价格预测值。

2.数据准备

环境:win7+Anaconda+Jupyter notebook

导入数据

发现第一条记录变成了列名,下面进行调整:

查看训练集的形状

训练集中共10000条记录、14条字段

查看训练集的数据类型

3.数据清洗数据清洗的目的

数据清洗主要包括缺失值检查、重复值检查、数据类型转换、剔除异常值。

缺失值检查

训练集不存在缺失值

重复值检查

训练集不存在重复值

数据类型转换

剔除异常值

将13个自变量分别与因变量["salePrice"]建造散点图:

......

其中,房屋面积与销售价格、建筑面积与销售价格有明显的线性趋势,且都有明显的离群值。

房屋面积与销售价格建筑面积与销售价格

4. 建立模型

查看因变量数据分布

建立线性回归模型,首先需要查看一下因变量["salePrice"]是否服从正态分布:

因变量很明显是正偏,需要进行对数处理:

对因变量["salePrice"]进行对数处理后再次建图会发现这次基本符合正态分布,可以进行线性回归建模。

特征工程,筛选变量

可发现,经度["longitude"]与销售价格的相关性仅有约0.029,可以剔除。

构建线性回归模型

使用R^2(拟合优度)指标来评估模型的性能,它的取值在0到1之间,较高的R平方值代表着更好的拟合。

得到的R^2结果可说明筛选的特征变量能解释目标变量中约74%的差异。一般来说拟合优度在0.7以上,我们就认为模型是可靠的。

至此,预测模型建立完成。

接下来,将测试集数据带入预测模型,生成预测结果。

5.数据预测

导入测试集

生成预测

把预测值转换为正确的形式,反向使用log(),执行exp()。因此,用np.exp()来做预测,因为之前已经取了对数。

最终预测结果

将预测结果数据写入文件:

官网提交结果

仍可通过部分参数的调整改进预测模型,提升预测效果。进入Data Castle页面按照要求格式提交结果。成绩如下:

个人成绩排名第64位,最高得分114.77。(注:得分越低,代表成绩越好、排名越高)

截止2018年2月14日晚23点,共有562支参赛队伍,参赛人数共628位。

个人成绩排名在12%以内,结果应该还可以吧,毕竟我也是新手,嘿嘿~~

附:个人在学习过程中总结整理的python3部分知识

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180214G11NEU00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券