一种基于BP神经网络的二手车价格评估优化算法的制作方法

文档序号:12964526阅读:308来源:国知局
一种基于BP神经网络的二手车价格评估优化算法的制作方法与工艺
本发明涉及一种基于bp神经网络的二手车价格评估优化算法,属于计算机算法领域。
背景技术
:随着私人汽车数量的快速增长以及二手车市场的发展,二手车已经成为人们选购汽车的主流。而随着信息技术的发展,尤其是移动互联网的兴起,传统的二手车线下交易模式已经不能满足消费者要求,二手车在线交易平台的出现是必然趋势。对比一些现有的线上交易平台,我们发现关于二手车价格的在线评估及其准确性,是此类平台的核心业务。根据我们的调查,现有平台的估价算法是机械的、孤立的,没有将交易数据的激增以及交易市场的动态变化反映到计算过程中去,而这些都是决定二手车价格的关键因素。现有的评估算法无法应付庞大的应用场景数量,导致计算精度大幅度下降。而随着大数据相关技术广泛应用于机器学习和认知科学等领域,bp神经网络算法作为一种主要用于对函数进行估计和近似的计算模型,联结大量的神经元进行计算,能实现一种有效可观的预测模型。横向对比其他算法,为了提高计算的准确率,我们抛弃了以往普适的像聚类这样的非监督算法,采用了神经网络这种精确度更高的监督算法。而我们采用的优化后的bp神经网络算法,既有很强的非线性拟合能力和强鲁棒性,又兼具了非监督算法易于解释的优点,很好地描述了这一应用模型。从而能建立起一套具有实用价值的在线车辆价格评估系统。技术实现要素:目的:本发明提供一种基于bp神经网络的二手车价格评估优化算法,利用大量的二手车辆数据及其交易数据,建立了一种二手车价格评估模型,并针对神经网络基本运算结构中的隐藏层,对其中隐藏神经元个数的选择方法进行优化,采用“类分块-蒙特卡洛”(lb-mcm)以更快速的寻找更优的隐藏神经元数目,从而使网络拓扑兼顾逼近与泛化的能力,提高了模型整体的训练效率与准确率。技术方案:为了解决上述技术问题,本发明所采用的技术方案为:一种基于bp神经网络的二手车价格评估优化算法,选取三层bp神经网络为原型,采用“类分块-蒙特卡洛法”对bp神经网络中隐藏层的神经元的选择过程进行优化,建立二手车价格评估模型,包含以下步骤:(1)数据采集:选取车辆相关属性即二手车辆数据及其交易数据作为待训练样本数据,包括二手车的品牌、车系、使用年限、车龄、里程、上牌时间、生产年份、排量和新车价格;(2)网络拓扑结构确定:bp神经网络结构包括输入层、隐藏层和输出层,其中,输入层:输入二手车价格评估的待训练样本数据,每个输入节点都被映射成一个车辆相关属性,模型随机初始化输入节点的权值;隐藏层:隐藏层神经元个数采用“类分块-蒙特卡洛”(lb-mcm)方法进行确定,具体步骤如下:(2a)经验公式确定初始点根据matlab的神经网络工具箱指导手册,限制隐藏层神经元的个数为1-50,即计算区间长度为49,并采用以下三个经验公式分别确定参考的隐含层单元数,即三个初始经验点:公式1:其中,k为常数,ni为隐含层单元数,n为输入单元数,i为[0,n]之间的常数;公式2:其中,n1为隐含层单元数,n为输入单元数,m为输出单元数,a为[1,10]之间的常数;公式3:n2=log2n,其中,n2为隐含层单元数,n为输入单元数;(2b)定点进行第一次k折交叉检验在确定初始的三个经验点后,在区间端点间随机选取包括这三个经验点和端点在内的个点,其中l为区间长度,并对选取的点进行第一次k折交叉检验;(2c)第二次k折验证经过第一次k折交叉检验后,随机各选取紧邻两区间内的个点,其中l为区间长度,进行第二次k折交叉检验;经过二次k折交叉检验得到的数据点即为误差值,为非线性曲线,将非线性的关系近似成线性关系,得到一条凹曲线;(2d)剔除离群点判断经过二次k折交叉检验得到的数据点是否离群,若离群则剔除离群点,随后比较剔除后的点的误差值,将误差值最小的点作为最小误差点,即步骤(2c)中所述的凹曲线的最低点;(2e)循环随机取点验证判断步骤(2e)中在最小误差点紧邻的两个误差值点是否经过第二次k折交叉检验,若已经过第二次k折交叉检验,则该最小误差点为最佳隐藏层单元数,若两个误差值点未经过第二次k折交叉检验,则返回步骤(2c)中,在最小误差点与紧邻两个误差值点的两区间内,不断循环取点进行交叉检验,直至寻得最佳隐藏层单元数。输出层:由给定的输入输出模式对隐藏层、输出层各单元组合后,输出评估价格结果,实时反馈供用户参考,并计算评估价格与真实交易价格之间的误差;(3)增量训练:用户交易完毕后的交易数据作为样本数据返回至步骤(2)进行增量训练,通过在隐藏层和输出层的反向传播,不断地更新网络的权值和偏差,以维持模型的高准确率。优选地,步骤(2b)和步骤(2c)中所述的第一次k折交叉检验和第二次k折交叉检验的参数值k为10。优选地,步骤(2e)中所述的循环取点进行交叉检验为不包括端点在内的k折交叉检验。有益效果:本发明提供一种基于bp神经网络的二手车价格评估优化算法,相比于优化前的传统算法,优化后的算法与真实的交易价格之间存在更小的误差,提高了预测模型的准确性,同时提高了算法的计算速度,有利于算法更好地运用至其他领域,此外用户交易完毕后,交易数据被用来增量训练以维持模型的高准确率,通过不断的机器增量训练,让评估系统良性循环,维持模型的高准确率,使之更持久地为用户提供服务。附图说明图1为本发明的神经网络的基本运算结构。图2为本发明的“类分块-蒙特卡洛法”(lb-mcm)的流程图。图3为本发明的价格预测仿真结果对比曲线图。具体实施方式为了使本
技术领域
的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。一种基于bp神经网络的二手车价格评估优化算法,选取三层bp神经网络为原型,采用“类分块-蒙特卡洛法”对bp神经网络中隐藏层的神经元的选择过程进行优化,建立二手车价格评估模型,包含以下步骤:(1)数据采集:选取车辆相关属性即二手车辆数据及其交易数据作为待训练样本数据,包括二手车的品牌、车系、使用年限、车龄、里程、上牌时间、生产年份、排量和新车价格;(2)网络拓扑结构确定:bp神经网络结构包括输入层、隐藏层和输出层,其中,输入层:输入二手车价格评估的待训练样本数据,每个输入节点都被映射成一个车辆相关属性,模型随机初始化输入节点的权值;隐藏层:隐藏层神经元个数采用“类分块-蒙特卡洛”(lb-mcm)方法进行确定,具体步骤如下:(2a)经验公式确定初始点根据matlab的神经网络工具箱指导手册,限制隐藏层神经元的个数为1-50,即计算区间长度为49,并采用以下三个经验公式分别确定参考的隐含层单元数,即三个初始经验点:公式1:其中,k为常数,ni为隐含层单元数,n为输入单元数,i为[0,n]之间的常数;公式2:其中,n1为隐含层单元数,n为输入单元数,m为输出单元数,a为[1,10]之间的常数;公式3:n2=log2n,其中,n2为隐含层单元数,n为输入单元数;(2b)定点进行第一次k折交叉检验在确定初始的三个经验点后,在区间端点间(确定区间长度的边界点)随机选取包括这三个经验点和端点在内的个点,其中l为区间长度,并对选取的点进行第一次k折交叉检验;(2c)第二次k折验证经过第一次k折交叉检验后,随机各选取紧邻两区间内的个点,其中l为区间长度,进行第二次k折交叉检验;经过二次k折交叉检验得到的数据点即为误差值,为非线性曲线,将非线性的关系近似成线性关系,得到一条凹曲线;(2d)剔除离群点判断经过二次k折交叉检验得到的数据点是否离群,若离群则剔除离群点,随后比较剔除后的点的误差值(纵轴),将误差值最小的点作为最小误差点,即步骤(2c)中所述的凹曲线的最低点;(2e)循环随机取点验证判断步骤(2d)中在最小误差点紧邻的两个误差值点是否经过第二次k折交叉检验,若已经过第二次k折交叉检验,则该最小误差点为最佳隐藏层单元数,若两个误差值点未经过第二次k折交叉检验,则返回步骤(2c)中,在最小误差点与紧邻两个误差值点的两区间内,不断循环取点进行交叉检验,直至寻得最佳隐藏层单元数。(本发明中在选取过程中要注意,尽量不选取该点紧邻的两点进行验证,除非只剩该点没有被选取过。交叉检验每次至少选取一点,直到区间长度为0,选取原则为向上取整。)输出层:由给定的输入输出模式(即网络中当前的相关边的权值)对隐藏层、输出层各单元组合后,输出评估价格结果,实时反馈供用户参考,并计算评估价格与真实交易价格之间的误差;(本发明中隐含层单元的误差是基于下一层中的神经元的误差和相关权值来计算。一旦计算出了每个神经元的误差,随后便进行网络中权值的更新。)(3)增量训练:用户交易完毕后的交易数据作为样本数据返回至步骤(2)进行增量训练,通过在隐藏层和输出层的反向传播,不断地更新网络的权值和偏差,以维持模型的高准确率。优选地,步骤(2b)和步骤(2c)中所述的第一次k折交叉检验和第二次k折交叉检验的参数值k为10。优选地,步骤(2e)中所述的循环取点进行交叉检验为不包括端点在内的k折交叉检验。实施例1:利用上述优化后的bp神经网络模型和未优化的bp神经网络模型分别采用有限的数据量和单机进行模型的训练(16425条数据)和价格的预测(1630条数据),并且为了提高可信度,放置了重复组。如图3所示为价格预测仿真结果对比曲线图,可以看出优化前后的bp神经网络模型的在对价格的预测上几乎完全拟合曲线,由表1的bp神经网络预测误差可以看出,优化后的bp神经网络模型的相对误差均保持在0.6%左右,而公式法(车辆评估值=重置成本*成新率*调整系数)算出的价格却远远偏离交易价格曲线。表1bp神经网络预测误差绝对误差相对误差优化前0.113±0.0800.78%0.55%优化后0.084±0.0690.58%±0.48%本发明的隐藏层中,网络中的每个神经元都是一个基本的处理单元,它组合所有的输入,每个执行一个特定的计算,然后触发输出值(激活)。在这个单元,有两个函数,分别是组合函数和输出函数(激活函数)。组合函数即为高斯函数:gau(x;c,e)=exp(-(x-e)2/2e2);激活函数为:y=sig(neti;c,θ)=1/(1+exp[-(neti-c)/θ])。上述组合函数均为常规函数用于组合所有的输入,为本领域掌握的常规技术手段,故而未加详述。本发明中离群点考虑的是极大误差离群点,检测对象是全局监测点,使用非参数方法核密度估计(kerneldensityestimation)来估计数据的概率密度分布,从而判断该点是否为离群点,为本领域技术人员所掌握的常规技术手段,故而未加详述。本发明中所涉及的k折交叉检验为本领域技术人员所掌握的常规技术手段,故而未加详述。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1