全文阅读路线:
数据理解
数据准备
数据清洗
建立模型
数据预测
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部分知识
领取专属 10元无门槛券
私享最新 技术干货