【机器学习报告】我用链家的数据做了一个超过链家模型的二手房房价预测模型

本文详述了一项使用机器学习预测二手房成交价的项目,目标是建立一个优于链家模型的预测系统。作者通过爬虫获取北京二手房数据,进行数据清洗、特征处理、模型训练与优化,最终通过模型融合提升预测精度。在与链家模型的PK中,作者的模型在测试集上的平均误差显著低于链家模型,证明了其优越性。
摘要由CSDN通过智能技术生成


前言

在二手房交易市场中,普遍存在挂盘价与成交价偏差大的问题,如何精准预测二手房成交价成为一大难题。本模型的目标是训练出一个根据二手房相关特征来数据预测二手房成交价的模型,保证预测准确度要优于网站的预测模型,并给二手房出售标价提供参考价值。
(好吧这其实是我这学期数据挖掘课的大作业)


数据准备

爬虫准备

  1. 数据来源: 数据来自链家的官方交易网站https://bj.lianjia.com/chengjiao/,为了保证数据量足够大,我们的任务瞄准了北京的二手房成交信息。
  2. 数据获取: 使用python编写异步爬虫脚本,该多线程脚本大大减少了爬虫所需的时间,使用了aiohttp、asyncio、lxml等相关库
  3. 获取分布合理的数据集: 考虑到网站上只列出了100页具有相同约束的交易记录,总计达3000条记录,这对于训练数据集来说太小了。因此,我们选择使用几个属性的组合来扩展网站提供的记录。用价格和面积相结合,可以得到56*100页的数据量,同时也保证了数据分布的流畅性。

特征展示

  1. 决策变量:
  2. 特征变量:

变量统计性描述

  1. 决策变量 total_price 成交价:对0-1500万的房屋绘制直方图和密度图,我们可以发现数据是比较均匀的,绝大部分处于100-500万。
  2. average_price 小区交易成交均价:对小区交易成交均价绘制直方图和密度图,均价集中在1-7万。
  3. district 所在行政区:对所在行政区绘制柱状图,可以看出我们的数据分布在北京各个行政区,较为平衡。其中,在昌平区和朝阳区的交易二手房较多。
  4. date_of_deal 成交日期:通过成交日期的柱状图,我们可以看出大部分数据是分布在2019、2020年,其他年份的数据是较少的。
  5. completion_year 建成年限:通过柱状图可以看出,房屋的建成年限集中分布在1990年到2014年。
  6. 成交价与建筑面积的相关性分析:通过散点图,我们可以看出成交价与建筑面积呈现明显的正相关趋势,这暗示建筑面积是个强相关变量。

数据处理

数据清洗与异常值过滤

  1. 去除数据中house_type为车位的数据
  2. 去除total_price、average_price、built_up_area为空数据
  3. 去除built_up_area > 10000 and built_up_area < 5的数据
  4. 去除total_price > 10亿的数据

数据截断

对于回归问题,考虑到数据的分布以及模型训练的有效性,我们将目标锁定为:

  1. 售价小于2000万的样本
  2. 包含成交10个及以上的小区样本
  3. 成交年份在2019至2020年的样本
  4. 最终我们得到共77766条有效样本

数据集划分:

  1. 考虑到数据和模型的时效性,我们将成交于2020年的样本随机划分为7比3的份额,将2019年数据与70%的2020年数据作为训练集,30%的2020年数据作为验证集。
  2. 最终我们得到65897个训练样本,11869个验证样本。
  3. 训练集与验证集total_price、build_up_area数
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值