XGBoost特征选择+MLP预测,以电动汽车价格预测为例

此文章由本人及另外两位小伙伴合作完成,未经允许禁止转载。

为什么要用XGBoost+MLP?

大量研究表明人工智能模型在求解分类问题上具有较高的精度,但其中以神经网络模型为代表的一系列“黑箱”模型,虽然具有很强的分类性能,却存在仅能给出最终结果,不能解释每个输入特征对结果起到多大作用的问题。集成决策树类的模型是人工智能模型中可以进行特征重要性度量的一类模型,但其在处理高维数据上的效果,有时不如神经网络模型。因此,或许结合了集成决策树类模型的优点以及神经网络模型的优点,构建的基于XGBoost-MLP的两阶段预测模型会有较好的预测效果。

模型结构

模型主要包括两个阶段。第一阶段为特征选取,基于XGBoost模型计算特征的重要性得分,并选取得分较高的特征;第二阶段为价格预测,将第一阶段选取出的特征输入到MLP模型中进行电动汽车的价格预测。

模型逻辑框架图

数据

为了所构建的XGBoost-MLP模型的优越性,我们以电动汽车价格预测为例。数据由《全国首届研究生工业与金融大数据建模与计算邀请赛》提供。包括三个数据表:电动汽车属性表、电动汽车属性与价格数据表和价格未知的电动汽车属性数据表。电动汽车属性表包括22个属性,除id属性外,其余属性均可作为电动汽车的特征。

feat1 电池可以一次性存储的总能量,单位为mAh 连续型
feat2 是否有蓝牙 离散型
feat3 微处理器执行指令的速度 连续型
feat4 有双SIM卡支持与否 离散型
feat5 前置摄像头百万像素 连续型
feat6 是否支持4G 离散型
feat7 内存(以GB为单位) 连续型
feat8 移动深度(cm) 连续型
feat9 重量 连续型
feat10 处理器核心数 连续型
feat11 主要相机百万像素 连续型
feat12 像素分辨率高度 连续型
feat13 像素分辨率宽度 连续型
feat14 以兆字节为单位的随机存取存储器 连续型
feat15 屏幕高度(以cm为单位) 连续型
feat16 屏幕宽度(以cm为单位) 连续型
feat17 单个电池充电时间最长的时间 连续型
feat18 是否有3G 离散型
feat19 是否有触摸屏 离散型
feat20 是否有wifi 离散型
price 价格分档,取值为0,1,2,3 离散型

电动汽车属性与价格数据表包括1500条数据。其中,价格为0档的数据384条,价格为1档的数据369条,价格为2档的数据377条,价格为3档的数据370条。每个类别的数据条数差异较小,不需要进行类别平衡。价格未知的电动汽车属性数据表包含数据500条,无价格类别数据。

由于各属性的评价维度不同,我们首先使用z-score标准化法,对所有连续型数据进行标准化处理。进一步,我们对电动汽车属性与价格数据表的数据进行划分,随机抽取80%的数据作为训练集,剩下20%的数据作为测试集。

模型有效性分析

第一阶段基于XGBoost模型计算特征重要度得分,重复20次实验的平均得分,如图所示。可以看出,feat19、feat6、feat2、feat20、feat4以及feat18的重要度得分偏低,因此我们将这6个特征去除,保留另外14个特征进行第二阶段实验。

特征重要度得分
第二阶段基于MLP模型进行电动汽车价格预测。并且,为了证明所构建XGBoost-MLP模型的有效性,我们对比了相同参数下第一阶段的预测结果以及输入所有特征的情况下MLP的预测结果,重复20次实验的平均结果如表 3所示。为了方便对比,我们将各类中最好的结果加粗标记。从正确率的角度来看,所构建的XGBoost-MLP模型正确率最高。从精准率和召回率的角度来看,所构建的模型对于每个类别的分类结果均优于XGBoost模型,MLP模型对于2类和3类的分类精准率较高,但其余结果均不如所构建的XGBoost-MLP模型,综合来看,所构建的模型还是占据一定的优势。可以认为XGBoost-MLP结果优于单个模型的结果,因此,模型是有效的。

模型有效性验证

模型对比

为了证明所构建XGBoost-MLP模型的优越性,我们使用更多的分类模型进行电动汽车价格预测,包括:LDA模型、BA模型、KNN模型、DT模型、RF模型、GBDT模型以及SVM模型。重复20次实验得出的平均预测结果如表 4所示。为了方便对比,我们将各类中最好的结果加粗标记。可以看出,XGBoost-MLP模型的分类效果在各方面都明显优于其它对比模型。

模型对比
进一步,我们给出了所构建的XGBoost-MLP模型以及对比模型重复20次实验的预测结果箱线图,如图 6所示。很明显,我们所构建的模型不仅具有较高的正确率,且在稳定性上也明显优于其它模型。

箱线图

总结

(1)所构建的XGBoost-MLP模型优于单一的XGBoost模型和MLP模型;

(2)所构建的XGBoost-MLP模型在精准率、召回率、正确率和稳定性上都优于LDA模型、BA模型、KNN模型、DT模型、RF模型、GBDT模型以及SVM模型。

参考文献

[1] Altman E. Financial ratios, discriminant analysis and the prediction of corporate bankruptcy[J]. Journal of Applied Finance, 1968, 23(4):589-609.
[2] Chen T, Guestrin C. XGBoost: A scalable tree boosting system. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Francisco, CA, USA. 2016. 785-794.
[3] Guo H, Li Y, Li Y, Liu X, Li J. BPSO-Adaboost-KNN ensemble learning algorithm for multi-class imbalanced data classification[J]. Engineering Applications of Artificial Intelligence, 2016,49:176-193.
[4] Mabu S, Obayashi M, Kuremoto T. Ensemble learning of rule-based evolutionary algorithm using multi-layer perceptron for supporting decisions in stock trading problems[J]. Applied Soft Computing, 2015,36:357-367.
[5] Tan A C, Gilbert D. Ensemble machine learning on gene expression data for cancer classification[J]. Appl Bioinformatics, 2003, 2(3 Suppl):S75-83.
[6] Xia Y, Liu C, Li Y, Liu N. A boosted decision tree approach using Bayesian hyper-parameter optimization for credit scoring[J]. Expert Systems With Applications, 2017,78:225-241.
[7] Yu L, Yue W, Wang S, Lai K K. Support vector machine based multiagent ensemble learning for credit risk evaluation[J]. Expert Systems With Applications, 2010, 37(2):1351-1360.
[8] 陈妙金,汪小钦,吴思颖.基于随机森林算法的水土流失影响因子重要性分析[J].自然灾害学报,2019,28(04):209-219.
[9] 杜太行,孟岩,孙曙光,江春冬,田朋.基于改进加权KNN算法的室内无线电发射源定位研究[J].中国测试,2019,45(09):105-111.
[10] 龚乐君,张立鹏,李宇茜,吴向辉,高志宏,潘传迪,杨庚.基于决策树的乳腺癌病历文本的挖掘与决策[J].南京师大学报(自然科学版),2019,42(03):42-51.
[11] 郭丽,刘磊.基于多层感知器的流量分类方法研究[J].电子测量与仪器学报,2019,33(07):56-64.
[12] 韩涛,尹伟石,方明.基于卷积神经网络和XGBoost的情感分析模型[J].复旦学报(自然科学版),2019,58(05):560-564.
[13] 任冬梅,张宇洋,董新玲.应用于石油钻井安全评价的改进主成分分析-贝叶斯判别方法[J].计算机应用,2017,37(06):1820-1824.
[14] 苏慧婧,群诺,贾宏云.基于KNN模型的藏文文本分类研究与实现[J].高原科学研究,2019,3(02):88-92.
[15] 孙梦婷,魏海平,李星滢,徐立.利用CART分类树分类检测交通拥堵点[J/OL].武汉大学学报(信息科学版):1-10[2019-11-23].https://doi.org/10.13203/j.whugis20190288.
[16] 翁小雄,吕攀龙.基于GBDT算法的地铁IC卡通勤人群识别[J].重庆交通大学学报(自然科学版),2019,38(05):8-12.
[17] 邬春学,赖靖文.基于SVM及股价趋势的股票预测方法研究[J].软件导刊,2018,17(04):42-44.
[18] 肖倩,谢海涛,刘平平.一种融合LDA与CNN的社交媒体中热点舆情识别方法[J].情报科学,2019,37(11):27-33.
[19] 徐婷,张香,张亚坤,王健.基于AdaBoost算法的货车驾驶人安全倾向性分类[J].安全与环境学报,2019,19(04):1273-1281.
[20] 颜丙乾,任奋华,蔡美峰,郭奇峰,王培涛.基于PCA和MCMC的贝叶斯方法的海下矿山水害源识别分析[J/OL].工程科学学报:1-12[2019-11-23].http://kns.cnki.net/kcms/detail/10.1297.TF.20191111.1126.002.html.
[21] 张异凡,黄亦翔,汪开正,刘成良.用于心律失常识别的LSTM和CNN并行组合模型[J].哈尔滨工业大学学报,2019,51(10):76-82.
[22] 周鹏.基于CNN-XGBoost的PTA平均粒径动态软测量模型.信息技术与网络安全,2018,37(9):61–64.

精准负荷预测是一项关键任务,可以帮助电力系统规划和运营决策。XGBoostMLP(多层感知器)都是用于预测任务的常见算法,可以应用于负荷预测XGBoost是一种基于梯度提升树的机器学习算法,通过多次迭代训练多个决策树模型,并将它们进行组合来进行预测。它在处理非线性关系和高维特征时表现出色,并且具有较好的泛化能力。 MLP是一种人工神经网络模型,由多个神经元层组成,每个神经元层都与下一层相连。每个神经元都将输入进行加权求和,并通过激活函数进行非线性变换。MLP可以用于解决复杂的非线性问题,并可以自动学习特征表示。 对于精准负荷预测任务,你可以考虑以下步骤: 1. 数据准备:收集历史负荷数据以及可能影响负荷的其他特征,如天气数据、节假日等。 2. 特征工程:根据领域知识和数据分析技巧,对原始数据进行特征提取和转换,以提高模型性能。 3. 数据划分:将数据集划分为训练集和测试集,通常使用时间序列划分方法,确保模型在未来的负荷预测中具有一定的泛化能力。 4. 模型选择和训练:选择合适的XGBoostMLP模型,并使用训练集对其进行训练。可以使用交叉验证等技术选择最佳模型参数。 5. 模型评估:使用测试集评估模型的性能,可以使用常见的指标如均方根误差(RMSE)或平均绝对百分比误差(MAPE)。 6. 模型优化:根据评估结果,优化模型参数或采用其他改进方法,以进一步提高预测性能。 需要注意的是,负荷预测是一个复杂的任务,可能受到许多因素的影响。除了算法选择和模型训练外,数据质量、特征选择和领域知识的应用也是影响预测精度的关键因素。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值