一、项目任务

1、数据来源

该数据及是是一个预测公寓租金竞赛数据,数据来自Kaggle。

通过在互联网上发布的公寓信息,如:房间布局、数量、文字描述、照片、价格等,预测公寓租金。公寓均位于纽约市。

数据为预测公寓租金竞赛数据:http://dataju.cn/Dataju/web/datasetInstanceDetail/337

2、分析目的

利用有月租金标签的历史数据建立不同模型,实现基于房屋基本信息的住房月租金预测,为该城市租房市场提供客观衡量标准。

3、分析问题

本项目将以训练集数据作为样本训练模型,利用不同模型根据预测集数据进行租金预测,根据结果误差对不同模型性能进行比较,希望确定适用于住房月租金预测的模型,

为我国的房地产行业带来一定程度的借鉴参考意义。

二、项目分析

1、数据读取

看一下训练数据train.csv

train_data.describe()

再看一下测试数据test.csv

test_data.describe()

2、数据探索(EDA)

偏度值:可以用来度量随机变量概率分布的不对称性。

峰度值:可以用来度量随机变量概率分布的陡峭程度。

(1)查看租金分布曲线,画出曲线分布图和租金散点图

首先观察租金数据,可以看到此数据是符合正态分布的,但是偏度值过大,我们发现了一条大尾巴,“租金”数值分布具有明显偏态,因此将在之后对其纠偏。

(2)查看公寓各个属性的数据直方图

接下来再看一看一些比较重要的属性对结果的影响

直方图是为了表明数据分布情况。通俗地说就是哪一块数据所占比例或者出现次数较高,哪一块出现概率低,下图是18个属性所出现的情况

其中连续变量有:小区名(Cname)、小区房屋出租数量(rent_quantity)、总楼层(total_floors)、位置(position)、地铁站(subway_station)、距离(distance)、租金(rent),其余为离散变量。

(3)对于离散型变量,我们用boxplot来表示(箱图)

离散变量有:时间(time)、层数(floor)、房屋面积(space)、房屋状态(state)、卧室数(bedroom_num)、客厅数(hall_num)、厕所数(toilet_num)、

出租方式(rent_style)、区(area)、地铁线(subway_line)、装修状况(decoration_situation)。

卧室数与租金的箱图

客厅数与租金的箱图

厕所数与租金的箱图

区(area)与地铁线(subway_line)的箱图

(4)关联程度分析

对不同影响住房价格因素与房价的关联程度进行分析,通过关联图分析关联程度。

用条形图可视化定性分析不同影响住房价格因素与房价的关联程度

(4)查看缺失数据

3、数据清理

由于数据可能是不完全的、有噪声的、随机的,有复杂的数据结构,就要对数据进行初步的整理,清洗不完全的数据,做初步的描述分析,选择与数据挖掘有关的变量,或者转变变量。

(1)离群点处理

此图为房屋面积与租金之间的关系散点图,按照常理,面积越大的房屋,租金会相对较高,但是有几个点明显偏离,故需要删除离群点

删除面积大于0.2的数据,再删除面积大于0.125租金小于20的数据

(2)纠偏

原始的数据情况:

正态分布变换:后面的尾巴过长,需要进行纠偏(数据对数变换)

(3)处理缺失值

查看一下缺失值,total为缺失数,ratio为缺失比例。

对于缺失数据过大的属性,可以选择舍弃,对于缺失较小的属性数据可以进行填补:

(1) 缺失过大的数据直接删除(decoration situation、state、rent_style)

all_data.drop(['decoration situation'], axis=1, inplace=True)
all_data.drop(['state'], axis=1, inplace=True)
all_data.drop(['rent_style'], axis=1, inplace=True)

(2) “地铁线”、“地铁站”、“距离”三列表示房屋附近地铁情况,根据数据类型不同,以“1”填补距离列代表距离无限大,以“0”填补前两列代表无地铁站、地铁线

all_data["distance"]=all_data["distance"].fillna(1)
all_data["subway_line"]=all_data["subway_line"].fillna(0)
all_data["subway_station"]=all_data["subway_station"].fillna(0)

(3)小区房屋出租数量含少量空缺,用平均值填补

mean_val = all_data["rent_quantity"].mean()
all_data["rent_quantity"] = all_data["rent_quantity"].fillna(mean_val)

(4) “位置”、“区”空缺值较少,且为类别型变量,以众数填补。

mode_area = all_data["area"].mode()
mode_position = all_data["position"].mode()
all_data["area"] = all_data["area"].fillna(int(mode_area))
all_data["position"] = all_data["position"].fillna(int(mode_position))

处理后的结果

4、特征工程

特征工程指的是把原始数据转变为模型的训练数据的过程,它的目的就是获取更好的训练数据特征,使得机器学习模型逼近这个上限。

特征工程能使得模型的性能得到提升,有时甚至在简单的模型上也能取得不错的效果。

根据原特征的含义,我们在原特征的基础上通过特征转换构建出了新的特征用于之后的模型训练与数值预测,具体方法如下:

a. 居室总数 = 卧室数量 + 厅的数量 + 卫的数量。为了避免四个变量线性相关,因此删除厅的数量。

b. 居室比例:卧室数量/厅的数量、卧室数量/卫的数量、厅的数量/卫的数量

c. 房屋朝向:由于房屋面积非数字且包含多个方向,因此将房屋面积转换成8个哑变量,分别代表房屋是否有东、西、南、北、东北、东南、西北、西南八个朝向

d. 平均租金:分别按照小区名、区、位置对房屋进行分组,求分组租金平均值,对应小区名、区、位置产生新的三个平均租金列

由于部分变量为类别型变量,因此将这类变量转换为字符串类型。再将预处理后的总数据集拆分成训练集和测试集,用于模型训练和预测。

5、模型选择

我们需要根据17个特征值对住房月租金进行预测。这是一个回归问题。本文中我们先后尝试了以下几种不同的模型用于训练与预测,并选择了几种效果较优的模型进行模型融合,得到最终模型。

(1)LightGBM

(2)XGBoost

算法通过计算预测值和真实房租月租金的均方根误差来衡量回归模型的优劣。均方根误差越小,说明回归模型越好。均方根误差计算公式如下:

式中  n—样本数;—预测月租金;X—实际月租金;

我们将训练集数据带入不同模型,得到预测结果并与原目标数据(租金)进行对比,计算出RMSE:

6、结果分析

本文将影响房价的因素指标作为输入变量,运用LightNGB和XGBoost两个模型进行建模,将预测结果和实际结果进行比较,然后再考虑调整输入变量的个数等特征工程和模型参数对模型进行优化,再次建模,得到新的预测结果。最后将多个模型的结果进行比较,得出结论,并对预测结果的实际意义进行解读。通过比较LightGBM模型和XGBoost序列模型的预测结果之间的误差,我们可以发现,LightGBM模型的预测结果误差最小,而XGBoost模型的预测结果误差较大,说明在房价的拟合上,LightGBM模型优于XGBoost模型。

从各个模型的预测结果和实际结果显示,房价依然呈上升趋势,我们应该认识到,对于一个稳定发展的经济体,房价的平稳上升是一个正常的现象,只要房价的增长幅度能和 GDP 的增长以及人民收入水平的提高保持基本的相同,那么可以认为房地产行业在一个合理的范围内运行,房价水平是人民可以承受的,但是当前我国房价显然远远高于我国的人民收入水平,普通工薪阶层往往要倾尽几代人的积蓄才能买房,使得人们必须减少日常消费来缩减开支,造成市场消费需求量的下降,经济体系过于依赖房地产行业,将导致整体消费不足,影响实体经济的健康发展,更多的年轻人因为无力支付高额的房价而选择离开一线城市,并且高额的房价也是导致一线城市生活成本上升的一个主要因素,这样的不利因素之下,越来越多的年轻人将不会选择留在一线城市发展,这将导致一线城市难以持续发展。

因此,我国政府也在一直致力于控制房价的过快上涨,以维持国民经济的健康运行,可以看出我国政府还是十分关注民生问题的。

【数据挖掘】公寓住房月租金预测相关推荐

  1. ML之LGBMRegressor(Competition):2018年全国大学生计算机技能应用大赛《住房月租金预测大数据赛》——设计思路以及核心代码—191017再次更新

    ML之LGBMRegressor(Competition):2018年全国大学生计算机技能应用大赛<住房月租金预测大数据赛>--设计思路以及核心代码-191017再次更新 目录 竞赛相关信 ...

  2. 住房月租金预测大数据赛

    [Python数据分析实战项目]之 住房月租金预测大数据赛分析|详解 注:图片源于http://www.dcjingsai.com 完整源代码及训练测试集数据请使劲戳 ☛☛ https://githu ...

  3. ML之RF/kNNC/LoRC/SVMC/RFC/GBDTC:利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/住房等)预测客户是否购买该银行的产品二分类(评估、调优、推理)

    ML之RF/kNNC/LoRC/SVMC/RFC/GBDTC:利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/住房等)预测客户是否购买该银行的产品二分类(评估.调优.推理) 导读:根据客 ...

  4. ML之RF:利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/住房等)预测客户是否购买该银行的产品二分类(预测、推理)

    ML之RF:利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/住房等)预测客户是否购买该银行的产品二分类(预测.推理) 目录 利用Pipeline(客户年龄/职业/婚姻/教育/违约/余额/ ...

  5. 机器学习项目实战(五) 住房价格预测

    机器学习项目实战系列   住房价格预测 目录 机器学习项目实战系列   住房价格预测 一.概述 二.分析数据 1.数据导入 2.基础统计运算 3.特征观察 4.建立模型 5.分析模型表现 (1)学习曲 ...

  6. Task 3 特征工程 Datawhale零基础入门数据挖掘- 二手车交易价格预测

    Task 3 特征工程 Datawhale零基础入门数据挖掘- 二手车交易价格预测 Tips:此部分为零基础入门数据挖掘的Task3特征工程部分,主要包含各种特征工程以及分析方法 赛题:零基础入没人能 ...

  7. 零基础入门数据挖掘——二手车交易价格预测:baseline

    零基础入门数据挖掘 - 二手车交易价格预测 赛题理解 比赛要求参赛选手根据给定的数据集,建立模型,二手汽车的交易价格. 赛题以预测二手车的交易价格为任务,数据集报名后可见并可下载,该数据来自某交易平台 ...

  8. python数据挖掘课程设计——基于数据挖掘的森林火灾预测分析(数据代码+数据分析+数据可视化展示)

    基于数据挖掘的森林火灾预测分析 [摘要]随着全球范围性的温室效应,全球气温正逐步升高,为对抗温室效应,森林已经成为我们急需保护的资源,但是火灾时刻威胁着森林资源.为了帮助对抗温室效应.保护森林,本研究 ...

  9. 《零基础入门数据挖掘 - 二手车交易价格预测》Baseline实施

    @[TOC]<零基础入门数据挖掘 - 二手车交易价格预测>baseline实施 <零基础入门数据挖掘 - 二手车交易价格预测>Baseline实施 前面陆陆续续学习机器学习大概 ...

最新文章

  1. LeetCode 340. Longest Substring with At Most K Distinct Characters
  2. 别人给你网盘分享东西怎么搞到电脑上看呢?
  3. 数据库笔记11:创建与管理存储过程
  4. mysql启动提示 access denied for user root@localhost(using password:YES) 解决办法总结
  5. ES2020 中 Javascript 10 个你应该知道的新功能
  6. PAT-乙级-1039. 到底买不买(20)
  7. python面向对象编程指南 脚本之家_Python面向对象编程之继承与多态详解
  8. ZeroMQ设置超时等待
  9. asp.net 为FCKeditor开发代码高亮插件实现代码
  10. 整理一些css在使用中的小技巧(进行中)
  11. 从头学计量-SPSS攻克常见信度检验1
  12. 【其实是空空荡荡的牵挂,没有结局的怀念】
  13. 华为ensp_三层交换
  14. 呼叫中心外呼系统与双呼系统对比
  15. Spring 面向切面编程(AOP) D5
  16. 前端、后端、学习网址
  17. 微信H5拉起(跳转)微信小程序
  18. Coursera视频打不开终极办法
  19. 托福学习计划日本留学考研
  20. 高盛:维持水滴公司“买入”评级,目标价9.5美元

热门文章

  1. 用鸿蒙开发AI应用(五)HDF 驱动补光灯
  2. 电子政务网络智慧运维方案
  3. 科大讯飞NLP算法赛baseline:文本分类实践+0.79
  4. CSS浮动与定位 逆战班
  5. ASP.NET入门教程(经典)
  6. 论文词汇:使用Although转折引出,本文研究内容还没有很多关注。
  7. 全国中学生计算机大赛+试题,全国青少年信息学奥林匹克竞赛(NOI2018)正式开幕(附day1试题)...
  8. 怎样快速提取视频中的音频文件?
  9. 时间格式转换 Mon Aug 17 2020 16:29:29 GMT+0800 (中国标准时间)
  10. 技术人如何打造个人品牌,提高身价?