2023年12月20日发(作者:荣威rx8报价)
第26卷第6期2020年12月JOURNALOFJIANGSUUNIVERSITYOFTECHNOLOGY江苏理工学院学报Vol.26,No.6Dec.,2020基于XGBoost集成学习算法的电动汽车价格预测蔡秋茹(江苏理工学院计算机工程学院,江苏常州213001)摘要:针对电动汽车属性及价格的数据集,采用XGBoost集成学习算法进行电动汽车价格的分类和预测。首先,在Matlab和Python环境中,使用经过预处理的训练数据训练得到XGBoost分类和预测模型。然后,用训练所得XGBoost模型对测试数据进行价格预测,在准确率、召回率、F-score和混淆矩阵等方面对XGBoost算法进行测试,并与支持向量机和神经网络等算法做了对比实验。实验结果证明,三种预测模型预测准确率均在95%以上,XGBoost算法的预测效果最佳。最后,结合各预测模型的原理,对XGBoost预测模型的优缺点进行分析,并提出了模型的改进方向。关键词:车价预测;多分类问题;XGBoost集成学习中图分类号:F045.32文献标识码:A文章编号:2095-7394(2020)06-0033-11在现代经济生活中,商品价格有着杠杆调节作用。价格预测是进行科学决策的前提,它能为企业调节和控制生产提供有益的信息,使企业能够较为科学而准确地干预市场经济活动,从而使市场供求大体趋于平衡[1]。由于影响商品价格的因素众多,各因素之间关系复杂,导致价格预测成为研究难点。从信息科学角度看,目前商品价格预测方法主要有:基于统计学相关的方法预测以及基于机器学习的价格预测方法[2]。传统统计学相关的方法需要凭借预测者个人经验的参与,带有主观性。大数据背景下,机器学习具有准确率高、鲁棒性好的特点,所以逐渐成为解决预测类问题的最佳选择[3]。关于商品价格预测目前尚不存在公认的普适性方法,它是一个受诸多因素影响的变量,因其受外界因素(如城市人口的需求量、产业结构、政策因素等)的影响,具有较强的不确定性。收稿日期:2020-03-12由于商品预测在推动经济发展中发挥着重要的作用,故受到国内外学者们的热切关注,相关研究工作一直在持续进行。国内学者杨莉、邱家驹等提出了一种基于反向传播(BP)网络预测下一交易日无约束市场清算价格的方法,该方法去除了原始数据中的季节性趋势和增长趋势,用相关性分析技术选择输入量重新设计了拟合误差的代价函数,具有一定的创新性[4];周小丽、吴志雄等通过建立合适的时间序列模型,对历史数据进行处理,通过R语言进行模型选择及估计,实现上证综合指数日收盘价格的短期预测,为股票市场投资者提供相关参考[5];裴大卫、朱明等针对一般股票价格预测中的单变量长短期记忆网络存在的准确率与鲁棒性不佳的问题,将经济学领域的量化选股策略中的多因子模型思想引入到股票价格预测中,在单变量长短期记忆网络的基础上建立了一个多变量长短期记忆网络股票价格预测模型[6];贾作者简介:蔡秋茹,讲师,硕士,主要研究方向为大数据信息处理。
34江苏理工学院学报第26卷宁、郑纯军等设计了一种双重注意力机制与长短期记忆网络融合神经网络模型,将卷积注意力网络、长短期记忆网络和注意力机制相结合进行权重调节,最终将得到的结果用于农产品价格指数的短期预测[7]。国外学者PyoSujin、LeeJaewook等利用非参数机器学习模型(人工神经网络、多项式支持向量机和径向基函数核)来预测价格走势,通过Google趋势证明其研究具有较高的预测性能[8];Ebrahimi-an、HBarmayoon等提出了基于互信息的特征选择方法,用于价格的日前预测,包括基于神经网络的小波变换与混合预测相结合的方法,以及基于神经网络的预测过程智能算法来设置预测的无发动机参数[9];、对短期电价预测(EPF)进行了广泛的实证研究,发现多变量建模框架并不一致地优于单变量建模框架,将两种建模方法的高级结构或相应的预测相结合,可以进一步提高预测精度[10];h、ein等使用了Box-Jenkins时间序列法、多元线性回归分析和两种新的基于回归的技术,将每种算法产生的预测结果均以图形和数值形式给出,通过比较橡胶商品价格指数的预测值与实际值,评价了每种方法的准确性[11]。国内外学界针对不同的商品,融合机器学习算法进行价格预测,取得了丰硕的成果。近年来,电动车领域得到了快速发展,发展电动汽车对促进节能减排、带动产业转型升级有重要意义。然而,根据中国汽车工业协会调查,我国电动汽车普遍售价较高,2019年上半年电动汽车平均售价比燃油车高出81%,导致消费者对电动汽车价格的满意程度较低。电动车的价格变化不定,对其进行价格预测具有现实意义。在此背景下,本文分别采用传统预测算法支持向量机和人工神经网络以及集成学习算法XGboost进行电动汽车价格的预测,在Matlab和Python环境中搭建仿真模型,并用训练好的模型对经过预处理的测试数据进行预测,以检验模型的准确率。本文采用数据分析科学社区kaggle(https:///)上的数据集,给出了某品牌电动汽车不同规格的属性与价格数据作为训练集和一批未知价格的电动汽车属性数据作为测试集。其中,电动汽车的属性共有20个,属性的取值包括定量型变量,如电池可以一次性存储的总能量,也包括定性型变量,如是否有蓝牙(0代表无蓝牙,1代表有蓝牙)等,各定性变量与定量变量的释义如表1和表2所示。电动汽车的价格被分为4档,对应不同的价位,取值为0,1,2,3。训练集中共有15000组数据,用于预测模型的训练;测试集中共有5000组数据,用于预测模型的测试。表1定量指标变量变量类型变量名称feat1feat3feat5释义电池可以一次性存储的总能量/mAh微处理器执行指令的速度/MIPS前置摄像头百万像素内存/GB移动深度/cm重量/g处理器核心数主要相机百万像素像素分辨率高度定量指标feat7feat8feat9feat10feat11feat12
第6期续表蔡秋茹:基于XGBoost集成学习算法的电动汽车价格预测35变量类型变量名称feat13释义像素分辨率宽度以兆字节为单位的随机存取存储器屏幕高度/cm屏幕宽度/cm单个电池充电最长的时间/min表2定性指标变量定量指标feat14feat15feat16feat17变量类型变量名称feat2feat4释义是否有蓝牙有双SIM卡支持与否是否支持4G是否支持3G是否有触摸屏是否有Wi-Fi定性指标feat6feat18feat19feat20测值。异常值分析可检验数据是否有录入错误及1数据分析和预处理含有不合常理的数据。首先,对样本数据中的各属性进行描述性的统计,找出其最大、最小值,以判断变量的取值是否超出了合理范围,进而找出不合理的数据,然后采用箱型图检测异常值。箱型图识别异常值的标准为:异常值通常被定义为小于QL-1.5IQR或大于QU+1.5IQR的值。由于逻辑型的属性只有0,1两个取值,且经检测不存在异常值,故这里只对实数型的属性进行分析。由于实数型的属性数据的量纲不同,且数据的取值范围相差较大,故分析之前需对数据进行归一化处理,归一到[0,1]区间。对数据进行检测后,得到的箱型图如图1所示。观察图1可知,feat5有3个离群点,feat12有2个离群点。对于feat5(前置摄像头百万像素)和feat11(主要相机百万像素),由于这两个属性的值与其他属性无关,故采用其余正确数据的众数1(feat5)和10(feat11)分别对值为0的异常值进行修正;对于feat12(像素分辨率高度),该属性与feat13(像素分辨率宽度)相关。由于feat12只有一个异1.1挖掘目标定义本次数据挖掘建模目标如下:(1)找出影响电动汽车价格的关键属性,构建电动汽车价格预测模型。(2)利用测试数据,通过构建的预测模型对电动汽车价格进行预测。1.2数据质量分析与预处理数据质量分析用于检查原始数据中是否存在脏数据,主要包括缺失值和异常值。数据预处理包括数据清洗、数据变换和数据规约。数据预处理一方面是为了提高数据的质量,另一方面是要让数据更好地适应特定的挖掘技术或工具。1.2.1缺失值分析与处理运行电动汽车价格数据缺失值检测代码,对训练集中的数据进行检测后,并未发现存在缺失数据。1.2.2异常值分析与处理异常值指样本中个别数据明显偏离其余的观
36江苏理工学院学报第26卷常数据,该异常数据对应的feat13的值为994,且数据集中存在另外一条id=1196的数据,其feat13的值也为994,采用对其他正确数据分别求取平均值的方法进行插值,如表3所示。图1箱型图检测异常值结果表3feat16数据异常值均值插补结果feat12feat162.472.633.534.254.064.55.976.50feat71819—feat166.457.157.717.908.528.9410.34—对于箱型图中的离群点均采用最近临插补法[11]。对feat5=19,18,17的点,均用16作为替代;对于feat12=1949,1920的点,均用1901进行替代。1.2.3数据变换这里采用最小-最大规范化方法对原始数据进行线性变换,将数值映射到[0,1]区间。变化公式如下:x*=x-xmin。xmax-xminxmax-xmin为极差。的最小值,通过上述数据质量处理和异常值处理,使得电动车属性的基础数据更加科学合理。1.3数据特征分析1.3.1分布分析分布分析能揭示数据的分布特征和分布类型。对于定量变量,即实数型的属性数据,一般(1)按照以下步骤进行:求极差、决定组距与组数、决定分点、列出频率分布表、绘制频率分布直方图。部分属性定量变量分布如图2所示。其中,xmax为样本数据的最大值,xmin为样本数据
第6期蔡秋茹:基于XGBoost集成学习算法的电动汽车价格预测375501950(a)电池可以一次性存储的总能量/mAh(b)微处理器执行指令的速度(c)前置摄像头百万像素(d)内存/GB(e)移动深度/cm(f)重量/g图2电动汽车属性定量变量分布图1.3.2相关性分析首先,通过绘制散点图的方式,直观地判断两个变量是否具有线性相关关系。电动汽车属性散点图如图3所示。观察图3可知,这些属性两两之间不具有线性相关关系。
38feat17单个电池充电时间最长的时间feat17单个电池充电时间最长的时间feat17单个电池充电时间最长的时间feat17单个电池充电时间最长的时间江苏理工学院学报20002000feat13像素分辨率宽度feat13像素分辨率宽度feat13像素分辨率宽度feat13像素分辨率宽度第26卷2502000500(a)feat1电池可以一次性存储的总能量/mAh20202020feat16屏幕宽度(cm)feat16屏幕宽度(cm)feat16屏幕宽度(cm)feat16屏幕宽度(cm)feat1 电池可以一次性存储的总能量(mAh)feat1 电池可以一次性存储的总能量(mAh)feat1 电池可以一次性存储的总能量(mAh)feat1 电池可以一次性存储的总能量(mAh)(b)feat12像素分辨率高度8888feat10处理器核心数feat10处理器核心数feat10处理器核心数feat10处理器核心数feat12 像素分辨率高度feat12 像素分辨率高度feat12 像素分辨率高度feat12 像素分辨率高度7777666655554444333322220(c)feat15屏幕高度/cmfeat15 屏幕高度(cm)feat15 屏幕高度(cm)feat15 屏幕高度(cm)feat15 屏幕高度(cm)151515152.50.50.50.51111(d)feat3微处理器执行指令的速度feat3 微处理器执行指令的速度feat3 微处理器执行指令的速度feat3 微处理器执行指令的速度feat3 微处理器执行指令的速度1.51.51.51.522222.52.52.52.53333图3电动汽车属性数据散点图然后,通过计算相关系数以更加准确地描述变量之间的线性相关程度。对于不服从正态分布的变量之间的关联性可采用Spearman相关系数描述,其计算公式如下:rs=1-n2模型建立2.1分类预测建模理论6∑i=1(Ri-Qi)2n(n2-1)。(2)2.1.1基本概念电动汽车价格预测问题为典型的分类与预测问题。分类是指构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别,属于有监督学习[12]。预测是建立两种或两种以上变量间相互依赖的函数模型,然后进行预测或控制。分类实现过程如图4所示。2.1.2交叉验证交叉验证(Cross-validation)[13]是用来验证分类器性能的一种统计分析方法。交叉验证的好处是可以从有限的学习数据中获取尽可能多的有效信息,使得电动汽车价格预测得到较好的学习效果,预测结果更加为科学准确。将原始数据进行分的顺序编秩,Ri代表xi的秩次,Ri-Qi为xi、yi的秩次之差。只要两个变量具有严格单调的函数关系,那么它们就是完全Spearman相关的。相关分析得到电动汽车价格预测变量间的共变趋势,验证电动汽车价格预测变量间的具体作用关系,通过相关性分析,使电动汽车价格预测分析结果更为精确。通过以上分析,从影响电动车价格的众多变量中找出对分类预测识别工作最有效的变量,以实现特征空间维数的压缩,即获取一组“少而精”且预测错误率小的分类特征。对两个变量成对的取值分别按照从大到小
第6期蔡秋茹:基于XGBoost集成学习算法的电动汽车价格预测39组,一部分作为训练集,另一部分作为验证集。先用训练集对分类器进行训练,再用验证集测试训练得到的模型,以此作为评价分类器性能的指标。本文采用5折交叉验证法,可以在样本数据量不足的情况下充分利用所有样本挖掘出数据中的有用信息。图4分类模型的实现步骤2.1.3多分类问题的求解思路(1)OvO策略对4种类型的样本进行分类时,分别取一种样本作为一类,将剩余所有类型的样本看作另一类,这样就形成了4个二分类问题。使用二分类算法对4个数据集训练出4个模型,将待预测的样本传入这4个模型中,所得概率最高的那个模型对应的样本类型即为该预测样本的类型,OvO策略示意图如图5所示。图5OvO策略示意图(2)OvR策略类型两两结合,共有C4=6种二分类情况。用这62种模型预测样本类型,得到6个预测结果,种类最多的样本类型即为该样本最终的预测类型。OvR策略示意图如图6所示。对4种类型的样本进行分类时,每次挑出2种图6OvR策略示意图
40江苏理工学院学报第26卷2.2集成学习模型2.2.1模型基本思想集成学习模型[14]通过将多个单个弱分类器集成/组合在一起,使它们共同完成分类任务。将多个分类器组合在一起,是因为单个分类器往往可能效果不太好,而多个分类器可以互相弥补、各取所长,一起合作把一个分类任务完成得比较精确。XGBoost是一种集成学习算法,属于Boosting算法[15]的一种。Boosting算法的中心思想是集成许多弱分类器,以迭代的方式形成一个强分类器。XGBoost从本质上来讲是一类提升树模型,它将许多树模型集成在一起,形成一个性能强大的分类器。训练数据集该算法思想就是通过不断地添加树和进行特征分裂来生长一棵树,每添加一棵树,其实是学习一个新函数,去拟合上次预测的残差。当训练完成得到k棵树,要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数,最后只需要将每棵树对应的分数加起来就是该样本的预测值。对目标函数进行二阶泰勒展开来优化目标函数,目标函数如式(3)所示:nt-1n为样本总数,yi为第t-1个学习器对i式中,J(ft)=∑i=1L(yi,yit-1+ft(xi))+Ω(ft)。(3)样本的预测值,ft(xi)为新加入的第t个学习器,L(?)为损失函数,Ω(ft)为正则项,即模型的误差。XGBoost的决策树训练过程如图7所示。
残差
……迭代残差 残差图7XGBoost的决策树训练过程正则项与叶子的节点数以及叶子的权值平方和有关,如式(4)所示:Ω(ft)=γT+1λω2(4)j。∑j=12T其中的γ和λ分别为L1和L2的正则化系数,T(5)gi和hi分别是损失函数的一阶导数和二阶式中,C是常数项。导数,基于数的集成算法,可以在训练结束后输出模型所使用的特征的重要度,从而便于做特征选择。特征j的全局重要度通过特征j在单棵树中重要度的平均值来衡量:MJj2=1∑m=1Jj2(Tm)。MM为树的数量。式中,义如下:(6)ω为各个叶子节点的为决策树的叶子的节点数,输出向量。L2正则可以有效降低模型过拟合风高算法的运行速度。本题的数据维度较高,所所示:险,L1正则可以在数据的维度很高的情况下提以可以基于L1和L2正则来构建模型,如式(5)T2J(ft)≈∑i=1égift(xi)+1hift2(xi)ù+1λωj+γT+C。∑j=12??2n2特征值j在单棵树的重要度为Jj(T),定L-1Jj2(T)=∑t=1li2I(vt=j)。(7)
第6期蔡秋茹:基于XGBoost集成学习算法的电动汽车价格预测41式中,L为树的叶子节点数,L-1为树的非叶子节点数,vt为与节点t相关联的特征,li2是节点t分裂后平方误差的减少量。2.2.2模型求解将清理后的数据导入模型,通过利用机器学习工具包scikit-learn中的XGBoostClassifier包训练模型得到最佳分类面。在此之前本文先用工具包自带的特征重要程度排序功能得到对于分类最重要的两个特征feat1和feat14,进而根据这两个特征对模型的分类效果进行可视化,分类效果如图8所示。经多次调参,模型准确率在97%左右。图8分类效果图2.3算法评价为了有效判断一个分类预测模型的性能表现,需要一组没有参与预测模型建立的测试集,并在测试集上评价预测模型的准确率。模型预测效果评价采用的参数包括准确度(Accuracy)、召回率(Recall)、F-score和混淆矩阵。(1)准确度Acc=TP+FN×100%。TP+TN+FP+FN做了比较,得到如表4所示的评价结果。由表4可知,XGBoost算法的综合平均的分类准确率为97%,明显高于神经网络模型和支持向量机模型。准确率、精度及召回率越大,则表明模型性能越好,因此本文的XGBoost模型预测电动汽车价格具有一定的优势。(8)3模型评估3.1模型的优点与缺点(2)召回率Rec=TP×100%。TP+FN(9)通过理论分析与实验结果,总结得到模型的优点有:(1)很好地利用了弱分类器进行级联;(2)可以将不同的分类算法作为弱分类器;(3)具有很高的精度。缺点有:(1)弱分类器数目不太好设定;(2)数据不平衡会导致分类精度下降;(3)训练比较耗时。(3)F-scoreF1=(4)混淆矩阵2TP。2TP+FP+FN(10)混淆矩阵用于描绘样本数据的真实属性与识别结果类型之间的关系。对角线元素表示各模式能够被分类器正确识别的百分率,非对角线元素则表示发生错误判断的百分率。通过运行电动汽车价格数据分类模型与结果可视化代码,分别对经过清洗的训练数据进行分类和预测,并将其与支持向量机及神经网络算法3.2模型的改进方向在集成学习算法中采用了最简单的投票法,即相对多数投票法,也就是多个弱学习器对样本的预测结果中,数量最多的类别为最终的分类类别。如果不止一个类别获得最高票,则
42江苏理工学院学报第26卷随机选择一个做最终类别。此方法相对比较简单,可能学习误差较大,故可以采用学习法,将弱学习器作为初级学习器,将用于结合的学习器称为次级学习器。对于测试集,首先用初级学习器预测一次,得到次级学习器的输入样本,再用次级学习器预测一次,得到最终的预测结果。表4各分类算法预测效果评价模型名称准确率召回率F-scoreé66ê2ê0ê?0混淆矩阵ù0ú7úú87?混淆矩阵可视化图XGBoost0.970.930.95神经网络0.960.920.94é60ê5ê0ê?0ù0ú6úú81?支持向量机(带线性核函数)0.960.900.93é60ê5ê0ê?0ù0ú6úú80?注:混淆矩阵图中,每行代表真实样本类别,每列代表预测样本类别,颜色越深表示预测结果与真实结果越相近,好的分类结果一般呈现出“以主对角线颜色最浅为特征”的结果。值得指出的是,影响商品市场价格的因素还包括商品供求的关系、原材料价格、政策、消费心理等涉及经济学、社会学、心理学等领域的属性。本文的研究遵循学界的一般处理方法,忽略上述因素的影响,而根据电动车的20个物理配置关键属性,采用XGBoost集成学习算法对电动汽车价格进行预测,为电动汽车企业规划和控制决策提供科学依据。有关融合经济学、社会学、心理学数据对价格进行更加全面的预测是本研究下一步努力的方向。SSTanomalies[J].THEORETICALANDAPPLIEDCLI-MATOLOGY,2019,137(1/2):805-822.[3]SHINY,LEEH,LEEYJ,dictionofDiatomAbundancebyComparisonofVariousMachineLearningMethods[J].MATHEMATICALPROBLEMSINENGI-NEERING,2019:1-13.[4]杨莉,邱家驹,江道灼.基于BP网络的下一交易日无约束市场清算价格预测模型[J].电力系统自动化,2001(19):11-15.[5]周小丽,吴志雄.上证综合指数日收盘价的短期预测:基于ARIMA模型的实证分析[J].社会科学前沿,2016,5(4):630-637.[6]裴大卫,朱明.基于多因子与多变量长短期记忆网络的股票价格预测[J].计算机系统应用,2019,28(8):30-38.[7]贾宁,郑纯军.基于LSTM-DA神经网络的农产品价格指数短期预测模型[J].计算机科学,2019(S2):62-65.[8]PYOSujin,LEEJaewook,CHAMincheol,t-参考文献:[1]DUBEO,ityPriceShocksandCivilConflict:EvidencefromColombia[J].REVIEWOFECO-NOMICSTUDIES,2013,80(4):1384-1421.[2]LUJM,ZHUCW,PANGYS,sticalforecastmodelfortheChinesewintertemperaturebasedonautumn
第6期蔡秋茹:基于XGBoost集成学习算法的电动汽车价格预测43abilityofmachinelearningtechniquestoforecastthetrendsofmarketindexprices:HypothesistestingfortheKoreanstockmarkets[J].PloSONE,2017,12(11):1-17.[9]EBRAHIMIANH,BARMAYOONS,MOHAMMADIM,cepredictionfortheenergymarketbasedonanewmethod[J].EconomicResearch-EkonomskaIstra?ivan-ja,2019,31(1):313-337.[10]ZIELF,-aheadelectricitypriceforecastingwithhigh-dimensionalstructures:ar-iatemodelingframeworks[J].ENERGYECONOMICS,2018,70:396-420.[11]BinrothW,BurshteinI,HaboushRK,risonofcommoditypriceforecastingbyBox-Jenkinsandre-gression-basedtechniques[J].TechnologicalForecastingandSocialChange,1979,14(2):169-180.[12]董鲁豫.基于监督学习的虚假评论检测研究[J].黑龙江科技信息,2016(29):176.[13]张欣怡,袁宏俊.正则化和交叉验证在组合预测模型中的应用[J].计算机系统应用,2020(4):18-23.[14]饶德备,谭鹏,李胜男,等.基于选择性集成模型库的选择性催化还原脱硝系统自适应建模[J].中国电机工程学报,2019,39(19):5817-5823.[15]朱武峰,王廷银,林明贵,等.基于GradientBoosting算法的ERMS辐射数据预测[J].计算机系统应用,2019(11):37-44.责任编辑祁秀春PricePredictionofElectricVehicleBasedonXGBoostEnsembleLearningAlgorithmCAIQiuru(SchoolofComputerEngineering,JiangsuUniversityofTechnology,Changzhou213001,China)Abstract:Aimingatthedatasetofelectricvehicleattributesandprices,theclassificationandpredictionofelectricvehiclepriy,inMatlabandPythonenvironment,theXGBoostclassification,oostalgorithmistestedintermsofaccuracy,recallrate,F-scoreandconfusionmatrix,erimentalresultsshowthattheaccuracyofthethreepredictionmodelsareabove95%,y,combinedwiththeprinciplesofallpredictionmodels,theadvantagesanddisadvantagesoftheXGBoostpredictionmodelareanalyzed,ds:vehiclepriceprediction;multi-classificationproblem;XGBoostensemblelearning
更多推荐
预测,模型,数据,价格,电动汽车,进行,变量,分类
发布评论