张宏 吕悦晶
(1.内蒙古大学,呼和浩特 010070;2.内蒙古自治区城市交通数据科学及应用工程技术研究中心,呼和浩特 010070;3.武汉科技大学,武汉 430081)
主题词:大数据 数据挖掘 主成分分析法 关联算法
2019 年1 月24 日,华为发布了全球首款5G 基站核心芯片,提出“自动驾驶网络”的目标,并寻求SoftCOMAI 解决方案[1]。车载自组织网络(Vehicular Ad-hoc Network,VANET)是自动驾驶技术的基础,数据、信息的互联互通与共享极大地提升了网络效率、运营维护效率和能源效率[2]。随着VANET 研究领域的技术进步,大量应用和服务已经出现[3],各类应用产生的海量数据在VANET运行过程中也会增加网络异常的风险[4-6]。因此,评估和检测VANET,及时找到网络异常点,全方位、全过程开展VANET运行监控大数据分析并找出数据间的相应关系,对网络可靠性和稳定性意义重大。
国内外文献中,从大数据分析角度研究网络异常检测的常规方法有时间序列分析法、遗传规划算法、支持向量机、马尔科夫模型等[7-10]:时间序列分析在数据量不大的情况下有较好的评估和预测结果,但数据量变大则无法快速预测;仅使用遗传规划算法,海量数据会导致网络收敛速度变慢,训练无法掌握;支持向量机适用于小样本、多维数据问题;马尔科夫模型难以应用于远距离VANET交通信息服务。VANET实际应用情况复杂,数据量庞大,数据标注受限,处理结果不精确,所以目前主流的方法是无需监督的学习方法[11-16]。大数据分析技术对海量、多源的复杂数据进行分析,为网络系统异常检测提供了新的思路和解决方法。
VANET运行的基础是子网设备能正常调度监控系统,各系统提供了海量的异构多源数据。为了提高系统运行的可靠性,在进行节点和链路异常检测时,所需的数据包括数据采集设备的历史运行数据、状态信息、停运情况及预测时刻系统运行的各种信号与数据。
异常检测数据挖掘算法如图1所示,经数据采集和预处理,在确定关键指标和主要影响因素后,采用有监督的机器学习算法输入数据、调整参数并输出异常数据,进而判断出数据异常产生的时刻,通过网络异常警告为交通参与者提供帮助。
图1 异常检测数据挖掘算法
关联规则数据挖掘方法适用于众多异构多源数据,无需较多模型参数即可降低维度,大幅提高预测速度。
Apriori 算法关联规则中,设T为样本车辆“事务”,其属性记为“项”,每个子集事务都有一个项集,事务集合D表示n个事务的待挖掘数据库,|D|表示事务集合的数量。一般地,设X⊆T为输入参数集合,Y⊆T为输出参数集合,X∩Y=∅。对于项集X,A(X⊆T)为集合数量,定义支持度S为:
用X→Y表示若X则Y的关联规则R,既包含X又包含Y的项集用A(X∪Y)表示,支持度S(A)为项集A(X∪Y)出现在待挖掘数据库D中的百分比,则:
式中,P(X⋃Y)为既包含X又包含Y的比例。
若支持度S(A)大于设置的最小阈值α,则A称为频繁项集,支持度最小阈值由用户依据需求确定。
待挖掘数据库D中,置信度C为既包含X项集,又包含Y项集的百分比:
最小置信度阈值β表示项集X和Y关联规则的可信程度,由用户依据需求确定,基于Apriori 关联规则挖掘算法流程如图2所示。
图2 Apriori关联规则挖掘算法流程
关联规则支持度≥α且置信度≥β的规则称为强规则。Apriori算法流程中最关键的步骤是强规则挖掘,即从事务数据库中挖掘关联规则的频繁项集。
在统计学中,一般采用皮尔森相关系数RXY衡量随机变量间的线性相关性:
式中,c(X,Y)为X和Y的协方差;v[X]、v[Y]分别为X、Y的方差。
相关系数矩阵R为:
相关性系数的取值范围为[-1,1],正值代表正相关,负值代表负相关,其数值越接近-1 或1,表示二者之间的相关性越强。
依据各指标向量的相关系数矩阵R,求得特征值λ1≥λ2≥…≥λm(m≤q)及特征向量μ1、μ2、…、μm:
式中,E为单位矩阵。
因为评估指标的量纲不同,无法直接进行加权和比较,所以需将评估指标进行标准化处理:
利用主成分分析法的基本思想,计算得到第i个指标的方差贡献率及累计方差贡献率分别为:
根据实际情况确定累计方差贡献率的最小值,累计方差贡献率大于最小值的成分选为主成分,包含了原始指标项集的绝大多数信息。运行状态评估中,各指标贡献率不同,计算第i个主成分与原第j个评估指标之间的相关系数Rij,对于p个主成分,选取q个(q≤p)相关系数绝对值中最大值对应的指标作为异常状态评估指标。
根据自组织神经网络无监督分类特性[17],将序列X={X1,X2,…,Xm}作为神经网络的输入参数集合,序列Y={Y1,Y2,…,Yn}作为输出参数集合,对每一个序列输入参数Xt训练其属于输出参数Yj的公式为:
式中,d为欧式距离;Yi(t)为时间点t时最接近Xt的节点,代表了对时间序列Xt的量化。
经过反复修正与循环,使Xt与Yj的距离最小:
式中,γ(t)∈[0,1]为学习速率。
若Xt为单一变量的时间序列,经过自组织神经网络训练后,在线性空间中对Xt量化,Xt将转换为离散点时间序列Yi=∈{Y1,Y2,…Yn} 。
预测的基础是历史大数据,将3.1 节得到的关键影响因素输入人工神经网络模型,将3.2 节主成分分析获得的关键评估指标按用户需求选取t时间尺度,输出(t+T)时刻的评估指标值,反复训练人工神经网络模型,得到预测模型。将关键影响因素实时数据输入人工神经网络预测模型,即可预测未来一段时间内的评估指标。时间尺度级别分为年、月、日、时、分,进行相应时限类指标计算后,可用于不同场合的预测。选择时间尺度小的单位可评估和预测网络系统中车辆节点、车对车(Vehicle-to-Vehicle,V2V)连边的不规则变动和随机变动;选择时间尺度大的单位可评估和预测整个预测期内网络系统呈现出的总体规律和周期性变动倾向,用于调度、检修等决策控制和网络规划。
根据交通工程理论,道路交通事故危险源从人、车、路、环境角度划分为4类,如图3所示。
图3 道路交通事故危险源分类
为防止交通事故发生,需安装的设备包括数据信息采集设备、智能车载终端和信息化系统平台。本文在内蒙古地区安装了96 台(车辆编号为V1~V96)车载数据采集终端,上传到中国工况信息化系统平台,平台已经运行2年,数据采集频率为0.2 Hz[18]。相对速度F2、相对距离F3由内置在智能车辆终端的GPS设备获得数据;车辆故障信息F1由车载单元通过数据采集设备传输至信息化系统平台;驾驶员驾龄E1、性别E2、年龄E3在征集样本车辆时获得;驾驶员疲劳情况E4由车内摄像头获得;环境因素N可由气象部门获得;由于道路因素L不可控,故在此算例中不考虑道路因素。去除无效数据后,用主成分分析法降维,每个指标作为一个变量,基于收集的历史大数据可获得每个指标的分布情况,用式(7)将各变量进行正态分布标准化处理,并计算方差贡献率和累计方差贡献率,根据式(4)、式(5)计算14个指标变量的相关系数矩阵R,用式(6)求其特征值λi,用式(8)、式(9)计算各指标的贡献率,结果如表1所示。
从表1 可以看出,前3 个主成分方差累计贡献率达到了96.65%,说明这3个主成分可以代表其他参数变量的信息,再从主成分中选择相关系数最高的评估指标,预测未来事故发生的可能性。最终,确定的3个关键指标为:相对速度F2、相对距离F3、疲劳驾驶情况E4。
表1 各指标变量的贡献率
以常见的多辆车追尾交通事故为例,假设V1~V6为样本车队车辆,Vn为目标车辆,阻止交通事故发生的原则是(t+T)时刻不能再增加车辆数,即在t时刻采取目标车辆变速或变道等阻断措施使得前方样本车队车辆不与目标车辆Vn构成链,如图4所示。
图4 公路交通中各时刻车辆行驶状态网络
根据4.1 节确定的关键指标,整理数据库中指标异常的历史数据,每个异常历史数据作为一个事务T,每个事务项集包含评估指标和影响因素2类,即关键指标集A和影响因素集B,基于图2 所示算法流程挖掘出频繁项集,设置支持度阈值为35%,置信度阈值为85%,从生成的关联规则中寻找强规则,得到主要影响因素有:车辆运行技术状况、天气、运行时间(白天、夜晚)、驾驶员驾驶时间、驾驶员决策。
设置时间尺度为小时级,将主要影响因素输入神经网络模型,输出关键评估指标,留取部分样本作为后续验证样本,其余样本都用于神经网络模型训练,得到VANET 运行异常人工神经网络预测模型。选取12 个样本,其中出租车3辆、私家车5辆、公务车4辆,采集了48种参数,包括车辆参数、运行参数、环境条件、道路条件等。不限制行驶道路和行驶时间,作为12 种运行条件进行仿真,将实际情况与人工神经网络模型、本文方法进行对比,结果如图5~图7 所示。其中概率值为“0”表示正常,“1”表示异常。
图5 不同运行条件下超速概率
图6 不同运行条件下疲劳驾驶概率
图7 不同运行条件下相对距离低于安全距离的概率
从图5可知,采用本文方法的预测精度明显高于不经过关联规则挖掘的方法,可以有效预测VANET网络运行异常概率。从图6可知,本文方法预测精度较人工神经网络模型高。另外,本文预测方法模型训练时间短,模型演变快,便于根据运行信息数据动态变化而快速调整模型,提高了模型的适应性。同时,预测相对速度超速概率和疲劳驾驶概率还有助于交警判断事故责任。由图7可知,关联规则挖掘算法比人工神经网络预测模型预测精度高。
时间尺度选为月,基于历史数据,可获取网络异常状态总体规律。将2018年11月~12月异常数据作为样本,选取其中2/3 异常历史数据进行样本训练,1/3 数据作为验证样本,通过3.3节中的自组织神经网络算法计算概率,将主要影响因素作为输入项集A,关键评估指标作为输出项集B。为评估不同道路(高速公路、郊区公路、城市街道)情境下的结果,获得更稳健的模型,采用交叉验证方案验证训练模型。将样本数据集分割成10个子集,然后对第i(i=1,2,3,…,10)个子集进行训练,其余子集作为验证集。不同情境下进行超速、疲劳驾驶、相对距离低于安全距离检测的准确性仿真结果表明,经关联规则挖掘的算法在高速公路、郊区公路和城市街道的精度分别为89.5%、91.9%和92.4%,可获得较高精度。
想获得更高的精度,需要大量的、多样性的训练数据以覆盖验证集中的所有情况。例如在高速公路场景下,随着训练数据量由数据集的10%增加到20%和30%,精度从82.3%提高到86.4%和89.5%,继续增加训练数据量,准确性在89.5%左右波动。需要指出的是,不同的训练数据子集对模型性能会产生不同的影响,即敏感性不同。平台运行2年中,呼和浩特市3月和11月左右多次出现大风天气,设备由于风速增大受到了影响,使用本方法引起了异常误报的情况,如何排除外界干扰引起的异常还需要进一步研究。
本文研究了VANET多源异构大数据运行状态异常检测方法,在VANET运行状态评估中,汽车运行参数数据量大,本文提出的方法对数据进行了筛选、降维和标准化处理,采用主成分分析法降低了计算工作量,加快了计算速度,将并行关联规则数据挖掘与人工神经网络预测技术相结合,提高了预测的精度。异常状态检测时,设备因受到环境影响造成的异常,使用本文方法可能会出现误报异常的情况,下一步需对算法进行相应改进,尽量消除外因环境异常带来的影响。