住房月租金预测大数据赛
【Python数据分析实战项目】之 住房月租金预测大数据赛分析|详解
注:图片源于http://www.dcjingsai.com
完整源代码及训练测试集数据请使劲戳 ☛☛ https://github.com/Juuuusper/Housing-Rent-Prediction
—— —— —— 懒惰分界线 —— —— ——
小白第一次分享该类型,? 请多指教\( ̄︶ ̄*\))
—— —— —— 懒惰分界线 —— —— ——
Table of Contents
【Python数据分析实战项目】之 住房月租金预测大数据赛分析|详解
完整源代码及训练测试集数据请使劲戳 ☛☛ https://github.com/Juuuusper/Housing-Rent-Prediction
1.项目任务
1.1数据来源
1.2分析目的
1.3分析问题
2.项目步骤
2.1导入包
2.2数据读取
2.3数据处理
2.3.1 数据探索(EDA)
2.3.2 数据清洗
2.3.3 特征工程
2.4模型选择
2.4.1 LightGBM
2.4.2 XGBOOST
2.4.3 Meta-model Stacking
2.5 模型比较
3.结果分析
1.项目任务
1.1数据来源
- 本项目使用DC竞赛住房月租金预测大数据赛上提供的提供脱敏处理后的真实租房市场数据集进行分析
- 数据为某地4个月的房屋租赁价格以及房屋的基本信息。训练集为前3个月采集的数据,共196539条;测试集为第4个月采集的数据,相对于训练集,增加了“id”字段,为房屋的唯一id,且无“月租金”字段,其它字段与训练集相同,共56279条。
- 本项目对该数据集中的train及test两个csv数据文件进行分析
- 该数据集下载地址为:http://www.dcjingsai.com/
1.2分析目的
利用有月租金标签的历史数据建立不同模型,实现基于房屋基本信息的住房月租金预测,为该城市租房市场提供客观衡量标准。
1.3分析问题
本项目将以训练集数据作为样本训练模型,利用不同模型根据预测集数据进行租金预测,根据结果误差对不同模型性能进行比较,希望确定适用于住房月租金预测的模型,为我国的房地产行业带来一定程度的借鉴参考意义。
2.项目步骤
2.1导入包
2.2数据读取
为了方便查阅,本项目使用魔法命令(以%开始)将matplotlib图表直接嵌入在Notebook之中
用Pandas包的 read_csv()函数分别将文件train.csv和test.csv读入至对应的DataFrame变量中
显示trains的前5行数据
查看trains维度(形状)
查看trains的统计性描述信息
显示test的前10行数据
查看test维度(形状)
查看test的统计性描述信息
训练集测试集合并
2.3数据处理
2.3.1 数据探索(EDA)
1.用直方图画出每个变量,进行初步探索
其中连续变量有:小区名、距离、位置、租金、小区房屋出租数量、地铁站、总楼层,其余为离散变量。
同时发现,“租金”数值分布具有明显偏态,因此将在之后对其纠偏。
2.关联程度分析
对不同影响住房价格因素与房价的关联程度进行分析,通过关联图分析关联程度
用条形图可视化定性分析不同影响住房价格因素与房价的关联程度
用箱线图可视化定性分析不同楼层与卧室数与房价的分布
用箱线图可视化定性分析不同厅与卫数与房价的分布
绘制租房数量和价格的联合图,分析关联程度
绘制距离和价格的联合图,分析关联程度
绘制位置和价格的联合图,分析关联程度
计算各因素与价格的皮尔森系数定量分析相关程度
2.3.2 数据清洗
原始数据中含19个属性变量,且训练集和测试集数据特征不完全相同。因此先将训练集“租金”列以及测试集“id”列单独提出,保存,再将两个数据集合并,得到17个房屋特征。
1. 处理离群点
尝试分别画出17个房屋特征与“租金”的散点图。初步观察发现,“房屋面积”与“租金”的图中存在离群点,因此删去离群点
a)删除前 b)删除后
2. 纠偏
在数据探查时发现“租金”数据具有明显偏态,对其进行纠偏
对数据进行空缺值统计,得到空缺比例如下:
3. 处理缺失值
对缺失值按照如下方法填补:
(1) “装修方式”以0填补,代表无装修
(2) “居住状态”空缺值众多,根据含义将其转化为0-1序列,0代表无人居住(空缺),1代表有人居住(非空缺),用于表示是否居住
(3) “出租方式”空缺值众多,且原数值含义不明,因此删除该列
(4) “地铁线”、“地铁站”、“距离”三列表示房屋附近地铁情况,根据数据类型不同,以“-1”填补前两列代表无地铁站、地铁线,以“2”填补距离列代表距离无限大(原数值已归一化)
(5)小区房屋出租数量含少量空缺,用平均值填补
(6) “位置”、“区”空缺值较少,且为类别型变量,以众数填补。
2.3.3 特征工程
特征工程指的是把原始数据转变为模型的训练数据的过程,它的目的就是获取更好的训练数据特征,使得机器学习模型逼近这个上限。特征工程能使得模型的性能得到提升,有时甚至在简单的模型上也能取得不错的效果。
根据原特征的含义,我们在原特征的基础上通过特征转换构建出了新的特征用于之后的模型训练与数值预测,具体方法如下:
a. 居室总数 = 卧室数量 + 厅的数量 + 卫的数量。为了避免四个变量线性相关,因此删除厅的数量。
b. 居室比例:卧室数量/厅的数量、卧室数量/卫的数量、厅的数量/卫的数量
c. 房屋朝向:由于房屋面积非数字且包含多个方向,因此将房屋面积转换成8个哑变量,分别代表房屋是否有东、西、南、北、东北、东南、西北、西南八个朝向
d. 平均租金:分别按照小区名、区、位置对房屋进行分组,求分组租金平均值,对应小区名、区、位置产生新的三个平均租金列
由于部分变量为类别型变量,因此将这类变量转换为字符串类型。再将预处理后的总数据集拆分成训练集和测试集,用于模型训练和预测。
2.4模型选择
我们需要根据17个特征值对住房月租金进行预测。这是一个回归问题。本文中我们先后尝试了以下几种不同的模型用于训练与预测,并选择了几种效果较优的模型进行模型融合,得到最终模型。
2.4.1 LightGBM
2.4.2 XGBOOST
2.4.3 Meta-model Stacking
Stacking是一种分层模型集成框架,通过元分类器或元回归聚合多个分类或回归模型。基础层次模型(level model)基于完整的训练集进行训练,然后元模型基于基础层次模型的输出进行训练。以两层为例,第一层由多个基学习器组成,其输入为原始训练集,第二层的模型则是以第一层基学习器的输出作为训练集进行再训练,从而得到完整的Stacking模型。
Meta-model Stacking算法:
1、将整个训练集分解成两个不相交的集合(这里是train和.holdout)。
2、在第一部分(train)上训练几个基本模型。
3、在第二个部分(holdout)上测试这些基本模型。
4、使用(3)中的预测(称为 out-of-fold 预测)作为输入,并将正确的标签(目标变量)作为输出来训练更高层次的学习模型称为元模型。
前三个步骤是迭代完成的。例如,如果我们采取5倍的fold,我们首先将训练数据分成5次。然后我们会做5次迭代。在每次迭代中,我们训练每个基础模型4倍,并预测剩余的fold(holdout fold)。
2.5 模型比较
算法通过计算预测值和真实房租月租金的均方根误差来衡量回归模型的优劣。均方根误差越小,说明回归模型越好。均方根误差计算公式如下:
式中 n—样本数;—预测月租金;X—实际月租金;
我们将训练集数据带入不同模型,得到预测结果并与原目标数据(租金)进行对比,计算出RMSE:
从结果可以看出模型预测效果: GBoost>xgboost>lightGMB> Enet\LASSO
于是选择GBoost、xgboost、lightGMB三个模型通过stacking算法进行融合,得到优化结果。
最后通过对单个模型计算RMSE,得到:LightGBM_RMSE为0.0372589;XGBoost_RMSE为0.1997769.
3.结果分析
本文将影响房价的因素指标作为输入变量,运用LightNGB和XGBoost两个模型进行建模,将预测结果和实际结果进行比较,然后再考虑调整输入变量的个数等特征工程和模型参数对模型进行优化,再次建模,得到新的预测结果。最后将多个模型的结果进行比较,得出结论,并对预测结果的实际意义进行解读。通过比较LightGBM模型和XGBoost序列模型的预测结果之间的误差,我们可以发现,LightGBM模型的预测结果误差最小,而XGBoost模型的预测结果误差较大,说明在房价的拟合上,LightGBM模型优于XGBoost模型。
从各个模型的预测结果和实际结果显示,房价依然呈上升趋势,我们应该认识到,对于一个稳定发展的经济体,房价的平稳上升是一个正常的现象,只要房价的增长幅度能和 GDP 的增长以及人民收入水平的提高保持基本的相同,那么可以认为房地产行业在一个合理的范围内运行,房价水平是人民可以承受的,但是当前我国房价显然远远高于我国的人民收入水平,普通工薪阶层往往要倾尽几代人的积蓄才能买房,使得人们必须减少日常消费来缩减开支,造成市场消费需求量的下降,经济体系过于依赖房地产行业,将导致整体消费不足,影响实体经济的健康发展,更多的年轻人因为无力支付高额的房价而选择离开一线城市,并且高额的房价也是导致一线城市生活成本上升的一个主要因素,这样的不利因素之下,越来越多的年轻人将不会选择留在一线城市发展,这将导致一线城市难以持续发展。
因此,我国政府也在一直致力于控制房价的过快上涨,以维持国民经济的健康运行,可以看出我国政府还是十分关注民生问题的。
住房月租金预测大数据赛相关推荐
- ML之LGBMRegressor(Competition):2018年全国大学生计算机技能应用大赛《住房月租金预测大数据赛》——设计思路以及核心代码—191017再次更新
ML之LGBMRegressor(Competition):2018年全国大学生计算机技能应用大赛<住房月租金预测大数据赛>--设计思路以及核心代码-191017再次更新 目录 竞赛相关信 ...
- 【数据挖掘】公寓住房月租金预测
一.项目任务 1.数据来源 该数据及是是一个预测公寓租金竞赛数据,数据来自Kaggle. 通过在互联网上发布的公寓信息,如:房间布局.数量.文字描述.照片.价格等,预测公寓租金.公寓均位于纽约市. 数 ...
- 交通流分析2:《基于公共交通大数据的上海市居民出行时空特征研究_王宇》和《面向交通拥堵预测大数据的神经网络群组快速学习_沈晴》阅读总结
上一篇的地址:https://blog.csdn.net/qq_43012160/article/details/103313749 基于公共交通大数据的上海市居民出行时空特征研究_王宇 这篇论文内容 ...
- 【毕业设计】基于大数据的销量数据预测 -python销量预测 大数据 可视化
文章目录 0 前言 餐厅销量预测 一.建模流程 二.模型简介 2.ARIMA模型介绍 2.1自回归模型AR 2.2移动平均模型MA 2.3自回归移动平均模型ARMA 三.模型识别 四.模型检验 4.1 ...
- 【毕业设计】基于机器学习的餐厅销量预测 -大数据 python
文章目录 0 前言 餐厅销量预测 一.建模流程 二.模型简介 2.ARIMA模型介绍 2.1自回归模型AR 2.2移动平均模型MA 2.3自回归移动平均模型ARMA 三.模型识别 四.模型检验 4.1 ...
- 大数据预测:成都、郑州等跻身春节十大“瘦身”城市
中新社北京1月23日电(记者 刘育英)23日发布的一份春节期间出行大数据预测报告显示,十大人员净流出的"瘦身"城市中,成都.郑州等区域中心城市,以及东莞.苏州.佛山等外来务工人员较 ...
- 沈志勇-百度大数据引擎与分析预测
2019独角兽企业重金招聘Python工程师标准>>> 沈志勇-百度大数据引擎与分析预测 大数据是目前全球关注的一个热点技术领域.百度大数据实验室作为百度大数据引擎的重要组成部分,以 ...
- 新年第一战| 数字中国创新大赛·大数据赛道等你来战
赛事邀请函 Hey! DF的老朋友们!好久不见~ 继2020年百万奖金的NAIC"鹏城赛".万人参与的CCF BDCI赛后,DataFountain平台已发布2021年第一场赛事 ...
- 互联网人必读 | 大数据思维的十大核心原理
2019独角兽企业重金招聘Python工程师标准>>> 大数据思维是客观存在,大数据思维是新的思维观.用大数据思维方式思考问题,解决问题是当下企业潮流.大数据思维开启了一次重大的时代 ...
最新文章
- matlab cell类型数组存至txt文件
- Java NIO (十四)NIO 和 IO 的区别和适用场景分析
- python_线程读写操作一
- 目标检测——Detectron2的学习笔记
- New Concept English three(13)
- 过滤器如何配置(javax.servlet.Filter)?
- 稳定性测试怎么测_药物稳定性试验的细枝末节该如何处理?
- Android 在一个APP内打开另一个APP
- Vue3——Suspense组件
- 请收藏 Navicat 热门话题 | 精选
- Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day37】—— 并发编程3
- 人家不卡学历,是自己真的没能力
- 矩阵的LU分解初步:一个对角线上元素非零的方阵
- android adapter点击事件,Activity中响应Adapter的点击回调事件
- 为什么需要职场软实力
- 云适配陈本峰:HTML5并非真正跨平台
- opencv: 形态学 转换(图示+源码)
- MATLAB算法实战应用案例精讲-【自动驾驶】线控制动(补充篇)
- 推送网页到kindle
- 无法获得锁统一解决方法
热门文章
- HTML各种命令的代码
- Leetcode 刷题必须Review 二 Leetcode(912 215 315 53)
- ADAS测试设备—惯性导航系统简介
- 测试用例设计-等价类划分法
- 跨考西电计算机科学与技术专业介绍,2021年西安电子科技大学计算机科学与技术(081200)人工智能交叉研究方向_考研专业目录_考试科目_考试范围 - 学途吧...
- android poi webview,java-Android(4.4)WebView第二次加载时不显示ifra...
- 高校计算机教师个人总结,大学教师个人总结与自我评价
- Android Dialer模块联系人搜索
- 关系型到文档型的跨越:颠覆你对数据库数据模型的认识
- 助力精准气象和海洋预测笔记