1. 引言
随着中国城市化步伐的加快,城市居住人口持续攀升。受限于土地资源的有限性,城市房价呈现出逐步攀升的趋势。因此,配备设施较为完整且价格较划算的二手房成为了不少青年的选择。二手房周边往往拥有便利的交通以及丰富的商业资源和教育资源。但是,许多买家和卖家通常因为销售渠道复杂、住房情况条件差异大,二手房的价格评定没有统一标准,因此,购房者在对二手房进行价格评估时,往往难以达到精确和客观的标准。在我国,房地产价格评估方法主要有市场法、收益法、成本法等,它们大多适用于不同的市场环境,受主观影响较大[1]。
2002年,Lennart B [2]学者较早地使用了神经网络模型来替代传统的多元线性回归模型,以提高对房价预测的精确度,结果发现神经网络模型的精度明显高于传统模型。为克服传统模型预测存在的问题,2019年,Liu R [3]首次基于改进遗传算法的长短期记忆预测房价,本研究提出了一种基于长短期记忆人工神经网络的房价预测模型,该模型通过一种改良的遗传算法进行特征选择和超参数优化,利用多级概率交叉方法来筛选出最优解。实验结果表明,该方法在房价预测方面表现出色,相较于传统的反向传播神经网络、支持向量回归以及其它进化算法,具有更显著的优越性。2022年,Luca R [4]则采用了三种流行的机器学习技术来预测意大利两个城市的住宅价格,通过API收集的数据对ElasticNet、XGBoost和人工神经网络模型进行训练并使用平均绝对误差对三个模型的结果进行比对。
由于房价越炒越高,导致了大多数的购房者看向二手房市场,因此近几年出现了二手房市场蓬勃发展现象。在房地产市场分析的学术领域,众多学者通过创新的方法和技术,提供了对房价影响因素及其预测的深刻见解。陈世鹏等[5]人通过襄阳市2012年的房贷数据,巧妙地构建了随机森林模型,这一模型在预测房贷影响因素方面,相较于传统的多元线性回归和ARMA模型,展现出了更优异的预测能力。胡宇晨等[6]人则将目光投向海口市的商品房市场,他们利用自回归模型来洞悉未来房价的波动趋势。林新朗[7]的研究则更为宏观,他通过计算1998至2010年间中国13个省市住房价格的Moran指数,揭示了这些地区之间住房价格的正相关性,并进一步采用空间计量方法,深入分析了中国住房价格的区域性特征。李晓刚[8]在其硕士论文中,将集成方法与XGboost算法相结合,提出了一种创新的“拟袋装”方法,通过对样本数据的随机分配和子样本建模,实现了对个人信用风险的精准评估和分类。综上所述,大部分学者在预测二手房房价中往往选择机器学习模型进行预测,且在以往的研究成果中可以发现,机器学习预测结果优于传统模型,因此本文主要选择了XGBoost模型对成都市二手房价格进行预测。
2. 主要模型介绍
XGBoost模型
XGBoost是Boosting算法的一种。Boosting算法的思想是将许多弱分类器集成在一起形成一个强大的分类器[9]。它是一种集成学习框架,通过结合众多CART回归树来构建一个强大的分类器,每个树模型都为整体的性能贡献力量。如图1为XGBoost模型的流程图。
Figure 1. XGBoost model flowchart
图1. XGBoost模型流程图
XGBoost的算法原理在于连续地增加新的决策树。在每次迭代中,新加入的树都会针对前一轮预测的误差进行拟合。这一过程重复进行,直至形成包含K棵树的完整模型。预测一个样本的分数,实际上是根据这个样本的特征,每棵树中会落到其对应的一个叶子节点,每个叶子节点对应一个分数,最后将每棵树对应的分数加起来就是该样本的预测值[10]。XGBoost的目标函数由训练损失函数和正则化项两部分组成,目标函数定义如下:
,
其中
表示第i个样本的预测值,
表示第i个真实值,
代表训练损失函数。常用的损失函数有以下两种:
1) 平方损失函数
2) 逻辑回归损失函数
XGBoost作为一个加性模型,其最终的预测得分是通过将所有决策树的预测结果进行累加得到的。其中代表第i个样本的树,fk代表第k颗树的函数。
代表树的复杂度,将全部K棵树的复杂度进行求和,添加到目标函数中作为正则化项,用于防止模型过度拟合[11]。
3. 基于XGBoost模型的房价预测
3.1. 数据预处理
3.1.1. 数据来源
本文的原始数据是从阿里云天池获取的开源数据——2022年成都市二手房交易数据,共有14个指标和14,659条数据。
3.1.2. 数据清洗及转换
首先对数据进行了预处理和清洗,并对数据进行了统一的单位处理,由于该数据比较完整,经检查没有缺失值和异常值,所以可以发现数据较准确,可信度高。此外,对分类变量进行了转换为虚拟变量处理,即对对象数据类型转化为模型可识别的类型。图2为建筑面积与总房价的散点图,可以看出房价与建筑面积之间大体上呈现出线性相关性,然而,建筑面积并非房价高低的唯一决定性因素。
Figure 2. Scatter plot of building area and total housing price
图2. 建筑面积与总房价的散点图
3.2. 特征选择
特征选取可以将高维数据转化为低维数据,从而达到数据降维的作用,通过删掉冗余和不相关的特征来进一步降维,以减少模型过度拟合,减少特征数量,从而提高泛化能力,还可以让模型得到更好的解释,通过增强特征值之间的联系加快模型的训练速度,从而获得更好的性能[12]。
本文中的特征经初步筛选共11个,分别是房屋所属市辖区、所在楼层、户型结构、建筑类型、房屋朝向、建筑结构、装修情况、配备电梯、交易权属、建筑面积和总房价。通过绘制热力图发现,有的特征与房价相关性强,有的比较弱。热力图展示了不同变量之间的相关性,热力图的行和列分别代表不同的变量,颜色的深浅表示相关性的强度,颜色越深表示相关性越强。从热力图中可以看出户型结构与建筑面积的相关性为0.39,表示有中等程度的正相关性。户型结构与配备电梯的相关性为−0.21,表示有轻微的负相关性。户型结构与所在楼层的相关性为0.076,表示有轻微的正相关性,意味着户型结构可能随着楼层的增加而变得更加复杂或多样化。户型结构与建筑类型的相关性为0.13,表示有轻微的正相关性。建筑类型与配备电梯的相关性为−0.5,表示有强负相关性。建筑面积与所在楼层的相关性为0.05,表示有轻微的正相关性。建筑面积与建筑类型的相关性为0.077,表示有轻微的正相关性。从而看出户型结构、建筑面积等特征相关性较好,房屋所属市辖区、房屋朝向、装修情况、建筑类型等数据维度对房价影响较小,本文忽略这些特征。
4. 模型比较分析
4.1. 评价指标
回归模型的预测结果和真实值都是连续的,常用的回归模型评价指标有R2、MSE和MAE,假设有
个样本,
,
分别代表第
个样本的实际值和预测值,用
表示
个实际值的平均值。
1) 决定系数(R-Squared, R2)一般用在回归模型中,用于评估预测值和实际值的符合程度,该指标的取值介于0到1之间,其值越接近1,表明模型对因变量方差的解释能力越强,从而模型的准确性越高;反之,若值越小,则意味着模型的解释力和准确性相对较低[13]。
R2定义如下:
2) 均方误差(MSE)是指预测值与真实值之差的平方的期望值。MSE是衡量数据波动性的一个指标,它反映了预测模型与实际数据的接近程度,MSE值的降低,表明模型的预测精度得到了提升。
MSE定义如下:
3) 平均绝对误差(MAE)用于评估预测结果和真实值的接近程度,其值越小说明拟合效果越好[14]。
MAE定义如下:
4.2. 结果分析
本文使用了线性回归模型、随机森林模型和XGBoost模型对成都二手房房价进行预测,统一采用了Sklearn包中的train_test_split( )函数,把原始数据按照比例划分为训练集和测试集,由于训练集合过小的话会导致欠拟合,所以将实验数据的70%作为训练集,30%作为测试集[15]。
图3和图4给出了线性回归模型的预测结果;图5和图6给出了随机森林模型的预测结果;图7和图8给出了XGBoost模型的预测结果;具体如下。利用Sklearn库提供的线性回归工具来训练我们的线性回归模型,得到的结果如图3所示,可以发现,预测值与实际值之间的差异显著,仅在某些情况下两者接近。特别是在房价较高的预测中,模型的表现并不尽如人意;此外可以看到图5是采用随机森林进行预测得到的结果,相较于线性模型而言,效果会好一些。图7为采用XGBoost模型进行预测得到的结果,与线性模型的拟合效果相似,均无法拟合到较高房价,但房价数值密集处拟合较好。但是需要更精准的指标和更好的模型来预测房价,猜测是指标过多,所以采用熵值法对指标数据进行筛选,手动选筛选出指标重要性排名前5的指标,得到的指标为“建筑面积(平方米)”,“房屋所属市辖区”,“房屋朝向”,“装修情况”,“建筑类型”。再分别通过三种方法进行分析,得到的结果如图4、图6、图8,通过下面左右两幅图的比较可以看到在通过熵值法的筛选指标过后预测值与真实值的拟合程度更高了,说明特征选择对模型优化具有一定的效果。
4.3. 模型优化
由于通过熵值法手动选择筛选指标个数的做法并不严谨,所以将代码进行二次优化,且由于第一次优化过后线性回归方程的拟合效果并不如其他两个模型,所以在二次优化时,直接剔除线性回归模型,
Figure 3. Linear model prediction chart (Original)
图3. 线性模型预测图(原始)
Figure 4. Linear model prediction chart (Once)
图4. 线性模型预测图(一次)
Figure 5. Random forest prediction map (Original)
图5. 随机森林预测图(原始)
Figure 6. Random forest prediction map (Once)
图6. 随机森林预测图(一次)
Figure 7. XGBoost prediction graph (Original)
图7. XGBoost预测图(原始)
Figure 8. XGBoost prediction graph (Once)
图8. XGBoost预测图(一次)
只选取随机森林和XGBoost模型进行优化。将熵值法替换为RFE特征选择,与熵值法相比,RFE通过递归删除特征,使得模型更加专注于重要的特征,从而提高了模型的预测准确度。且RFE在每次迭代中只考虑剩余的特征,因此计算量相对较小,提高了计算效率。并且RFE可以输出被选择的特征集合,就不需要手动筛选个数,增加了准确性,也减少了工作量。
此外,通过网格搜索法((GridSearchCV))对随机森林方程的树的最大深度max_depth和森林中树的数量n_estimators做了参数调节,对于树的最大深度,测试了三个不同的深度值(例如5,10,15)。对于森林中树的数量,测试了三个不同的树数量(例如100,200,300)。对XGBoost模型的学习率(learning_rate)、max_depth和n_estimators叶进行参数调节[16],使用交叉验证来评估不同参数组合的性能。对于学习率,测试了三个不同的学习率(例如0.05,0.1,0.3)。对于树的最大深度和树的数量,与随机森林模型中的参数设置相同。具体而言,网格搜索通过指定一个超参数的候选值列表,对所有可能的参数组合进行穷举搜索,并对每一组参数进行模型训练和评估,最后选择具有最佳性能的参数组合作为最终模型的超参数[17]。通过以上优化操作,图9和图10分别给出了随机森林模型的预测结果和残差图,图11和图12分别给出了XGBoost模型的预测结果和残差图。由图9和图11的预测结果图可以看出,XGBoost模型在房价预测上具有良好的效果。由图10、图12的残差图可以看出,真实值与预测值的重叠度较高,且残差值也随机分布在y = 0的上下随机波动,虽然有个别值波动的情况较大,但并不影响。
Figure 9. Random forest prediction chart (Secondary)
图9. 随机森林预测图(二次)
Figure 10. Random forest residual graph
图10. 随机森林残差图
Figure 11. XGBoost prediction graph (Secondary)
图11. XGBoost预测图(二次)
Figure 12. XGBoost residual graph
图12. XGBoost残差图
4.4. 比较分析
在本文中,从测试数据集中分别计算了线性回归、随机森林以及XGBoost三种模型的评价指标,结果如表1。根据表1的数据显示,线性回归模型的拟合效果相对较弱,随机森林模型的性能优于线性回归模型,而XGBoost模型则展现出了最佳的拟合性能。在一次优化过后得到的各模型的拟合效果都有了显著的提升,如表2所示,线性回归模型由最初的R2为0.085升至0.603,随机森林的R2值由0.248提升至0.853,XGBoost模型的R2值由0.256提升至0.834。通过一次优化,每个模型的表现都较好,但随机森林的表现最好。在二次优化后,我们可以看到表3的随机森林的初始模型在训练集上的R2为0.853,测试集上的R2为0.859,经过参数调优后,模型在训练集上的R2略有提升,测试集上的R2保持稳定。XGBoost模型的初始模型在训练集上的R2为0.834,测试集上的R2为0.903。经过参数调优后,模型在训练集上的R2进一步提升,测试集上的R2略有下降。在随机森林模型中,增加树的数量n_estimators和树的最大深度max_depth可以提高模型的复杂度,从而在一定程度上提高预测精度。然而,过多的树或过深的树可能导致模型训练时间增加和过拟合的风险。在XGBoost模型中,降低学习率learning_rate可以使得每次迭代的步长变小,需要更多的迭代次数以达到相同的损失函数下降量,这有助于提高模型的预测精度。同时,max_depth和n_estimators的调整也需要考虑到模型的泛化能力和训练成本。对比两种模型,XGBoost在参数调优后展现出更高的R²值,尤其是在测试集上,R²值达到0.903,表明其在未知数据上的预测性能更优。
Table 1. Comparison of initial model structures
表1. 初始模型结构比较
|
R2 |
MSE |
MAE |
线性回归模型 |
0.085 |
4487390808171.969 |
3325.653 |
随机森林 |
0.248 |
3687939313299.952 |
7561.426 |
XGBoost模型 |
0.256 |
3648063029321.772 |
8561.466 |
Table 2. Comparison of optimization results once
表2. 一次优化结果比较
|
R2 |
MSE |
MAE |
线性回归模型 |
0.603 |
1944944939377.614 |
173152.504 |
随机森林 |
0.853 |
719498490957.419 |
224981.523 |
XGBoost模型 |
0.834 |
812526188231.589 |
258817.536 |
Table 3. Comparison of secondary optimization results
表3. 二次优化结果比较
|
R2 |
MSE |
MAE |
随机森林 |
0.859 |
690116324089.372 |
344325.531 |
XGBoost模型 |
0.903 |
573083127172.155 |
340561.704 |
5. 研究结论、建议和不足
5.1. 研究结论
本文通过构建线性回归模型、随机森林和XGBoost模型对二手房房价进行预测,通过数据预处理、特征工程以及模型构建等环节的精心设计,我们优化了房价预测模型,使其预测结果更贴近实际市场价值。通过模型优化,将XGBoost模型的R2提升至0.903,如表4所示是部分真实值与预测值的数据对比,可以发现三种模型的预测误差中,XGBoost模型的误差最小,但是在现实中影响房价的数据特征还有很多,如周边环境设施、交通便捷程度、小区是否有停车位等[18]因素,未来的研究可以在此基础上进一步优化模型参数,考虑引入更多影响房价的因素,以提高预测的准确性和可靠性。同时,也应关注房地产市场的最新动态,以便及时更新模型,减少预测滞后。
Table 4. Comparison table of real value and predicted value data
表4. 真实值与预测值数据对比表
真实值 |
线性回归 |
随机森林 |
XGBoost |
预测值 |
预测误差 |
预测值 |
预测误差 |
预测值 |
预测误差 |
949,198 |
1185111.631 |
24.85% |
1018282.916 |
7.28% |
943985.25 |
0.55% |
2,306,570 |
2547989.367 |
10.47% |
2349308.98 |
1.85% |
2217678.5 |
3.85% |
3,904,560 |
3420350.717 |
12.40% |
3885626.04 |
0.48% |
3818799 |
2.20% |
1,035,988 |
1960463.073 |
89.24% |
1062816.651 |
2.59% |
1015695.75 |
1.96% |
2,102,430 |
2443966.966 |
16.24% |
2315790.51 |
10.15% |
2202411.5 |
4.76% |
172,326 |
191030.1793 |
10.85% |
187835.777 |
9.00% |
171991.8438 |
0.19% |
1,368,000 |
1167558.728 |
14.65% |
1318147.476 |
3.64% |
1311244.125 |
4.15% |
5.2. 建议
成都市作为四川省省会,在全省经济社会发展中发挥着核心增长的作用,成都市商品住宅市场也真正占据四川商品住宅市场的核心地位。房地产调控政策不是一刀切,而是根据不同的时间、不同的市场、不同的问题需要通过贷款政策、土地政策、税收政策、人才落户政策、规定首付比例政策、出台二手房指导价等政策相互配合并及时做出调整。
政府通过巧妙地运用政策工具和市场自我调节机制,为二手房市场的稳定与繁荣提供支持,确保了市场的有序发展。政府应加强对二手房中介市场的监管,制定和完善相关法律法规,规范中介机构的经营行为,中介机构应公开房源信息、交易价格、服务费用等关键信息,提高市场透明度,保护消费者权益。也可以通过制定行业标准和规范,推动中介机构提高服务质量,维护市场秩序。中介机构应加强对从业人员的培训和管理,提高他们的专业素养和道德水平。同时,建立从业人员信用档案,记录其从业行为和信誉状况,以便消费者查询和选择。
购房者可以通过供需关系、政策变化、经济走势等方面了解市场动态,从而避免盲目跟风或恐慌性购买。中介机构在二手房交易中扮演着重要角色,购房者可以通过沟通,表达自身预期,得到提供相应的价格预测信息。购房者可以通过教育和培训活动,提高自身的市场敏感度和分析能力,使自身能够更好地理解和利用价格预测信息。
5.3. 不足
本研究依托真实的成都市二手房交易数据,从基于网络爬虫技术的数据获取到基于机器学习的价格预测,通过对比实验的方式实现了成都市二手房价格的有效评估。相较于对二手房均价和挂牌价的研究,预测二手房成交价具有更直接的现实意义。它能够在一定程度上指导购房者做出合理的购买决策,减少不必要的经济风险,但本文研究内容也有以下几点的不足:
1、本文在模型构建的数据采集和加工过程中实施了多种策略,但仍可能存在一定的数据质量问题。例如,部分数据(如房屋内部装修情况、楼层高低、物业管理质量等)可能存在缺失、异常或噪声等问题,这可能会对预测结果产生一定的影响。未来研究可以进一步探索数据清洗和预处理技术,以提高数据质量。
2、本研究采用了线性回归和随机森林模型对成都市二手房成交价格的相关影响因素进行了变量筛选,对于模型可能难以完全考虑所有影响房价的外部因素,如自然灾害、社会事件等突发事件。在后续的学习过程中,还需深化对特征工程的理解,以期通过变量筛选获得更精确的预测模型基础变量组。
3、本研究主要基于历史数据进行预测,房地产市场变化迅速,模型可能无法及时反映最新的市场动态,导致预测滞后。未来研究可以探索将实时数据引入模型,以提高预测的实时性和准确性。
综合分析表明,应用XGBoost模型于成都市二手房市场的价格预测具有实际应用价值。在未来的研究工作中,我们将持续深化学习,针对当前研究的不足进行改进和优化。
基金项目
本研究受到闽江学院华纳数字孪生系统研发实验室(MJUGJSYS2022004)、虚拟仿真实验课程项目(MJUYLKC2022029)的支持。