请到后台主题设置添加
首页 / 新房装修指南

用python构建线性回归和决策树模型实现房价预测

  国家整体经济水平的不断提高和人们生活质量的提升,刺激着房屋价格也在不断的上涨,具体可查看国家统计局发布的数据。房价是由多个因素决定的,比如国家的宏观调控、居民人均可支配收入、房地产开发投资、住宅销售面积等,这些因素都影响着房价的走势。   在这里插入图片描述   研究目标:搜集相关数据,运用机器学习实现房价的预测选取指标:   : --需求方面:X1地区生产总值(亿元);X2城镇居民家庭人均可支配收入(元);X3总人口数(万人)   : --供给方面:X4房地产开发投资额(万元);X5住宅房屋竣工面积(万平方米);X6商品房销售面积(万平方米)   : --目标变量:Y商品房平均销售价格(元/平方米)数据及其来源:2000年–2015年全国31个省份的指标数据,其中2000年–2015年作为模型训练和测试数据,2016年的数据作为预测数据。数据来自中国经济社会大数据研究平台。研究方法及思路:分别构建线性回归和决策树模型实现对房价的预测,并进行对比分析。调用Python的sklearn、statsmodels包,运行环境为Python3.5.2、Anaconda4.2.0。 在这里插入图片描述   在这里插入图片描述   首先,查看数据基本分布情况。   在这里插入图片描述   查看各变量间的相关系数。   在这里插入图片描述   在这里插入图片描述   根据相关系数表和散点图矩阵,X2城镇居民家庭人均可支配收入与Y商品房平均销售价格的线性相关性最大,相关系数超过了0.8,其次是X4房地产开发投资额,相关系数超过了0.5。但是,X3总人口数与X5住宅房屋竣工面积、X4房地产开发投资额与X6商品房销售面积的相关系数超过了0.8,即各因素间存在多重共线性,不满足相互独立的条件,不太适合直接进行线性回归。但是为了对比模型效果,后面还是构建了线性回归模型。   运用sklearn.model_selection的train_test_split进行数据集划分,也可以用k折交叉验证(KFold)。   在这里插入图片描述   为了更全面的评估模型效果,分别运用sklearn.linear_model和statsmodels.api.sm构建线性回归模型,综合两个模型的结果更好的解释模型。其中 sklearn(https://scikit-learn.org/stable/index.html)是机器学习中一个常用的python第三方模块,里面对一些常用的机器学习方法进行了封装,比如SVM、KNN、贝叶斯、线性回归、逻辑回归、决策树、随机森林、xgboost、GBDT、boosting、神经网络NN;statsmodels(http://www.statsmodels.org)用于拟合多种统计模型,比如方差分析、ARIMA、线性回归等,执行统计测试以及数据探索和可视化。   在这里插入图片描述   用6个影响因素建立线性回归模型,发现虽然模型的拟合优度和调整的超过了0.8,即拟合效果很好,但是X1和X4没通过显著性检验((P>|t|)<0.05为通过检验),模型不可用。剔除X1和X4,重新构建模型,整个模型和各个因素均通过了显著性检验,可用该模型对Y商品房平均销售价格进行预测。   在这里插入图片描述   通过决策树回归得到,X2城镇居民家庭人均可支配收入对Y商品房平均销售价格影响最大,其重要性系数为0.7588,远高于其他因素,与相关系数分析结果一致。   为了解决策树的构建过程,生成可视化决策树。   首先运用export_graphviz生成dot文件;然后打开命令提示框,转到graphvizbin目录,比如D:Programe Filesgraphvizbin目录;执行dot.exe -Tpng E:pythonMytestsklearnhouse_tree.dot -o E:pythonMytestsklearnhouse_tree_20201204.png。   生成可视化决策树,无法显示问题可参见https://blog.csdn.net/weixin_38490102/article/details/79045798。   在这里插入图片描述   (1)模型评估   根据模型评估参数以及折线图,可以看出决策树回归的效果比线性回归效果好。   在这里插入图片描述   在这里插入图片描述   在这里插入图片描述   (2)模型预测   用构建的线性回归模型和决策树回归模型分别预测2016年全国各省商品房平均销售价格。   在这里插入图片描述   结合地图直观展示两种模型的预测结果。   在这里插入图片描述   通过分别构建线性回归模型和决策树回归模型,发现X2城镇居民家庭人均可支配收入对Y商品房平均销售价格影响最大;决策树回归模型效果更好,但是线性回归结果更容易解释,所以在解决实际问题时,往往会对同一份数据构建不同模型,进行综合探索与分析。   ps:初衷是通过撰写博文记录自己所学所用,实现知识的梳理与积累;将其分享,希望能够帮到面临同样困惑的小伙伴儿。如发现博文中存在问题,欢迎随时交流~~
版权说明:
1.版权归本网站或原作者所有;
2.未经本网或原作者允许不得转载本文内容,否则将视为侵权;
3.转载或者引用本文内容请注明来源及原作者;
4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。
你可能感兴趣的文章
搜索
最新留言
关注我们
关注我们
微信
关注我们
微博
请到后台主题设置添加

Powered ByZ-Blog.