车联网大数据跨域分析融合方法与流程

文档序号:19312721发布日期:2019-12-03 23:41阅读:762来源:国知局
车联网大数据跨域分析融合方法与流程

本发明属于数据挖掘与计算技术领域,尤其是一种车联网大数据跨域分析融合方法。



背景技术:

目前,为了满足物联网数据流的实时、连续、快速到达的特点以及在线分析的应用需求,必须要通过具有低的时间复杂度和低的空间复杂度的流数据挖掘算法来实现。

车联网作为物联网的重要应用,需要充分挖掘其流数据中的关联关系,例如,交通事故黑点分析(交通事故和时间、地段、天气状况等因素之间的关联关系)等。由于车联网的一个很重要的应用就是通过对各种信息进行加工分析,发现异常情况并进行预警,传统数据挖掘算法是基于统计思想进行检测,其存在的问题是需要事先知道数据的分布特征,但是针对车联网数据量大的特点,不可能对全部的历史数据分析其分布特征;另外,现有车联网系统中,车联网产生的数据流具有实时、连续、快速到达等特点,并且有在线分析的应用需求,同时终端采集设备的多样性数据格式的差异性等因素,造成现有数据挖掘算法不能对其中的数据进行有效分析。

综上所述,如何根据车联网进行高效、准确地进行处理,以适应该行业数据挖掘处理的发展需求,是目前迫切需要解决的问题。



技术实现要素:

本发明的目的在于克服上述现有技术存在的不足,提供一种设计合理、高效、准确的车联网大数据跨域分析融合方法。

本发明解决其技术问题是采取以下技术方案实现的:

一种车联网大数据跨域分析融合方法,包括以下步骤:

步骤1、建立车联网云数据挖掘架构,该车联网云数据挖掘架构包括分布式数据访问引擎、并行挖掘引擎及代理节点和web服务器集群;

步骤2、采用车联网数据挖掘算法进行数据挖掘;

步骤3、采用共享内存并行计算技术实现共享内存的并行功能。

进一步,所述步骤1的分布式数据访问引擎基于神通clusterware数据库集群产品实现;所述并行挖掘引擎及代理节点和分布式数据访问引擎进行通信获取数据分布情况,并结合当前各代理节点的负载和资源情况将数据挖掘任务向代理节点进行分发,各代理节点间相互通信实现跨节点的并行数据挖掘;所述web服务器集群基于云计算模式。

进一步,所述步骤2的具体实现方法为:

步骤2.1、采用高精度的车联网智能化聚类方法对车辆网数据进行智能化聚类;

步骤2.2、采用自适应的非线性时间序列预测方法对车辆网数据与时间相关规律进行预测;

步骤2.3、采用面向海量数据的高性能svm分类预测方法对车辆网数据进行分类预测。

进一步,所述步骤2.1的所述车联网智能化聚类方法包括:

⑴采取最大最小距离法选取初始聚类中心,具体实现方法为:

①在n个数据样本构成样本集dn={x1,x2,...,xn}中随机选取一个,例如x1,把x1作为第一个类的中心c1,从剩余样本集中找出与c1距离最大的样本作为c2;

②对dn中未选择为中心的样本xi,分别求其到已选择的中心c1、c2的距离,令其中最小的距离为di;

③计算所有未选择为中心的样本对应的di的最大值max{di},取对应的对象为新的聚类中心;

④重复②、③操作,直至选出k个初始中心;

⑵通过自动寻优算法智能化地确定聚类簇数,该自动寻优算法采用侧影系数指标,该侧影系数指标计算方法为:

假设一个具有n个数据样本的数据集被划分为k个类别ci(i=1~k),a(t)为类别cj中的样本t与cj内所有其它样本的平均距离,d(t,ci)为cj的样本t到另一个类ci的所有样本的平均距离,取最小值b(t)=min{d(t,d(t,ci)},其中i=1~l且i≠j,定义样本t的侧影系数为:

sil(t)=[b(t)-a(t)]/max(a(t),b(t))。

进一步,所述步骤2.2自适应的非线性时间序列预测方法包括:

⑴采用数据自适应平稳化处理,包括均值平稳化和方差平稳化;

⑵模型自适应定阶:用户根据自己对数据的理解以及算法提供的当前数据与历史数据的自相关系数和偏相关系数,自行设定回归阶数;或者选用时间序列提供的自动寻优机制,由算法内部根据阶数取值不同时所对应的模型结果采用bic准则在模型结果和阶数之间进行权衡,得到最优的回归阶数;

⑶引入非线性核函数:基于传统的支撑向量机、神经网络内核的自回归时间序列方法,通过支撑向量机、神经网络内核可以加入更加复杂的因素,得到当前数据与历史数据的非线性关系。

进一步,所述步骤2.3面向海量数据的高性能svm分类预测方法的具体实现方法包括:

⑴基于聚类思想压缩数据:首先针对属于每个分类的样本集合构建各自独立的、类似于二叉树的层次树,自根结点开始进行svm训练,生成一个相对不够精准的分类边界,该分类边界对应着一组数量相对较少的支持向量,支持向量又对应着下一层结点,然后再对这些结点进行svm训练,如此重复进行直至叶子层级,最后生成相对精准的分类边界;

⑵通过层次树构建的参数自适应调优:

⑶在压缩数据基础上的累积层次抽样。

进一步,所述步骤⑵层次树构建的参数自适应调优的方法为:从大样本数据中均匀抽取一定量样本,以使其尽量体现数据的总体特征,然后计算两两样本之间的欧氏距离,将这些距离的一组分位点作为阈值半径,如果某个分位点作为阈值半径构建的层次树,所训练模型的准确率最大或者大于某个期望值,那么该阈值半径的取值就是最优的。

进一步,所述步骤⑶压缩数据基础上的累积层次抽样的方法为:对大样本数据进行均匀分层,当前n层样本数据所训练模型不能达到预期的分类准确率时,则在这些样本数据中累积加入第n+1层样本数据再次训练,直到达到期望准确率。

进一步,所述步骤3的具体实现方法为:在每一个代理节点上,实现基于共享内存的并行技术;以现有的并行计算框架构建共享内存并行计算框架stpj,在共享内存技术中采用三种负载均衡策略:静态调度、动态调度、有指导的调度。

进一步,所述静态调度为:各线程将n步迭代进行平均分配;

所述动态调度为:各线程将循环迭代指定数目的块,将块分配给为此块调用run方法的线程,当run方法返回后,线程获取下一个块并执行它,直到所有块被执行完为止;

所述有指导的调度为:线程把循环迭代分成从大到小的块,每次以1/2的比例分割剩余的块,再按线程数进行均分。

本发明的优点和积极效果是:

1、本发明采用由分布式数据访问引擎、并行挖掘引擎、web服务器集群及代理节点构成的可支持并行计算的云数据挖掘架构,提高了面向海量数据的支撑能力;通过数据预处理技术、不确定数据预处理技术车联网行业数据处理与融合技术,优化流数据等车联网特有数据的支持;并且基于车联网流数据的挖掘、分析、聚类技术、行为识别、异常检测等新型数据挖掘算法,提升系统的智能化水平。

2、本发明采用云计算平台下的数据挖掘技术及车联网行业中数据挖掘算法,针对车联网行业终端采集设备的多样性所导致的数据格式的差异性,充分考虑了车联网行业的数据格式、特点等各方面的特点,以适应该行业数据挖掘处理的发展需求,满足车联网的不同数据类型的数据挖掘需求。

附图说明

图1为传统算法聚类结果示意图;

图2为本发明采用优化初始重心的聚类结果示意图;

图3为一个乘客数据的数据分布图(平稳化前);

图4为一个乘客数据的数据分布图(平稳化后);

图5为采用线性核测试结果示意图;

图6为采用支撑向量机核测试结果示意图;

图7为svm优化前后的内存消耗对比图;

图8为svm优化前后的运算时间对比图。

具体实施方式

以下结合附图对本发明的实施做进一步详述。

一种车联网大数据跨域分析融合方法,包括以下步骤:

步骤1、建立车联网云数据挖掘架构,该车联网云数据挖掘架构包括分布式数据访问引擎、并行挖掘引擎及代理节点和web服务器集群。

(1)分布式数据访问引擎:为了解决海量数据的访问需求,本发明将数据库集群产品“神通clusterware”升级为“分布式数据访问引擎”和“分布式数据访问引擎”管理车联网数据的存储节点,并向外部提供透明访问,以此实现对pb级数据的大规模并行访问,并提供良好水平扩展性和线性加速比,通过“分布式数据访问引擎”和存储节点的动态扩展,大幅提升本发明对海量车联网数据的访问能力。

(2)并行挖掘引擎及代理节点:“并行挖掘引擎”同“分布式数据访问引擎”进行通信获取数据分布情况,并结合当前各代理节点的负载和资源情况将数据挖掘任务向代理节点进行分发。“并行挖掘引擎”充分考虑待挖掘数据的存储位置,挖掘任务将优先被分配到待挖掘数据所在的代理节点,减少不必要的数据传输。这样一来,每个代理节点即可优先对本地数据执行挖掘任务,在必要时也可通过“分布式数据访问引擎”来对远端的车联网数据存储节点进行访问和挖掘。另外,各代理节点间可相互通信,实现跨节点的并行数据挖掘。上述机制使得本发明通过计算能力可扩展、均衡和并行计算等特性具备了对车联网海量数据的挖掘能力。

(3)web服务器集群:由于云计算模式下,用户的访问量一般比较大,为解决高并发访问需求,车联网云数据挖掘架构采用web集群技术。

步骤2、采用针对车联网数据的数据挖掘算法进行数据挖掘

由于车联网产生的数据流具有实时、连续、快速到达等特点,并且有在线分析的应用需求。针对以上数据特点,本发明采用了分布式数据访问引擎架构,设计针对车联网数据的高性能和准确度的数据挖掘算法,为提供挖掘效率,采用了共享内存并行计算技术。具体方法为:

步骤2.1采用高精度的车联网智能化聚类方法对车辆网数据进行智能化聚类

数据挖掘中的聚类技术是将数据对象分组成为多个类,其基本的划分原则是:在同一个类中的对象之间具有较高的相似度,而在不同类中的对象则差别较大。

聚类技术原理为:首先要指定所需要的聚类簇数(即要将所有数据划分成几个类别),这便是参数k;接着随机选取k个数据样本作为每个类别的初始中心,根据欧几里德等距离度量,将所有的数据分配到各自最靠近的聚类中心;然后根据划分到各个类别的数据计算出各个类别新的中心(即平均值);最后用新的聚类中心重复整个过程。如此迭代直至每个聚类上分到的点与在上一轮分到的点相同,此时聚类中心不再改变,这便形成了分类类别。

传统的k均值聚类算法存在如下问题:一是由于聚类的初始聚类中心是随机选取的,这会造成结果不稳定,影响聚类结果的准确性;二是需要事先指定的聚类簇数k即分类类别数目,对于用户来说很可能无法预先知道,因此k值选取带有很强的主观性和随意性。为克服这两个技术难点,本发明对k均值聚类算法进行了如下的改进:

(1)初始聚类中心选取的精准化:采取最大最小距离法选取初始聚类中心。

本发明采取最大最小距离法选取初始聚类中心。这和传统的k均值聚类随机选取初始聚类中心的做法有很大不同。最大最小距离法就是取尽可能离得远的对象作为初始聚类中心,避免了传统k均值算法初始聚类中心选取时可能出现的聚类种子过于临近的情况,提高了聚类结果的稳定性及准确度。其具体实现方法为:

①在n个数据样本构成样本集dn={x1,x2,...,xn}中随机选取一个,例如x1,把x1作为第一个类的中心c1,从剩余样本集中找出与c1距离最大的样本作为c2;

②对dn中未选择为中心的样本xi,分别求其到已选择的中心c1、c2的距离,令其中最小的距离为di;

③计算所有未选择为中心的样本对应的di的最大值max{di},取对应的对象为新的聚类中心;

④重复②、③操作,直至选出k个初始中心。

选取了一组明显属于4个类别的数据,用传统k均值聚类算法,可能得到如图1所示的聚类中心,显然不准确;而采用本发明提出的最大最小距离法选取初始聚类中心的算法,得到如图2所示的聚类结果,从而保证了算法的准确性和稳定性。

(2)聚类簇数选取的智能化:通过自动寻优算法智能化地确定聚类簇数。

本发明通过自动寻优算法智能化地确定聚类簇数。自动寻优是指定义一个合理的指标计算方法,使用不同的聚类簇数k对数据进行划分,然后计算每种划分的指标值,通过指标值来寻找最好的聚类结果,从而确定最优聚类簇数。一个“好”的聚类结果应该能使得每个类内的数据点尽可能“紧凑”而不同类之间的数据点尽可能“分离”,即类内距离尽可能小而类间距离尽可能大。

本发明的自动寻优算法主要采用侧影系数指标。计算原理如下:

假设一个具有n个数据样本的数据集被划分为k个类别ci(i=1~1),a(t)为类别cj中的样本t与cj内所有其它样本的平均距离,d(t,ci)为cj的样本t到另一个类ci的所有样本的平均距离,取最小值b(t)=min{d(t,d(t,ci)},其中i=1~k且i≠j,定义样本t的侧影系数为:

sil(t)=[b(t)-a(t)]/max(a(t),b(t))

侧影系数综合反映了聚类结果的类内紧密性(类内平均距离)和类间可分性(最小类间距离)。优化后的聚类算法相比传统的k均值,有着更大的侧影系数,即更好的聚类结果。

步骤2.2自适应的非线性时间序列预测方法实现对车辆网数据与时间相关规律的预测功能。

时间序列技术可用于进行与时间相关规律的预测。这个序列是指将某种现象某一个统计指标在不同时间上的各个数值,按时间先后顺序排列而形成的序列。时间序列挖掘通过对时间序列数据进行分析,揭示其内在规律(如波动的周期、振幅、趋势的种类等)进而预测未来行为。

传统的自回归时间序列模型依据这样的数学原理:通过对时间序列数据进行分析,得到当前值与历史数据之间的线性关系,如xt=φ1xt-1+φ2xt-2+…+φpxt-p+at,其中p为自回归的阶,φ1,φ2,…,φp为自回归系数,at为均值为零、方差为σ2的正态分布白噪声,即:at~n(0,σ2),xt为当前值,xt-1,xt-2,…,xt-p为历史数据。时间序列算法的主要工作就是采用最小二乘方法确定自回归系数φ1,φ2,…,φp,从而根据历史数据对未来数据进行预测。

传统时间序列算法的3点不足限制了它的应用。首先,它要求时间序列数据是平稳的(均值和方差不随时间的平移而变化),而实际应用的数据往往受长期作用、季节变动和随机变动的共同作用,将这些数据直接用于时间序列预测肯定无法得到理想的模型结果;此外,建立时间序列模型之前需要确定模型的阶,即当前数据与哪些历史数据存在关系,回归阶数的确定对模型结果影响很大,这就要求用户对算法以及数据有很深的了解;更重要的是,传统的自回归时间序列算法得到的是当前数据与历史数据的线性关系,无法满足实际情况受多种非线性因素影响的复杂要求,得到的模型结果不够准确。

针对传统时间序列算法存在的问题,本发明采用如下改进方法:

(1)加入数据自适应平稳化处理

时间序列方法要求数据具有平稳性,而数据的平稳化要求用户对数据以及平稳化技术有很深刻的理解,在本发明的时间序列算法中,用户既可以凭借对时间序列算法的深刻理解自行设置参数对数据进行平稳化,也可以选择自动寻优的机制,由算法内部根据数据的分布自适应进行平稳化操作。

数据平稳化操作包括:

均值平稳化:均值平稳化采用差分的方法消除数据增长或下降的趋势,使得数据在相同间隔内的均值相同;若某序列具有线性的趋势,则可以通过对其进行一次差分而将线性趋势剔除掉,若具有二次趋势,则两次差分后可变换为平稳趋势,依次类推。

方差平稳化:方差平稳化采用box-cox幂变换消除数据的方差随时间变化的趋势,使得相同间隔内的方差相同;box-cox幂变换根据设置的参数取值不同,对数据进行对数或指数变换。

消除季节趋势:算法自动将每一观察值与下一周期的观察值相减,以消除周期趋势。

图3及图4给出了航空乘客数据的案例,横坐标表示时间(年月),纵坐标表示相应时间的乘客数量。在平稳化前(如图3所示),数据具有明显的增长趋势,并且数据的波动越来越大;对数据进行均值平稳化(一阶差分)以及方差平稳化(对数据进行对数变换)之后数据的分布图则如图4所示,图中显示数据已处于平稳状态(在一定时间区间内,数据的均值和标准差基本保持不变)。

(2)模型自适应定阶

自回归阶数的设置决定了当前数据与哪些历史数据存在关系,所以自回归的阶数直接关系到模型结果的优劣。在用户对数据以及算法理解的比较深刻的情况下,用户可以根据自己对数据的理解以及算法提供的当前数据与历史数据的自相关系数和偏相关系数,自行设定回归阶数;否则,可以选用时间序列提供的自动寻优机制,由算法内部根据阶数取值不同时所对应的模型结果采用bic准则在模型结果和阶数之间进行权衡,得到最优的回归阶数,这就避免了由于阶数设置不合理导致模型结果不好的情况。

(3)引入非线性核函数

传统时间序列得到的当前数据与历史数据的线性关系无法满足实际情况受多种非线性复杂因素影响的需要,而支撑向量机、神经网络回归等非线性回归算法是从历史数据中分析变量和分析目标之间的非线性关系,从而对未来情况进行预测的一种技术。有鉴于此,本发明提出了基于传统的支撑向量机、神经网络内核的自回归时间序列方法,结合了时间序列和传统回归算法的优势,既考虑了数据随时间变化的特点,又通过支撑向量机、神经网络内核可以加入更加复杂的因素,从而得到当前数据与历史数据的非线性关系,以便更好的对数据进行预测。

对航空乘客数据分别采用线性核和支撑向量机建立模型,由如图5及图6所示的测试结果可以看出,支撑向量机核函数的模型结果要优于线性核函数的模型结果。

步骤2.3面向海量数据的高性能svm分类预测方法对车辆网数据进行分类预测

和贝叶斯网络等类似,支撑向量机(svm)也是一种非常有效的分类预测技术。但是svm与基于概率测度等统计方法采用经验风险最小化(均方误差最小化)不同的是,它是一种基于结构风险最小化原则的分类及回归挖掘方法。其基本思想是:为了解决分类问题,它试图寻找一个分类超平面,并把找分类超平面的问题转化成一个凸二次规划问题;为了解决非线性可分问题,它引入非线性核函数的理念,将低维空间的非线性可分问题转化成一个高维空间的线性可分问题,简化求解的难度;为了避免异常数据的干扰,它引入结构风险最小化的理念,寻找分类边界上的样本点(支撑向量),仅用支撑向量来构建模型。所有这些构建思想决定了svm即便利用较少的数据样本,也可以得到别的算法更好的预测模型,并且模型具有更好的泛化推广能力。

由于svm是借助二次规划来求解支持向量,而求解二次规划问题将涉及到m阶矩阵的计算(其中m为样本的个数),当样本达到百万级的海量数据时,该矩阵的存储和计算将耗费比其他同类算法更多的机器内存和运算时间,该不足之处限制了svm在海量数据的大样本分类问题上的应用。

为克服svm算法在海量数据建模时内存使用和运算时间上的劣势,本发明从数据压缩、参数自动调优、层次抽样等方面改进了传统svm算法,显著提升了svm算法应用于海量数据的性能,即在不降低分类精度的前提下减少内存使用和运算时间。具体方法为:

(1)基于聚类思想压缩数据。

优化后的svm算法在对大样本数据进行分类时,首先针对属于每个分类的样本集合构建各自独立的、类似于二叉树的层次树,不同的是每个结点的分支数以及父子结点的归属关系分别由分支数目参数和阈值半径参数决定,在每个树中较高层次的结点包含着其下子结点的统计信息,比如子结点的中心,从而实现数据压缩。层次树构建完成后,自根结点开始进行svm训练,生成一个相对不够精准的分类边界,该分类边界对应着一组数量相对较少的支持向量,支持向量又对应着下一层结点,然后再对这些结点进行svm训练,如此重复进行直至叶子层级,最后生成相对精准的分类边界。该思想有别于随机抽样,减少了样本规模却不会影响算法的分类精度。

(2)层次树构建的参数自适应调优。

阈值半径及分支数目是决定层次树的关键参数,而层次树影响着svm训练的样本规模,进而影响算法的内存使用和运算时间。其中阈值半径的选取难度最大也最为关键,它的最佳取值取决于样本数据间的距离分布,在优化过程中,优化后的算法从大样本数据中均匀抽取一定量样本,以使其尽量体现数据的总体特征,然后计算两两样本之间的欧氏距离,将这些距离的一组分位点作为阈值半径,既能保证其取值在合理的取值范围又能保证其不同取值将对应不同规模的层次树,如果某个分位点作为阈值半径构建的层次树,所训练模型的准确率最大或者大于某个期望值,那么该阈值半径的取值就是最优的。该思想克服了构建层次树时参数的选择难题,降低了算法应用的技术门槛方便了用户使用。

(3)压缩数据基础上的累积层次抽样。

基于聚类压缩数据的思想显著削减了svm训练的样本规模,但是层次树的构建也同样引入了内存和运算时间的消耗,虽然这相对于svm算法内部的矩阵运算并不大。为应对百万级以上的海量数据,进一步减小层次树的规模,在以上两种优化思想基础上,优化后的算法对大样本数据进行均匀分层,当前n层样本数据所训练模型不能达到预期的分类准确率时,则在这些样本数据中累积加入第n+1层样本数据再次训练,直到达到期望准确率。该思想进一步降低了svm算法的样本规模,是应对海量数据建模问题的效果明显的解决方案。

优化后的svm算法在不同数据量样本上的检验结果如图7、图8所示。测试数据集为2分类数据、13个维度、且无重复数据,核函数采用rbf核。经对比可见,优化后的svm算法在百万级数据规模上,内存性能提高到近2倍,运算速度性能提高到近10倍,而算法的分类精度都在95%以上,效果十分显著。

步骤3、采用共享内存并行计算技术实现共享内存的并行功能

在每一个代理节点上,实现基于共享内存的并行技术。共享内存(sharedmemorymultiprocessor,smp)指在多处理器的计算机系统中,可以被不同中央处理器(cpu)访问的大容量内存。由于多个cpu需要快速访问存储器,这样就要对存储器进行缓存(cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存并行是指一个多cpu计算机处理一个计算任务,各cpu内核主存共享,缓存和计算能力独立。

本发明以现有的并行计算框架如mpi,openmp等,设计共享内存并行计算框架stpj。在共享内存技术中采用三种负载均衡策略:静态调度、动态调度、有指导的调度。

静态调度:各线程将n步迭代进行平均分配。

动态调度:各线程将循环迭代指定数目的块(chunk)。默认块数为1,但是可以设定块数大于1。将块分配给为此块调用run()方法的线程。当run()方法返回后,线程获取下一个块并执行它,直到所有块被执行完为止。每个线程执行的迭代步数是随着并行循环的进行动态变化的。

有指导的调度:线程把循环迭代分成从大到小的块,每次以1/2的比例分割剩余的块,再按线程数进行均分。线程数越多,分的块数就越多。与动态调度类似,有指导的调度随着循环的执行采取自动分配,比固定调度达到更均衡的加载。

本发明采用stpj框架可以使所有的数据挖掘算法在代理节点内部均可并行实现,这种并行框架使用简单、方便,并且并行效率较高,与跨节点并行计算形成良好互补。

本发明未述及之处适用于现有技术。

需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明包括并不限于具体实施方式中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1