杨博文+曹布阳
摘要:随着国民生活水平的提高,人们对房产的需求不断增加,对房价的关注度也持续变高。房价作为多指标影响因子,受到很多条件的影响[2-4][11]。现有房价预测模型多属于单一预测算法,预测精度不理想,当数据噪声较大时又容易出现过拟合现象。针对这些问题,提出基于集成学习的房价预测模型。选用预测效果较好的Extra Trees,Random Forest,GBDT,XGB算法作为基础预测模型,分别训练并对四种基础模型进行stacking[1][5]集成,最终得到集成学习的房价预测模型。在加州房价数据集上试验表明,本方法相比于单一预测模型能够有效提高预测的准确率及稳定性,证实了本模型的有效性。
关键词:集成学习;房价预测;极度随机树; 随机森林;GBDT;XGB; Stacking
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)29-0191-04
1 概述
房地产不仅是国民经济的支柱产业,更和民生问题密不可分,随着房产越炒越热,人们对于房价的关注度也持续变高,因此能够较为精准地对房价进行预测也变得越来越有意义。房价作为多指标影响因子,不仅受时间,区域的影响,房屋年龄、附近地理条件、人文、交通等等因素也同样会对房价产生不同程度的影响。现有的预测模型多属于单一预测算法预测,预测精度并不理想,如人工神经网络,当数据量不够庞大时预测效果得不到保证;而简单的集成模型如随机森林,当噪音较大时会出现过拟合,对于不同级别的属性的数据,级别划分较多的属性也会对随机森林产生很大的影响。基于以上问题,本研究提出一种基于集成学习的房价预测模型,该模型集成了多个单一集成预测模型,包括极度随机树(ET), 随机森林(RF), GBDT, XGB。利用集成学习方法中的stacking集成方法,首先对数据集进行划分,利用每个预测模型(学习器)对房价特征进行提取并在第一个训练集分别训练,在第二个训练集上测试这几个学习器,把得到的测试结果作为输入,正确回应作为输出,训练一个高层学习器作为我们最终的预测模型。实验采用加州房价数据进行训练与预测,通过不断训练和调参,利用均方误差对单一预测模型与基于集成学习的房价预测模型进行误差对比分析,实验结果较为理想,证明了本研究方法的有效性和可行性。
1.1 相关技术及现状简介
本研究主要使用到四种基本预测模型,分别是Extra Trees,RF,GBDT,XGB。但现存的这四种较优的预测模型具有优点的同时也存在着不足:
1.1.1 随机森林模型[7]
随机森林是以决策树为基本单元,通过集成学习的思想将多棵树集成的一种算法。
相比于简单的决策树,随机森林有以下几个优点:
1) 在当前的很多数据集上,相比其他算法有很大的优势,表现良好;
2) 由于特征子集是随机选择的,因此它能够处理很高维度的数据,并且不用做特征选择;
3) 在生成过程中能够获得到内部生成误差的一种无偏估计,泛化能力好;
不足体现在:
1) 随机森林在某些噪音较大的分类或回归问题上会过拟合;
2) 對于有不同取值的属性的数据,取值划分较多的属性会对随机森林产生更大的影响。
1.1.2 极度随机树模型
Extra Trees, 也叫Extremely Randomized Trees, 是一种决策树的组合方法。与随机森林类似,同样的bootstrap了样本,随机选取部分特征来构造一棵树,但相较于随机森林,极度随机树对于划分点的选择更为随机。优点体现在:
1) 相比于标准的随机森林来说,极度随机树使得决策的边界更加平滑;
2) 极度随机树使用训练样本直接构建随机数,对bagging的方式进行了修正,因此,当数据噪声较大或数据量较大时极度随机树表现要优于随机森林。
不足体现在:由于样本划分点更为随机,可能存在选取结果不是最优的情况,受数据的影响预测结果有时具有随机性,容易不稳定。
1.1.3 梯度提升决策树模型
GBDT (Gradient Boosting Decision Tree)[8], 是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案,被认为是一种泛化能力较强的算法。组成GBDT的树是回归树,因此,GBDT大多用来做回归预测。
优点明显:它的非线性变换比较多,表达能力强,而且不需要做复杂的特征工程和特征变换。缺点主要体现在:Boost是一个串行过程,不好并行化,而且计算复杂度高,同时不太适合高维洗漱特征。
基于以上目前较优的预测算法模型的分析,当前模型对于预测大多存在,数据量噪声大时容易过拟合、预测结果不稳定、预测精度低等不足,因此基于这些问题,考虑进行集成学习训练处一个较优的集成预测模型。
2 集成学习的房价预测模型
基于集成学习预测模型可以对多特征的单一时间或空间数据进行稳定的预测。但这里只针对加州房价数据进行训练,使其能够作为房价预测的一个稳定的预测模型。图1表示了整个实验的模型训练及集成过程。
2.1 数据预处理
本研究采用加州房价数据作为模型训练与检验的数据集。通过对原始数据集进行分析发现,数据不仅包括经纬度、房屋面积、房屋年龄等这些数值数据,还包括是在海岸附近还是内地的非数值数据;同时数据中还存在一些空数据。因此在对模型进行训练之前要首先对数据进行清洗,对于选取的特征的非数值数据进行数值化处理,同时对空数据进行替换;处理结果如表1,表2所示。
通过清洗好的数据进行分析,我们得到了15个属性特征,由于数据集包含20000条左右的数据,特征太多容易导致预测结果过拟合,因此还需要对数据进行降维处理,以避免过拟合情况的发生,这里我们采用主成分分析(PCA)的方法对数据进行降维。首先构建样本矩阵X, 基于特征维数及数据个数构建一个15*20000的样本矩阵X=[x1,x2,…,xn]15*20000, 作为样本;然后,我们求这个样本的协方差矩阵C,通过计算求出协方差矩阵C应该有15个特征值和特征向量,因此我们根据特征值的大小进行排序并由此调整特征向量的排布 D =sort(D); V=sort(V); 保留排序最靠前的特征值, 根据公式计算降维后的新样本矩阵Y作为最终的训练样本。endprint
2.2 单一预测算法训练
本研究基于stacking[9-10]集成学习方法进行集成,因此首先要对选取的ET, RF, GBDT, XGB算 法分别进行训练,采用四种算法相对应的回归模型,利用上一步降维后得到的新样本矩阵Y作为四种算法的训练样本进行输入;我们对数据样本进行了切分,采用总数据样本的99.5%作为训练集,0.5%作为测试集,以验证预测结果的有效性,从而对模型参数做出调整以达到各自模型预测的最好效果。通过多次试验测试对各个模型参数进行调整,结果如表3所预测效果最优。
调整参数后对测试集进行预测,并与真实数据进行对比,四种模型预测结果分别如图2所示。
通过均方误差计算各自的损失函数结果如表4所示。
通过损失函数结果分析,GBDT和XGB两种模型的预测效果要优于ET和RF。接下来我们将对四种模型进行集成,并用同样的方法来评估结果,以证明集成的有效性
2.3 模型集成及训练
在前一节,我们已经对选用的四种基本模型進行了训练,并得到了相应的预测模型及预测结果,因此,我们在此基础上对模型进行stacking集成,以得到最终的集成模型。这个训练过程主要分为两层:假设给定的样本数据集L包含n个样本,这里选取的加州房价数据包含20000个样本,即L={{ xi, yi }, i=1,2,…,n }, 其中xi是第i个样本的特征值通过降维后的条件值,yi是第i个样本的房价真实值,n=20000, 一共有4个不同算法的学习器。为了防止过拟合的情况,在构造第二层数据集时采用了交叉验证的思想,即将原始数据集随机分成数目大致相等的K个部分L1, L2, … , Lk, 定义Lk和L^-k = L — Lk, k= 1,2, … , k分别为第k折交叉验证的测试集和训练集,在训练集上分别训练这4个算法,得到4个模型,然后在测试集上进行预测得到预测值,记为Zij, 表示第i个样本经过第j个算法的预测。这个过程重复K次,则原始数据集每一个样本都有t个与之对应的预测值,这些预测值与对应样本的真实值组成第二层数据集Lcv = {( Zi1, Zi2,…, Zit,yi), i = 1,2,…,n}。即集成训练的训练集为前一步所有预测结果与原始样本真实值组成的新的数据集,在Lcv上再次学习得到最终的集成预测模型。
通过上一节结果对比发现GDBT模型对于预测效果较为理想,因此我们再次选用GDBT作为训练模型,同样的也对n_estimators, learning_rate, subsample, verbose等参数进行调整并当取得稳定最优解时作为选取的参数值,最终得到n_estimators=100, learning_rate=0.05, subsample=0.75, verbose=20时预测结果最优。至此,基于集成学习的房价预测模型训练并构建完成,接下来将对此模型进行评估以验证其有效性。
2.4 结果分析
与四种基本模型相似,我们同样做出集成模型在预测集上的预测房价与实际房价的对比图如图3所示。
其中坐标横轴表示房价各种特征降维后的一维值,纵轴表示房价值;蓝色表示实际房价,橙色表示预测房价。由于预测差异细微,通过对比图不能很直观地看出集成模型的效果,因此我们依然利用损失函数,通过均方误差的方法来评估每个模型的预测效果,结果如表5所示。
通过均方误差结果进行对比分析可以看出,利用集成学习预测模型预测,相比于其他四种基础的预测模型的预测结果,均方误差降低了6.7%左右,预测效果优于四种基础模型中的任意一种。实验结果表明,基于集成学习的房价预测模型对于提高房价的预测效果是有效的。
3 结论
本研究提出了一种集成学习的房价预测模型,该模型通过stacking的集成学习方法,集成了ET, RF, GBDT, XGB四种基本的算法,使用加州房价数据,提取多个有效特征,对目标数据降维并分别进行训练,将各自的预测结果作为集成模型的输入进行二次训练得到最终的预测模型。该模型的优点在于可以在一定程度上提高房价的预测效果,并能够有效避免当数据噪声较大或特征较多时过拟合的情况发生。相比于其他的预测算法,虽然预测效果不一定在所有情况下都优于单一算法预测模型,但通过多算法集成互补的思想极大提高了模型的稳定性,通过多次实验证明其预测效果稳定,同时预测精度也较为理想。下一步工作中,将采用更多不同特征数据对该模型进行测试,进一步优化该集成模型,以提高模型的性能及预测准确度。
参考文献:
[1] 周志华. 机器学习[M].北京:清华大学出版社, 2016.
[2] 李东月. 房价预测模型的比较研究[J]. 工业技术经济, 2006, 25(9):65-67.
[3] 陈世鹏, 金升平. 基于随机森林模型的房价预测[J]. 科技创新与应用, 2016 (4):52-52.
[4] Rajan U, Seru A, Vig V. The failure of models that predict failure: Distance, incentives, and defaults[J]. Journal of Financial Economics, 2015, 115(2):237-260.
[5] Burger E M, Moura S J. Building Electricity Load Forecasting via Stacking Ensemble Learning Method with Moving Horizon Optimization[J]. 2015.
[6] Chen T, He T. Xgboost: extreme gradient boosting[J]. R package version 0.4-2, 2015.
[7] 李欣海. 随机森林模型在分类与回归分析中的应用[J]. 应用昆虫学报, 2013, 50(4):1190-1197.
[8] Liu J, Wu C. A gradient-boosting decision-tree approach for firm failure prediction: an empirical model evaluation of Chinese listed companies[J]. JOURNAL OF RISK MODEL VALIDATION, 2017, 11(2):43-64.
[9] Sikora R. A modified stacking ensemble machine learning algorithm using genetic algorithms[M]//Handbook of Research on Organizational Transformations through Big Data Analytics. IGI Global, 2015: 43-53.
[10] Sikora R. A modified stacking ensemble machine learning algorithm using genetic algorithms[M]//Handbook of Research on Organizational Transformations through Big Data Analytics. IGI Global, 2015: 43-53.
[11] Glaeser E L, Nathanson C G. An extrapolative model of house price dynamics[J]. Journal of Financial Economics, 2017.endprint