【完整版】2019h1深圳二手楼市热度如何?(数据爬取、分析&建模)

2019h1深圳二手楼市热度如何?(数据爬取、分析&建模)

一、数据爬取

1.1 多进程爬取2w+深圳已成交二手房数据

具体步骤省略(阅读时可跳过此处,具体内容及代码欢迎查阅&fork:https://www.kesci.com/home/project/5d5e4ca78499bc002c05b75e

  1. 注意代码应记录或提示爬取出错的相关信息,以便查询。
  2. 注意异常处理,以免程序假死或失败。

二、数据分析

2.1 数据清洗与初探

具体步骤省略(阅读时可跳过此处,具体内容及代码欢迎查阅&fork:https://www.kesci.com/home/project/5d5e4ca78499bc002c05b75e

(1) 数据清洗
  1. 去除无用字段、提取字段信息、字段数值化等等后,数据集的基本信息如下:
    在这里插入图片描述
  2. 在部分数值字段描述中发现异常:
    在这里插入图片描述
    可以发现建成年代最大值存在异常,竟然有二手楼盘是2058年建成!
    于是先找到建成年代大于等于2020年的楼盘,如下:
    在这里插入图片描述
    直接查询同名楼盘建成年代众数来填补错误,并检查。
(2) 数据初探
  1. 数据整体房源分布、成交单价初探:在这里插入图片描述
  2. 用powermap可视化二手房源位置及区域平均单价:
    显然近香港的罗湖区、福田区、南山区成交楼盘最为密集,价格也最高。
    在这里插入图片描述
  3. 查看整体数据中,挂牌和成交时间分布直方图:
    可以发现2015上半年及之前基本没有挂牌信息,爬取的数据主要集中在2018及2019年。
    我们会简单对比2019和2018上半年情况,并着重分析2019h1的房源情况。
    在这里插入图片描述

2.2 分析深圳2019上半年二手楼市

(1) 2019上半年深圳二手房成交情况总览
  1. 2019上半年部分数值字段描述:
    2019上半年共成交8802套二手房,平均成交价390.658259,平均成交单价5.512047,平均成交周期126.419791,平均建筑面积70.323028。
    在这里插入图片描述
  2. 2019h1深圳二手房成交量日历图:
    用pyechart作成交量日历图,观察到三、四月成交较多,且周日、周一比较火热。
    在这里插入图片描述
    3.各区成交单价箱型图:
    成交单价方面南山区首屈一指,而宝安区已超过了中心区域的罗湖区。
    在这里插入图片描述
(2) 对比2018/2019上半年楼市,其热度有什么变化?
  1. 首先提取2018年上半年(1.1~6.30)成交数据,看一下部分字段描述:
    2018年上半年,共成交4813个楼盘,而2019h1成交数是8802,两者差别较大。
    2018年上半年 浏览、建成年代 略有缺失,套内面积 缺失严重,若需建模需考虑填补或舍去。
    在这里插入图片描述
  2. 通过powermap观察2018h1、2019h1二手房成交分布情况差异:
    由图可以发现2018上半年缺失龙岗区的成交记录,验证数据后发现确实如此(略)。
    所以在和2018h1对比时,2019h1应剔除龙岗区的成交记录。单独讨论2019h1时则使用其全部数据。
    在这里插入图片描述
  3. 提取2019年上半年(1.1~6.30)成交数据(除龙岗区),看一下整体描述:
    2019年上半年(除龙岗区),共成交6813个楼盘。
    浏览、建成年代略有缺失,套内面积缺失严重,若需建模需考虑填补或舍去。
    在这里插入图片描述
  4. 对比2018h1和2019h1(除龙岗区):
    图1. 楼盘成交周期分布更加平缓,19上半年卖出的房源,挂牌时间往往更久。
    图2. 成交楼盘中户型成交倾向由原来70-80平,改为80-90平,意味着成交价格更高。
    图3. 成交价、单价等价格相关均有不同程度上涨。
    另外,带看量 和 浏览数 明显增加,可能体现了热度的增长,但主要和网站用户量和数据收集情况有关,仅可参考。
    在这里插入图片描述
    简评:
    虽然19年上半年房价高企,但大家却倾向于买更大建筑面积楼盘,可见资金仍然比较充足,土豪或加杠杆的人数仍比较多。
    另外楼盘平均成交周期增长,可能体现了买家相较过去更为谨慎。
    目前来看,2019上半年深圳楼市"似乎"还是相当火热!
(3) 对比2018/2019上半年楼市,加价/减价成交情况有何变化?
  1. 2019上半年(除龙岗区)成交二手房加减价比例:
    从图中了解到加价成交占总体成交5.02%,减价成交占87.42%
    在这里插入图片描述
  2. 2018上半年成交二手房加减价比例:
    我们再参考一下2018h1的情况,发现18年上半年减价成交占比更少,加价成交占比更多。
    在这里插入图片描述
  3. 2018h1/2019h1(除龙岗区)成交加减价情况:
    由图可知,2019h1(除龙岗区)加价成交幅度略增,减价成交的幅度增加明显。
    另外,2019h1(除龙岗区)的楼盘成交平均要降价15.78万。
    在这里插入图片描述
  4. 2019h1各区成交平均降价幅度:
    其中南山区、宝安区、龙华区这三个成交量居中的区域,平均降价幅度最大。
    另外我们再观察各区域降价情况,南山区这样比较不错的地段,平均降价30万+才能成交。
    无论如何,在出价策略长期不变的情况下,可见出价者和求购者的认知存在偏差。
    在这里插入图片描述
(4) 2019上半年哪类房子比较好卖?(成交数量多)

ps:为缩减篇幅只分析一部分较有价值的属性。

  1. 2019h1、2018h1建筑面积kde图:
    由图可知40平左右小户型和80平左右中户型比较好卖。
    在这里插入图片描述
  2. 房屋朝向成交量、成交价、成交单价关系图:
    朝向南或北的房子好卖,但同时朝南北却卖得不是很多。
    由图或查看数据可知:虽然南北朝向平均单价不高,但可能面积较大,成交总价较高,令人生畏。
    在这里插入图片描述
  3. 户型、装修成交情况:
    成交数前5的户型中,前三名是"2室1厅1厨1卫",“1室1厅1厨1卫”,“2室2厅1厨1卫”。看来还是主流户型(性价比高)比较好卖呀!
    精装房最受欢迎。毛坯成交量最少,查阅数据可知其平均单价倒数第二,但平均总价却最高。
    在这里插入图片描述
  4. 区域成交量:
    罗湖区、龙岗区二手房最好卖。
    在这里插入图片描述
  5. 楼层数分布及楼层位置成交情况:
    楼盘总层数为7层或32层左右比较好卖
    房屋在中层比较好卖,高层太吓人,底层阳光少,视野窄。
    在这里插入图片描述
  6. 是否配电梯及梯户比例成交情况:
    这年头都是高楼大厦,没电梯简直难于上青天。其中一梯四户,一梯两户,两梯四户比较好卖。
    在这里插入图片描述
  7. 建成年代成交量分布图:
    2000~2008左右建成的房子成交量较多
    在这里插入图片描述
(5) 其他
  1. WordCloud-楼盘热度:
    哪些是热门楼盘?
    在这里插入图片描述
  2. 下图是部分字段的相关系数热力图,我们会发现:
    (1)成交周期和调价存在弱相关性。
    (2)关注数和带看次数有一定相关性,但关注数和带看次数并没有和成交周期形成负相关。
    (3)浏览数和关注数没有多大关系,所以这方面数据仅供参考。
    (4)有趣的是,浏览数最高达到532127的楼盘,成交周期还是要112天,估计是业主做了推广,但仍没有很快成交。
    在这里插入图片描述
  3. tableau仪表盘:
    https://public.tableau.com/views/2019_15670928250750/1?:embed=y&:display_count=yes&:origin=viz_share_link
    在这里插入图片描述

2.3 分析总结

  1. 通过上面的分析,我们了解到深圳2019h1的二手楼市,同比2018h1,2019h1的房价依然稳中有进,较为火热,但平均成交周期更长,减价成交比例增加,买卖方认知差异拉大,买方更加谨慎。
  2. 所以如果想卖得更快,早点变现,可以先考察一下自己房子属性如何,如果优势不大则适当减价吧。
  3. 想起今年的一句流行言论:“2019可能是过去10年最差的一年,但也是未来10年最好的一年。”面对可能出现变局的房地产市场,我们能做的就是持续关注,做好功课,免得决策失误,拍断大腿!

欢迎查阅本篇代码完整版:https://www.kesci.com/home/project/5d5e4ca78499bc002c05b75e

三、数据建模

该部分会省略大量代码,具体内容请查看代码完整版。

3.1 特征选取

(1) 维度拓展(POI内容获取)

通过百度地图api,获取相关经纬度500m,1000m,2000m范围内所需poi数量内容:
(经纬度用于 1.poi数据获取 2.merge原数据集和poi数据集)
在这里插入图片描述
在这里插入图片描述

(2) 原数据集字段选取

根据3.5中关系热力图的去除对成交单价影响较小字段。
去除缺失较多或可替代的字段。
数据集中交易权属都为商品房,暂时去除;梯户比例种类繁杂且较集中于几种,暂不加入。
在这里插入图片描述

(3) 合成建模数据集

在这里插入图片描述

3.2 数据预处理&查看

(1) 数据预处理函数构建

分别构建以下数据预处理函数:

  • 空值处理函数 - 利用同经纬度楼盘信息填补,若无相关信息则用整体众数填充。
  • 异常值查看和处理函数 - 3倍iqr范围异常值去除
  • 房屋户型哑变量获取函数
  • 房屋朝向哑变量获取函数
  • 其他哑变量获取函数
(2) 数据预处理并查看
  1. 首先对【‘户型结构’,‘建筑类型’,‘建成年代’,‘配备电梯’,‘房权所属’,‘产权年限’】填充空值
  2. 通过箱型图查看一下最终会保留的连续值字段异常值情况,并处理异常值,此处我们用3倍iqr:
    在这里插入图片描述
  3. 房屋户型 哑变量获取
  4. 房屋朝向 哑变量获取
  5. 其他哑变量获取 - 【‘所在楼层’,‘户型结构’,‘建筑类型’,‘装修情况’,‘配备电梯’,‘房屋用途’,‘房权所属’】
  6. 观察之前箱型图字段的分布情况,偏态情况减小:
    在这里插入图片描述

3.3 训练模型

(1) 数据准备
  1. 准备训练集、测试集,分别拆分出xtrain,ytrain,xtest,ytest
  2. 定义k折交叉拆分器 - 用于网格搜索
  3. 定义回归模型性能查看函数
(2) lasso回归模型

此处用到LassoCV(可自动通过Cross Validation搜索最佳正则系数alpha),性能情况如下:

最佳alpha值: 0.1
train :
mean squared error is: 5866.1306605690725
mean absolute error is: 52.63572482286287
R Squared is: 0.8142003463697659
mean absolute percent error is: 0.15272275854277395


test :
mean squared error is: 6940.790079075325
mean absolute error is: 56.64143852727948
R Squared is: 0.7837884925316358
mean absolute percent error is: 0.16194771064655833


可见mae > 50w+,预测结果不理想。

(3) 随机森林回归模型

定义RandomForestRegressor随机森林回归模型并进行网格搜索,性能情况如下:

最佳alpha值: {‘max_depth’: 10, ‘max_features’: ‘auto’, ‘n_estimators’: 500}
train :
mean squared error is: 1418.8145215140926
mean absolute error is: 24.641916388425237
R Squared is: 0.9550614771616268
mean absolute percent error is: 0.06822412461801346


test :
mean squared error is: 3337.751860311248
mean absolute error is: 35.17980895328542
R Squared is: 0.896026193984911
mean absolute percent error is: 0.09469746708246876


mae降到了30w左右。

(4) xgboost模型

定义xgboost模型并进行网格搜索,性能情况如下:

{‘colsample_bytree’: 0.6, ‘max_depth’: 6, ‘n_estimators’: 1000, ‘reg_alpha’: 0, ‘subsample’: 0.6}
train :
mean squared error is: 159.2255553231461
mean absolute error is: 9.285820319259521
R Squared is: 0.9949568029183222
mean absolute percent error is: 0.028887646995371632


test :
mean squared error is: 1962.5934603322894
mean absolute error is: 24.419883692583003
R Squared is: 0.9388635464015461
mean absolute percent error is: 0.06388880018075778


mae降到了20w+。

(5) 集成调优
  1. 这里我们首先获取xgboost模型各特征重要程度数值:
    在这里插入图片描述

  2. 以重要程度中位数以上选取特征名称:
    [‘经度’, ‘纬度’, ‘建筑面积’, ‘建成年代’, ‘楼层数’, ‘地铁站_500m’, ‘地铁站_1000m’, ‘地铁站_2000m’, ‘公交车站_500m’, ‘三甲医院_2000m’, ‘小学_500m’, ‘小学_1000m’, ‘小学_2000m’, ‘室’, ‘厅’, ‘卫’, ‘房屋朝向_南’, ‘房屋朝向_东’, ‘房屋朝向_北’, ‘所在楼层_中楼层’, ‘所在楼层_低楼层’, ‘所在楼层_高楼层’, ‘建筑类型_塔楼’, ‘装修情况_其他’, ‘装修情况_简装’, ‘装修情况_精装’, ‘房权所属_共有’, ‘ensemble_rf’, ‘成交价’]

  3. 原数据集集成随机森林预测结果 并 根据重要特征列表筛选数据集,生成xxtrain,xxtest,yytrain,yytest

  4. 重新定义xgboost模型并进行网格搜索,性能情况如下:

{‘colsample_bytree’: 0.6, ‘max_depth’: 6, ‘n_estimators’: 1000, ‘reg_alpha’: 0, ‘subsample’: 0.9}
train :
mean squared error is: 89.51619788727905
mean absolute error is: 7.000624772614124
R Squared is: 0.9971662290176454
mean absolute percent error is: 0.022116629050790163


test :
mean squared error is: 1105.3433054824618
mean absolute error is: 19.5376985707211
R Squared is: 0.9654939961043317
mean absolute percent error is: 0.052662943951393294


mae降到了20w以下,总体性能不断提升。

3.4 建模总结

  • 本次建模,我们对数据集进行了POI兴趣点数据扩充。

  • 使用了lasso回归模型(线性回归)、随机森林回归模型、xgboost模型及基于xgboost的集成学习模型。

  • 虽然用于训练的数据集只有8k左右,但模型成交价预测的MAE(平均绝对误差),从50w+最终控制在了20w以内,体现出集成学习的优势。

  • 在模型调优方面,特征补充、预处理、参数调优和集成学习等步骤还有很多空间。

  • 其中最重要的是 特征补充 和 数据预处理,对预测性能影响很大。

  • 另外,扩充数据集也会带来很大帮助。

  • 最后,如果真要卖房子,适当提点价,好歹留点讲价空间。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值