住房月租金的预测由于特征相对明显以及问题本身的复杂度较低,因此在预测中属于相对简单的,适合新手上手。本篇博客是根据自己的一系列经验以及开源社区的许多大佬整理而来,如有不合理的地方,还请多多批评指教,大家共同进步。本人看来,对这种预测问题,最重要的还是前期的数据探索以及特征工程,毕竟特征决定上限,算法只是逼近这个上限而已,所以本文的侧重点也在特征工程方面。(以下内容包含主要部分的代码及结果,需要数据集的请关注一波,私信我)
先看一下任务需求:
利用某地1-3月份的房屋租赁价格以及房屋的基本信息,对4月份的房屋月租金进行预测。
PS: 由于数据的保密性,因此提供的数据做了一定程度的脱敏处理,数据特征的大小关系以及相对关系保留。
接下来是数据集:
数据分为两组,分别是训练集和测试集:训练集为前3个月采集的数据,共196539条。 测试集为第4个月采集的数据,相对于训练集,增加了“id”字段,为房屋的唯一id,无“月租金”字段,其它字段与训练集相同,共56279条。
相关特征如下:(共19个特征)
字段名 | 说明 | 字段名 | 说明 |
---|---|---|---|
时间 | 房屋信息采集时间 | 小区名 | 房屋所在小区(脱敏) |
小区房屋出租数量 | 小区房屋出租数量(脱敏,保留大小关系) | 楼层 | 楼层高中低(脱敏) |
总楼层 | 房屋所在建筑的总楼层数(脱敏) | 房屋面积 | 房屋面积(脱敏) |
房屋朝向 | 房屋朝向 | 居住状态 | 是否已经出租或居住中(脱敏) |
卧室数量 | 卧室数量 | 客厅数量 | 客厅数量 |
卫的数量 | 卫的数量 | 租出方式 | 表示是否整租 |
区 | 房屋所在区级行政单位(脱敏) | 位置 | 小区所在商圈(脱敏) |
地铁线路 | 第几条线路(脱敏) | 地铁站点 | 房屋临近站点(脱敏) |
距离 | 房屋距地铁站距离(脱敏) | 装修情况 | 房屋装修档次(脱敏) |
首先,我们大体熟悉一下数据集:
train = pd.read_csv('data/train.csv')
test = pd.read_csv('data/test.csv')
train.head()
train.info()