1. 引言
房价一直以来都是人们关注的重点民生问题,最近几年随着“房子是用来住的,不是用来炒的”1理念已全面贯彻实施。市场已经逐渐熟悉了“房住不炒”的理念,在强调稳地价、稳房价、稳预期的前提下,市场已经逐渐形成了非常稳定的市场预期。
目前,在房屋价格的预测上,许多的学者选用机器学习的算法构建了不同的房价预测模型。如:文献 [1] 以北京市2010~2018年的房屋数据作为研究对象,利用多种单小波分析,证明小波去噪可以很好地保留房价的变动趋势,且用SVM模型构造的房价预测模型比原始数据的预测精度更高;文献 [2] 在传统的SVR预测房价的模型中引入蝙蝠算法,对北京市二手房价格指数的变化特征进行分析表明,该改进模型具有更好地泛化能力;文献 [3] 将关键词关注指数加入了商品房价格预测的回归预测模型,其结果表明加入该指数提高了商品房价格预测能力;文献 [4] 通过仿真得到影响房价的主要因素,然后在此基础上运用BP神经网络的方法构建了房价预测的模型;文献 [5] 以上海市的房价数据为对象,对数据进行降维处理,然后运用主成分分析的支持向量机方法对上海市房价进行预测,该方法具有较高的泛化能力和较好的预测精度;文献 [6] 将房屋价格变动的过程视为马尔科夫链,并利用北京商品房销售价格数据作为仿真对象,计算其马尔科夫链转移概率,对北京市房屋的价格走向进行预测分析。
梯度提升回归树模型(Gradient Boosting Regression Trees, GBRT)在建立预测模型的方法中具有广泛的应用。文献 [7] 运用梯度提升回归模型预测生猪的价格,不仅提高了生猪价格预测的预测精度,而且解决了传统模型速度慢、核函数选择难等问题;文献 [8] 利用梯度提升回归树模型不仅准确地获取了地面高分辨率、高精度的O3浓度分布数据,而且其构建的预测模型对O3浓度的预测效果显著提升;文献 [9] 用基于时间序列关系的梯度提升回归树对道路的交通事故进行预测,预测结果表明加入时间序列对交通事故预测的精度大大提升;文献 [10] 在集成学习的构架下,用优化的梯度提升树算法对旅游流量构建模型进行预测,其构建的预测模型对桂林市的旅游客流量有较好的预测效果。基于以上对梯度提升树模型应用的研读可以发现:梯度提升回归树算法建立的预测模型有较好的预测精度。因此,本文提出基于梯度提升回归树模型对二手房均价进行预测和分析。
2. 研究方法
2.1. 梯度提升回归树算法简介
梯度提升是建立预测模型最好的机器学习方法之一。梯度提升回归树(Gradient Boosting Regression Trees, GBRT)算法 [5] 是有监督的集成学习方法 [11]。提升树是利用加法模型和前向分布算法实现模型的优化,即通过迭代一系列的弱学习器,并通过不同的组合方法得到相应的强学习器。只要得到的强分类器的预测效果比之前一系列弱学习器的预测效果好,其学习就能达到比较好的预测精度。而迭代的目的是找到一系列的弱分类器使得损失函数达到最小,因此对于损失函数的度量就是问题的关键所在,但对于一般的损失函数其优化比较困难,且没有通用的拟合方法。针对这一问题,Freidman等提出了梯度提升算法,即利用损失函数的负梯度在当前模型的值作为回归问题中提升树算法的残差近似值,这就是GBRT算法。
2.2. 梯度提升回归树原始模型
给定数据训练集
,最大的迭代次数为树的个数
,损失函数为
。
(1) 初始化弱分类器,根据下列公式估计使损失函数极小化的常数c,
(2) 迭代次数为
,
;
a) 对于样本
,根据下列公式计算损失函数的负梯度在当前模型的值:
b) 对
拟合一个回归树,得到第
棵数的叶子结点的区域为:
,
,
为第
棵回归树的叶子结点的个数;
c) 对第
棵回归树的叶子结点区域
计算,使得损失函数极小化:
是
的平方损失最小值。
d) 更新回归树
上式中:
为指示函数,当
属于叶子区域
时为1,否则为0;
(3) 综上所述,得到梯度提升树的最终模型:
为学习率。
3. 案例分析
随着国家对房地产行业的调控,二手房的市场占比也在不断攀升,房屋价格的变动越来越受到人们的关注,因此采用不同的算法展开对房屋价格预测的研究非常有必要。而上海市房地产市场作为我国制度最完善、最具有代表性的房地产市场之一,对于我国目前房地产市场的合理性,具有极大的代表性。
本文通过收集“链家”上海市近三年二手房的售卖信息,分析影响上海市二手房价格的原因 [12]。影响房屋价格的原因有许多方面诸如:位置、交通、配套设施、空间布局、建筑面积、朝向、梯户等,探究二手房房价有助于解决市场信息不对称,使二手房定价趋于合理价位,降低交易成本。因此本文基于上海市二手房数据利用梯度提升回算法进行建模,随机的将数据集的75%划分为训练集,剩下的25%为测试集,对二手房均价进行预测。
3.1. 数据来源、预处理
本文以上海市二手房数据作为分析对象 [13],通过Python网络爬虫的方法采集了上海市2017~2020年15个行政区共38,900个小区的二手房数据。将收集到的数据中缺失和有明显的错误的数据进行剔除和填补之后,剩下共37,483条有效数据。收集到的数据包括总价、户型、建筑面积、建筑类型、户型结构、均价、配备电梯、装修情况等共16个因素。预处理后的数据变量还是比较多,且很多变量之间存在严重的多重共线性,直接用预处理之后的数据进行模型的构建难以产生满意的模型。因此,在建模之前需要对多个变量进行筛选,将二手房房屋均价作为因变量
,将剩余的其余变量作为自变量
。
对变量进行相关性分析,计算各变量之间的Pearson相关系数,其计算公式如下:
为观测对象的数量,
为
的第
个观测值,
为
的第
个观测值,
为变量
、
的Pearson相关系数。
的取值范围为[−1, 1],若
,变量之间存在正线性相关关系;若
,变量间存在负线性相关关系;若
则变量之间不存在线性相关关系。
3.2. 变量的选择
本文变量比较多,首先挑选可能存在多重共线性的变量计算相关性系数矩阵,然后根据相关性系数矩阵作出热力图。多次绘制热力图,找出各热力图中存在高度相关性的变量将其从变量之中剔除,热力图如图1所示。
根据Pearson相关系数原理知道,相关系数绝对值越大相关性越强。通过对比各热力图发现房屋的建筑面积和房屋的房间分布存在严重的多重共线性,即只需将房屋的建筑面积纳入模型;房屋的总层数和电梯配备之间存在严重的多重共线性,只用将房屋的总层数纳入本文的模型之中。依此类推,最终挑选出了:房屋建筑面积、小区所在行政区划、户型结构、所处楼层,总层数作为二手房房屋均价的影响因素。通过热力图及相关系数矩阵的计算可以发现房屋建筑面积、小区所在行政区划这两个变量对房屋均价的影响是最大的两个变量,户型结构、所处楼层、总层数是相对于其他变量来说较大的影响变量。另外,从小区所在行政疗、商区划还可以看到房屋周边的环境以及交通、医业等基础配套设施情况。
3.3. 房屋均价的分布情况
首先,先对上海市15个行政区的二手房房屋均价进行排序,其结果如下表1所示。从表1可以看到黄浦区的均价最高为:98,251.1382元/平方米,最低的均价为金山区:20,291.667元/平方米。这与上海公布的中心城区名单:黄浦、静安、徐汇、长宁、虹口、杨浦、普陀以及浦东新区的外环内城区相符合,即房屋均价与中心城区的分布十分的吻合。
![](Images/Table_Tmp.jpg)
Table 1. The average price of each administrative region and its ranking table
表1. 各行政区内房价的平均值及其排序表
由表1可以得出上海市二手房最高均价为:319,960.62元/平方米,最低均价为:10,000.00元/平方米,总体的平均均价为:56,466.26元/平方米,中位数均价为:53,290.82元/平方米,上海二手房最高价格和最低价格极差较大。作出上海市二手房房屋均价的整体分布图形,其结果如下图2所示。从图2可以看出数据分布类似于正态分布,呈现单峰特征,平均值和中位数十分接近峰值。
3.4. 单个因素对于房屋均价的影响
本文挑选的五个变量:房屋建筑面积、小区所在行政区划、户型结构、所处楼层、总层数中,房屋建筑面积、小区所在行政区划对上海市二手房均价的影响是最大的,先单独分析这两个因素的影响以便于后期模型的构建。
![](//html.hanspub.org/file/1-1700262x54_hanspub.png?20210721083936162)
Figure 2. Price analysis of secondary housing in Shanghai
图2. 上海市二手房价格分析
3.4.1. 行政区划对房屋均价的影响
首先分析各个行政区划内房屋均价的分布情况,作出各个行政区划内的房屋均价分布的箱形图,如下图3所示。箱形图的优点是:不受异常值的影响,可以以一种相对稳定的方式描述数据的分布情况;能够观察到数据异常值的分布。从下图3可以看到各个行政区划房屋均价的最小值、最大值、上下四分位值以及中位数的值。从下图3中看到除了上海的嘉定、金山区以外的其他区域,均具有较多的上侧异常值。这是因为嘉定和金山区是属于上海的周边区域,房价分布区域较小且异常值较少。而其他区域所处的位置比较接近上海市的中心城区,因此有较多的异常值存在。
![](//html.hanspub.org/file/1-1700262x55_hanspub.png?20210721083936162)
Figure 3. Box plot about Shanghai’ each region of second-hand house average price
图3. 按上海市各行政区划分的二手房均价分析箱形图
3.4.2. 房屋建筑面积对房屋均价的影响
最直观的观察房屋建筑面积对房屋均价的影响是将处理后的数据作散点图,从下图4可以大致的观察二者之间的关系。图4显示房屋的建筑面积大都集中在500平方米以内,数据的分布比较集中,难以看出明显的数据分布规律。
![](//html.hanspub.org/file/1-1700262x56_hanspub.png?20210721083936162)
Figure 4. Scatter plot between floor area and house price
图4. 房屋建筑面积与房价之间的散点图
我们考虑将行政区划和房屋建筑面积结合起来观察,考虑各个行政区划内不同房屋建筑面积对于房屋均价的影响是如何变化的。
3.5. 两个变量联合对于房屋均价的影响
在不同的行政区划内,不同的房屋建筑面积对于房屋均价的影响应该是不一样的。首先作出散点图观察二者对于房屋均价的影响,在作散点图之前,我们要先给不同的行政区划做不同的分类。由上表1可以将行政区划分为四个梯队:第一个红色梯队对应房屋均价格最高的四个行政区划;第二个蓝色梯队对应房屋均价次之的四个行政区划;第三个绿色梯队对应房屋均价再次的四个行政区划;最后剩下的最低的房屋均价的三个行政区划作为最后一个灰色梯队。作出的散点图如下图5所示。
从下图5可以看到,第一个梯队的红色散点图偏向左上方,价格明显比剩下的三个梯队更高一点,每一个梯队相对于上一个梯队都整体稍向下偏移,这与图4的散点图分布是相吻合的。
为了更加直观地观察两个联合因素对于房屋均价的影响,考虑对各区的散点图进行最小二乘拟合。依然用前面对各个行政区划的梯度划分,其结果如下图6所示。
从下图6分析来看,房屋价格随房屋建筑面积的变化规律与预期的相吻合,即房屋均价越高的行政区划内,房屋均价随房屋建筑面积变化的规律越明显,其回归的斜率也更高。
4. 模型测试及结果分析对比
4.1. 变量转换及性能评价指标
在构建模型之前,先对为文字描述的行政区划进行处理。本文使用One-Hot编码,是将分类变量作为二进制向量表示,对行政区划的特征进行转化。One-Hot编码,又称为一位有效编码,主要是采用
位状态寄存器来对
个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。处理行政区划变量之后,对数据进行分割,随机采样25%作为测试样本,75%作为训练样本。
![](//html.hanspub.org/file/1-1700262x59_hanspub.png?20210721083936162)
Figure 5. Scatter chart of building floor area on house price in each district of Shanghai
图5. 上海各行政区内房屋建筑面积对房价的影响的散点图
![](//html.hanspub.org/file/1-1700262x60_hanspub.png?20210721083936162)
Figure 6. The linear fitting chart of building floor area on house price in each region of Shanghai
图6. 上海各行政区内房屋建筑面积对房价的影响的线性拟合图
本文选取的模型评价指标为:均方误差MSE (Mean Squared Error) [14] 和拟合优度
(R-squared) [14],指标计算如下公式所示:
拟合优度的取值范围为[0, 1],其值越接近1说明自变量对因变量方差变化的解释越好,值越接近于0效果越差。均方误差MSE (Mean Squared Error),用于评估预测的结果和真实的数据集之间的接近程度,其值越小拟合效果越好。
4.2. 参数优化
GBRT算法中有两个重要的参数:一个是学习率(learning_rate),即弱学习器的权重缩减系数,也称作步长。若学习率太小,意味着需要更多的弱学习器进行迭代,会导致迭代次数大幅度增加,学习的时间也会增大;另外一个是树深度(n_estimators)即迭代次数,一般树深度太小,越容易欠拟合,太大容易过拟合。且学习率和迭代次数相互作用,因此在调参的过程中,将学习率和树深度结合考虑。当学习率的值较小的时候,需要更高数量的树深度,使训练误差收敛。本文对通过对两个参数的排列组合,最后将学习率和树深度分别设置为0.2和1000,其他参数为默认参数设置,得到最终的GBRT训练模型。
4.3. 结果分析对比
为了更客观的评估GBRT模型 [15],本文将基于集成模型的GBRT模型预测结果与线性回归模型和基于支持向量机(SVM)模型的预测结果进行对比分析,得到各模型在测试集上的评价指标如表2所示。表2显示基于集成模型的预测结果优于基于支持向量机(SVM)和线性回归模型,且基于集成模型的GBRT的各项评价指标达到最好的结果,其拟合优度最大达到0.831,其均方误差MSE (Mean Squared Error)最小。
![](Images/Table_Tmp.jpg)
Table 2. The prediction accuracy of each model in the test set
表2. 各模型在测试集上的预测精度
由表2中可以看到基于支持向量机(SVM)的径向基核函数的预测模型的效果是最差的,其拟合优度值是最小的且其均方误差(MSE)是最大的。对预测效果最好的提升树集成模型进行拟合,随机挑选100个数据,查看其拟合效果。结果如下图7所示:
![](//html.hanspub.org/file/1-1700262x64_hanspub.png?20210721083936162)
Figure 7. The fitting effect of Gradient Boosting Regression Tree
图7. 梯度提升回归树的拟合效果
由梯度提升树集成模型的拟合效果图可以看到,其拟合曲线基本拟合真实值曲线。证明梯度提升回归模型建立合理,可以对上海市二手房均价进行预测。
5. 结论
近十年以来房价保持着不断增长的趋势,为购房者带来了巨大的购房压力。本文对爬取的上海市二手房数据进行了分析,采用梯度提升树回归集成模型对二手房均价进行建模,对比机器学习的其他模型,本文运用的梯度提升回归树模型对上海市二手房均价有较好的预测效果。通过对数据集分割为训练集和测试集,并测试集对预测效果最好的梯度提升树回归集成模型,进行拟合评估分析。评估的结果表明,GBRT模型的预测效果较好 [16],有一定的稳定性,且对上海市二手房均价的预测具有一定的实用性,可以为购买二手房的购房者提供房价影响因素的分析。但是基于梯度提升回归树模型对于上海市二手房均价的分析中还有许多需要改进和完善的地方,首先是模型的泛化能力并不高,因为不同城市、不同时间其价格的变动都不能用一个通用的模型来表示,因此需要对每个特定的城市及历史阶段构建不同的模型来进行预测;其次是本文仅考虑微观层面对于房屋均价的影响,并没有将宏观层次的相关政策措施纳入模型,可以在之后的研究中将宏观层面的政策加入到研究当中进行分析。
基金项目
本文获得国家自然科学基金资助项目(No. 713713516;[12061020],[71961003]);贵州省科技基金项目(No. 20201y284,No. 20205016,No. 2021088);贵州大学基金项目(No. 201405,No. 201811)资助。
NOTES
*通讯作者。
12016年12月14日至16日中央经济工作会议明确:“房子是用来住的,不是用来炒的”。