多平台航空电子大数据系统及方法与流程

文档序号:11177306阅读:973来源:国知局
多平台航空电子大数据系统及方法与流程
本发明属于计算机领域,具体涉及一种航空飞行数据系统,尤其涉及一种多平台航空电子大数据系统;此外,本发明还涉及该多平台航空电子大数据系统的实现方法。
背景技术
:航空飞行运行是一项庞大的综合系统。在飞行的全过程中,在各部门各岗位间,都有大量的、种类繁多的数据需要传递,比如机组信息、气象状况、航行信息、航线风险系数评估、舱单信息、起飞数据、特情预案等数据。由于受到技术和管理模式的限制,传统的数据传递方式是通过电话、发放纸质文档、手册等。这些传统的保障方式存在诸多缺点,甚至成为限制民航业继续发展的瓶颈。航空数据对每一次航班的安全起飞和经济效益有着极其重要的影响。而航空数据的特点是多源、复杂、大规模,现有的单一平台的数据系统的应用有限,因此针对这些多源的大规模飞行数据,亟需研发一种多平台航空电子大数据系统。本发明是在现有的分布式框架和数据库平台的基础上搭建而来,以下是现在常用的分布式框架和数据库平台。1.hadoophadoop是一个分布式系统基础架构,由apache基金会开发。用户可以在不了解分布式底层细节的情况下,利用它开发分布式程序。充分利用集群的威力高速运算和存储。简单地说来,hadoop是一个可以更容易开发和运行处理大规模数据的软件平台。该平台使用的是面向对象编程语言java实现的,具有良好的可移植性。hadoop的核心是hdfs和mapreduce。hdfs(hadoopdistributedfilesystem)是一种分布式文件系统,隐藏下层负载均衡,冗余复制等细节,对上层程序提供一个统一的文件系统api接口。hdfs针对海量数据特点做了特别优化,包括:超大文件的访问,读操作比例远超过写操作,pc机极易发生故障造成节点失效等。hdfs把文件分成64mb的块,分布在集群的机器上,使用linux的文件系统存放。同时每块文件至少有3份以上的冗余。中心是一个namenode节点,根据文件索引,找寻文件块。mapreduce是一套从海量数据提取分析元素最后返回结果集的编程模型,大多数分布式运算可以抽象为mapreduce操作。map是把输入分解成中间的键值对,reduce根据键值,把map输出的键值对进行合成整理,最终输出结果。这两个函数由程序员提供给系统,下层设施把map和reduce操作分布在集群上运行,并把结果存储在hdfs上。hadoop具有以下几个优点,使得用户可以轻松地利用它来开发和运行处理海量数据的应用程序。高可靠性:hadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署计算任务。高扩展性:hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可以方便地扩展到数以千计的节点中。因此,在不保证低延时的前提下,hadoop具有相当大的吞吐量,非常适合海量数据的运算。高效性:hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。高容错性:hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。低成本:hadoop可以通过普通机器组成的服务器群来分发以及处理数据,这些服务器群总计可达数千个节点,而且每个节点都是运行在开源操作系统linux上面的,因此硬件成本会大大降低。此外,与一体机、商用数据仓库等相比,hadoop是开源的,软件成本也会大大降低。2.hbasehbase是hadoopdatabase的简称,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,其主要功能是在hadoop的hdfs的基础上用列存储的方式存储海量的结构化数据。hbase中存储的表主要有以下这些特点。大表:一个表可以有数十亿行,上百万列。无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态的增加,同一张表中不同的行可以有截然不同的列。面向列:面向列(族)的存储和权限控制,列(族)独立检索。稀疏:对于空(null)的列,并不占用存储空间,表可以设计的非常稀疏。数据多版本:每个单元中的数据可以有多个版本,默认情况下版本号自动分配,是单元格插入时的时间戳。数据类型单一:hbase中的数据都是字符串,没有类型。hbase适用场景主要有:●存在高并发读写●表结构的列族经常需要调整●存储结构化或半结构化数据●高并发的key-value存储●key随机写入,有序存储●针对每个key保存一个固定大小的集合hbase也有一些缺点和不适用的场景:●由于只能提供行锁,hbase对分布式事务支持不好●对于查询中的join、groupby等操作,hbase的性能很差●查询如果不使用row-key查询,性能会很差,因为此时会进行全表扫描,建立二级索引或多级索引需要同时维护一张索引表●对高并发的随机读支持有限。体系化对抗环境中,实时感知数据源的数据是一个关键性的问题,这些数据源通常来自多种传感器,高效的管理数据源产生的异构的数据成为这个问题的一个难点。本发明针对这些问题,对现有的分布式框架和相关的数据分析方法进行了一定的研究,尝试找出处理和分析多源的大规模飞行数据的有效方法。目前,尚未见应用分布式框架和数据库平台的多平台航空电子大数据系统的相关报道。技术实现要素:本发明要解决的技术问题在于提供一种多平台航空电子大数据系统,该系统处理和分析大规模飞行数据,集成数据采集,数据分类管理,数据存储和数据分析等功能,采集并分类管理多源异构数据,并将这些数据实时存储到“资源云”平台上,“资源云”平台客户端节点从云上实时获取数据,借助云平台来保证数据的实时性。在数据实时性的基础上,系统支持历史数据的关联模型建立,利用实时的数据和关联模型完成实时预测,对飞行员的决策提供一定的指导。具体来说,该系统需要实现以下功能:飞行数据采集、飞行数据实时共享、飞行数据关联分析和实时辅助决策。为此,本发明还提供一种该多平台航空电子大数据系统的实现方法。为解决上述技术问题,本发明提供一种多平台航空电子大数据系统,包括数据采集模块、数据存储模块、数据关联分析模块和数据关联分析应用模块;数据采集模块从数据源1中获取pcap数据包文件,经采集分类之后到数据存储模块中,完成数据存储的过程;数据关联分析模块从数据源2中获取训练数据,完成数据关联模型建立,将模型提供给数据关联分析应用模块使用,完成实时预测,并将结果显示在屏幕上,数据关联分析应用模块利用数据存储模块实现的云存储功能完成实时存储的功能。作为本发明优选的技术方案,所述数据采集模块包括输入文件夹路径单元、输出文件夹路径单元和数据块选择单元;所述输入文件夹路径单元和所述输出文件夹路径单元用于读取用户选择的输入和输出的文件夹路径,所述数据块选择单元用于读取用户选择的数据块类型,所述数据采集模块根据以上单元读取的内容来进行数据采集;所述数据采集模块使用libpcap包从网络抓取的pcap包中获取关键的时间信息字段,包的源ip,目标ip信息和存储信息的数据字段,分别为time字段,sourceip字段,destip字段和data字段,使用destip和sourceip结合模拟场景中的数据发送信息,初步确定出包信息数据块;区分不同的数据块,按照不同的格式解析,得到独立的数据块数据结构,将数据结构以文本的形式写回硬盘,供下一阶段使用。作为本发明优选的技术方案,所述数据存储模块包括读取文件路径单元和演示控制单元;所述读取文件路径单元用于读取用户选择的数据源文件存放路径;所述演示控制单元用于演示数据的存储情况,它周期性地读取存储记录并显示到面板上;所述数据存储模块采用hadoop分布式存储平台及hbase分布式数据库,从多架飞机实时获取数据,然后通过云存储方式再存储到多架飞机上,并实时获取并共享多架飞机的数据。作为本发明优选的技术方案,所述数据关联分析模块包括训练数据路径单元、训练参数选择单元和数据分割方式选择单元;所述训练数据路径单元用于读取用户选择的训练数据存放路径,所述训练参数选择单元用于读取用户选择的各个训练参数值,所述数据分割方式选择单元用于读取用户选择的数据分割方式,所述数据关联分析模块根据上述单元读取的内容来进行模型的建立和训练;所述数据关联分析模块采用svm分类器,对应代码的svm包,通过svm的方法,对已有的数据和分析结果进行分类,其核心模块是数据拆分程序和调用的libsvm分类器包,拆分程序将数据源结果为0的记录拆分成n份,n由用户输入,分别和结果为1的记录组成n个训练数据集,用libsvm训练后输出n个模型,预测时使用n个模型结果进行预测结果进行与/或操作输出预测结果;所述数据关联分析模块中数据关联模型建立通过用户指定输入参数完成。所述svm分类器优选为使用rbf核的非线性svm分类器;所述svm分类器优选为二分割分类器。作为本发明优选的技术方案,所述数据关联分析应用模块包括模型路径选择单元、读取文件路径单元和演示控制单元;所述模型路径选择单元用于读取用户选择的训练模型存放路径,所述读取文件路径单元用于读取用户选择的数据源文件存放路径,所述演示控制单元利用读取的模型对数据进行分析,将预测结果显示到面板上。此外,本发明还提供一种上述系统的实现方法,包括数据采集模块的数据采集实现、数据存储模块的数据存储实现、数据关联分析模块的建立数据关联模型实现和数据关联分析应用模块的实时预测结果显示实现。作为本发明优选的技术方案,所述数据采集模块的数据采集实现包括如下步骤:1)界面程序初始化;2)等待用户操作;3)获取参数、调用处理程序;4)判断文件夹是否还有未读文件,是则进入步骤5),否则结束程序;5)判断文件中是否仍有数据,是则进入步骤5),否则回到步骤4);6)判断该数据块是否为用户需要,是则进入步骤7),否则回到步骤5);7)解析并输出数据,回到步骤5)。作为本发明优选的技术方案,所述数据存储模块的数据存储实现包括如下步骤:1)初始化hbase连接;2)创建表、列簇;3)本机数据导入内存;4)开始演示;5)实时数据上传hbase,同时实时从hbase获取所有节点数据;6)判断是否终止演示,是则结束,否则回到步骤4)。作为本发明优选的技术方案,所述数据关联分析模块的建立数据关联模型实现包括如下步骤:1)读取数据、取出各属性值的上下界;2)再次扫描数据,用上下界缩放数据后调用read_prob函数产生svm_problem;3)svm_problem进行交叉验证,得到训练准确率;4)基于svm_problem调用svm_train函数,生成模型并存储;5)结束。作为本发明优选的技术方案,所述数据关联分析应用模块的实时预测结果显示实现包括如下步骤:1)初始化hbase连接;2)创建表、列簇;3)本机数据导入内存;4)开始演示;5)实时数据上传hbase,同时实时从hbase获取所有节点数据再使用svm算法实时预测结果;6)判断是否终止演示,是则结束,否则回到步骤4)。根据以上提供的技术方案,与现有技术相比,本发明提供的多平台航空电子大数据系统,具有以下有益效果:1、该系统集成数据采集,数据分类管理,数据存储和数据分析等功能,采集并分类管理多源异构数据,并将这些数据实时存储到“资源云”平台上,“资源云”平台客户端节点从云上实时获取数据,借助云平台来保证数据的实时性。在数据实时性的基础上,系统支持历史数据的关联模型建立,利用实时的数据和关联模型完成实时预测,对飞行员的决策提供一定的指导。具体来说,该系统需要实现以下功能:飞行数据采集、飞行数据实时共享、飞行数据关联分析、实时辅助决策。2、本发明将hadoop分布式存储平台及hbase分布式数据库优化后应用到航空电子大数据系统,是本领域的首创,本发明对大规模的航电数据进行集成和分布式存储,能够实时地采集、存储和共享数据,并利用历史数据的分析,对实时数据进行火力打击的预测,从而成功地为飞行员提供有效的决策指导,预测成功率高达94%。3、本发明用机器学习中的分类算法来解决飞行中火力打击的结果预测问题,相比于以前直接用软件模拟飞行过程来得到结果,该方法在保证一定准确率的前提下速度要快好多倍,因此提高了体系化对抗系统的决策效率。由于打击中击中的情况要远远低于击不中,造成训练数据不平衡,影响决策准确度。因此,我们在svm的基础上,创新地使用数据分割的方法,来提高准确度。将决策辅助功能集成到航电系统中,即可以利用存储的数据进行训练分类器,又能用训练好的分类器进行实时的火力打击预测,并根据预测结果为飞行器实时地提供决策建议。3、经试验验证,本发明系统优选使用rbf核的非线性svm分类器准确率最高,而优选使用二分割分类器的f1值最高。4、经试验验证,本发明系统支持静态减少节点以及动态增加节点。附图说明下面结合附图和实施例对本发明进一步说明。图1是本发明系统中数据存储模块的框架结构图。图2是本发明系统中数据关联分析模块中非线性svm的示例图。图3和图4是本发明系统中数据关联分析模块中数据分割的示例图。图5是本发明多平台航空电子大数据系统的总体框架图。图6是本发明多平台航空电子大数据系统的功能结构图。图7是本发明多平台航空电子大数据系统的主程序流程图。图8是本发明系统中数据关联分析应用模块的示例图。图9是本发明系统中数据采集模块逻辑流程图。图10是本发明系统中数据存储模块逻辑流程图。图11是本发明系统中数据关联分析模块逻辑流程图。图12是本发明系统中数据关联分析应用模块逻辑流程图。具体实施方式现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。体系化对抗中决策者使用的参考数据来自不同飞机系统、不同平台上的多传感器、多数据源,实时获取并可靠存储这些数据,将数据及时应用到决策体系中成为作战成功的基础。为模拟这一体系化环境,本发明用多台专用测试设备模拟一个飞行节点群,抓取实际飞行环境中传感器产生的数据作为数据源,用一台交换机连接各专用测试设备构建局域网,模拟体系化对抗环境中的数据通信。决策者可以通过任一专用测试设备实时查看节点群中各设备节点的实时信息,依据这些数据信息完成决策。在这个模拟的假想作战场景中,为保证决策者获取数据的实时性和可靠性,本发明提出基于“资源云”的多平台航电大数据系统。本发明多平台航空电子大数据系统的核心是搭建在假想作战环境中的“资源云”平台,在多台专用测试设备上搭建一个数据共享平台,该数据平台基于已有的开源云软件(hadoop,hbase)搭建,主要完成飞行节点之间信息实时共享,可靠存储,信息处理的功能。平台的数据源是经过数据采集分类之后的数据信息,原始数据经过数据采集模块完成采集分类,之后传输到“资源云”平台。最后,各节点上的数据分析模块从“资源云”平台实时获取所有节点的信息,结合历史数据建立的数据关联模型进行数据分析,将对各节点的数据分析结果呈现给决策者,提供决策指导。本发明多平台航空电子大数据系统中各个模块的技术解决方案如下:1、数据采集与分类方案假想作战环境的数据来自不同的传感器,数据之间具有异构性,直接导致体系作战下航电大数据系统的数据复杂性。经过采集的数据需要通过基于空中云平台的大数据分类技术来从多个角度对平台及数据进行分析,增强数据关联,从而降低面向体系作战的航电大数据系统的数据复杂性。具体实现中,需要针对多模态势空间构建不同的数据采集与预处理模式。针对假想作战环境,本发明采取抓包后逐个按照数据协议解析数据包的方法来采集分类环境中的数据,作为“资源云”平台数据源。实际应用中,常用的系统数据采集方案有两种:(1)抓包抓包程序wireshark获取数据包。wireshark将从网络中捕获到的二进制数据按照不同的协议包结构规范,显示在packetdetails面板中。主要包含物理层的数据帧概况、数据链路层以太网帧头部信息、互联网层ip包头部信息、传输层的数据段头部信息、应用层的信息等。过程采用libpcap库,libpcap是一个网络数据包捕获函数库,功能非常强大,针对网络接口、端口和协议进行数据包截取。(2)爬虫网络数据采集通过网络爬虫或网站公开api等方式从网站上获取数据信息。该方法可以将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。它支持图片、音频、视频等文件或附件的采集,附件与正文可以自动关联。除了网络中包含的内容之外,对于网络流量的采集可以使用dpi或dfi等带宽管理技术进行处理。针对假想作战环境中作战节点之间的通信代价较高,所以本发明舍弃爬虫主动获取数据的方式,优选从实际作战环境中网络交换机处利用wireshark软件抓取体系化对抗平台上的数据包作为源数据。数据采集模块解析从交换机中获取到的数据包,根据包的源ip和目的ip,以及数据包的协议来将数据分为结构化和非结构化的数据。我们根据假想作战环境中的通信协议,来将数据逐个从二进制文件中解析出内容。得到的数据基本分类如下:(1)结构数据:结构化数据即行数据,可存储在关系型数据库里,通过二维表结构来逻辑表达实现的数据。数据将针对不同目标接收目标进行分发,比如无人机、雷达仿真、光电、电子站、三维语音告警、座舱等。采集数据结果将数据分为多个数据块。数据块中包括基本信息,如数据类型、发送源、目标号、块长、更新周期、虚拟链路、最大延迟时间、接收端口等。除基本信息外,不同数据块中的主要内容可进行结构化归纳。(2)非结构化数据在本发明多平台航空电子大数据系统大数据管理平台中,非结构数据主要包括图片、音频、视频、超媒体等形式,比如雷达气象图像、地理分布图像、探测敌机声波图和视频流等等。这些数据没有固定结构,相对于结构化数据而言,非结构化数据不方便用数据库二维逻辑表来表现,但基于分布式云存储平台上的非关系型数据库,可以实现非结构化数据高效、稳定的存储。针对非结构化的数据,我们留出接口来完成这些功能。2、数据存储方案体系化对抗环境中,实时、准确的获取对抗系统中相关信息的实时变化情况是完成对抗的体系化的一个重要因素。每个作战节点会实时生成一些关键的航电信息,包括节点载机数据,目标的信息等,这些信息实时被其他节点获取,并实时加入体系化对抗的决策体系中。为实现这个目标,我们在假想作战环境的节点中搭建“资源云”,采集到每个节点生成的航电信息之后,实时将信息上传到“资源云”上,其他节点实时查询数据变化,利用云平台的高容错,实时性和可靠性来保证所有航电信息的实时获取性和难丢失性。(1)“资源云”平台传统的“资源云”框架分为几种不同类型:第一种将原始数据采集在客户端(client),再由客户端将数据传输至各存储节点进行分布式存储;第二种则将数据采集在节点本地,继而分发至所有存储节点。考虑到相对于现有的大数据管理架构,本发明的特色在于数据源与数据存储目的地相同,即从多架飞机实时获取数据,然后通过云存储方式再存储到多架飞机上,并实时获取并共享多架飞机的数据,故本发明采用第二种框架类型。假想平台总体采用主从(master/slave)结构模型(如图1所示),由一个主节点和若干个从节点组成。主节点作为主服务器,管理文件系统命名空间和客户端对文件的访问操作。从节点作为从服务器,负责数据的存储。系统采用“一次写入、多次读取(write-once-read-many)”模型,该模型降低了并发性控制要求,简化了数据聚合性,支持高吞吐量访问。(1)可靠性“资源云”平台通过文件分割的方式来将大文件切分为固定大小的小文件,并存储分割表,将小文件制作多个副本,分别存储在不同节点上面,在读取文件时通过分割表来逐份读取拼接文件后返回给用户。数据源经过采集和分类之后,写入硬盘临时缓存在本地节点上,由于节点的复杂性,部分节点存储的信息文件较大,超过云平台默认的文件大小,则会产生文件分割过程,一方面通过文件分割节省线路带宽,另一方面可以增加系统容错性。本发明系统的“资源云”通过将一个文件在物理存储上分割成多个块,并通过哈希等算法分别将它们拆分到集群的多个节点上,这种特性可以让分布式存储系统保存足够大文件。相比不分割将文件备份到指定机器上来说,文件分割的过程节省了单点到单点之间通信的带宽,一定程度上使系统的负载更加均衡,另一方面,如果单节点产生故障,无法读取该节点信息,通过文件分割的方式可以通过备份到其他节点的分割来拼接完成恢复工作。(2)容错性“资源云”平台对每个文件进行分割之后,通过一定的哈希算法将数据块冗余备份到其他节点上面,云平台的冗余容错基于hdfs的容错机制,主要有以下几点:master节点将文件分割,记录分割表作为复制的决策,将文件各部分进行标记,记录当前块的分割表,按照分割表内容通过哈希算法冗余备份到对应的其他节点上。访问文件时,当前节点上面没有对应的文件分割,则到最近的一个冗余备份上请求。master节点的备份,通过zookeeper完成,所有节点选举出一个master节点和一个backup-master节点,backup-master节点定时对master节点完成快照,保证backup-master信息不落后master太多。当心跳机制检测到master节点崩溃之后,backup-master取代master节点,并通过zookeeper的选举机制选出另外一个backup-master节点,备份当前master节点内容。(3)“资源云”其他特点定时快照:快照支持在一个特定时间存储一个数据拷贝,快照可以将失效的集群回滚到之前一个正常的时间点上。流程状态:创建数据时,一开始客户端将文件数据缓存在本地的临时文件中。应用程序的写操作被透明地重定向到这个临时本地文件。当本地文件堆积到一个分块大小的时候,客户端才会通知主节点。主节点将文件名插入到文件系统层次中,然后为它分配一个数据块。主节点构造包括数据节点id(可能是多个,副本数据块存放的节点也有)和目标数据块标识的报文,用它回复客户端的请求。客户端收到后将本地的临时文件刷新到指定的数据节点数据块中。因为如果客户端对远程文件系统进行直接写入而没有任何本地的缓存,这就会对网速和网络吞吐量产生很大的影响。当文件关闭时,本地临时文件中未上传的残留数据就会被转送到数据节点。然后客户端就可以通知主节点文件已经关闭。此时,主节点将文件的创建操作添加到到持久化存储中。假如主节点在文件关闭之前死掉,文件就丢掉了。流水式复制:当客户端写数据到文件中时,如上所述,数据首先被写入本地文件中,假设文件的复制因子是3,当本地文件堆积到一块大小的数据,客户端从主节点获得一个数据节点的列表。这个列表也包含存放数据块副本的数据节点。当客户端刷新数据块到第一个数据节点。第一个数据节点开始以4kb为单元接收数据,将每一小块都写到本地库中,同时将每一小块都传送到列表中的第二个数据节点。同理,第二个数据节点将小块数据写入本地库中同时传给第三个数据节点,第三个数据节点直接写到本地库中。一个数据节点在接前一个节点数据的同时,还可以将数据流水式传递给下一个节点,所以,数据是流水式地从一个数据节点传递到下一个。扩展性:大量的应用实践已经证明该分布式平台具有着极大的扩展性,可以轻松扩展到数以百计的节点构成的集群上。3、数据分析方案在体系化对抗决策体系中,历史数据信息是十分宝贵的资源,对历史信息的分析和提炼可以完成许多功能,比如说历史火力打击信息可以用来辅助决策。通过对一组历史飞行过程及火力打击的结果分析,我们可以获取一个飞行状态的分类器模型,利用这个模型可以预测节点火力打击结果。把预测模型引入“资源云”平台上之后,我们可以根据每个节点的火力打击预测结果,完成一些辅助决策功能,提高体系化对抗系统的决策效率。针对已有的飞行状态信息数据集和打击结果,可以近似的把问题看做一个输入是飞机发射导弹时的航电信息和目标的绝对位置信息,输出是击中和没击中目标的二分类分类器模型,分析比较常用的二分类分类器,得出一个结果最优的分类器模型应用到决策系统中。(1)分类器算法由于要解决的是一个二分类问题,标号为0和1。那么分类器就是要找到一个面,将所有样本点分到面的两侧。即,对于任一样本x=(b1,b2,…bm),分类器决策函数f:f(x)=g(f(x))a.线性可分svm线性可分svm分类器决策函数中的f(x)=wtx+b,它本质上是寻找一个能将样本点按标号分到两侧的具有最大化margin的超平面,margin是所有数据点到超平面的几何间隔的最小值。从统计的角度讲,由于正负样本可以看作从两个不同的分布随机抽样得到,若分类边界与两个分布的距离越大,抽样出的样本落在分类边界另一边的概率越小。所以,最大化margin可以保证最坏情况下的泛化误差最小,分类器确信度更高。分类器决策函数中的f(x)=wtx+b,那么它的超平面为wtx+b=0.给定训练集合t,超平面wtx+b=0,定义样本点(xi,yi)到超平面的函数间隔为:几何间隔为:设n为样本点数目,定义t中所有样本点的函数间隔的最小值为:超平面的margin为t中所有样本点的几何间隔的最小值:最大化margin可表示为:变化得:可以看出,w、b等比例缩放对超平面和几何间隔都没有影响,而函数间隔会同比例缩放。所以,令代入上式,而最大化等价于最小化这样就得到了线性可分svm的最优化问题:这是一个凸二次规划问题,应用拉格朗日对偶性,通过求解对偶问题可得到最优解,求解的过程就不赘述了。b.非线性svm对于非线性的分类问题,决策面是一个曲面,曲面通过一定映射,会变成高维空间中的一个超平面,这样就可以用线性可分svm中的方法来解决。例如,两类数据分布为两个圆圈的形状(如图2所示),这样的数据本身是线性不可分的,理想的分界面应该是一个圆而不是一条线(超平面)。若用x1和x1表示这个二维平面的坐标,那么它的决策面可写成这样的形式:a0+a1x1+a2x2+a3x12+a4x22+a5x1x2=0如果我们构造一个五维空间,坐标值分别为z1=x1、z2=x2、z3=x12、z4=x22、z5=x1x2,那么上面的决策面方程在新的空间中可以写作:可以看出,这正是一个超平面的方程。如果我们按这样的方式将数据映射到五维空间,那么在新空间中原来的非线性数据就变成线性可分的了,从而可以使用线性svm算法处理。由于在线性可分svm的求解过程中,需要计算的地方数据向量总是以内积的形式出现,所以,我们定义计算两个向量在映射过后的空间中的内积的函数为核函数,用核函数来简化映射空间中的内积运算。所以,对于非线性情况,处理方法是选择一个核函数,通过它将数据映射到高维空间,变成高维空间中的一个线性可分问题,以此来解决在原始空间中线性不可分的问题,然后再用线性可分svm算法进行处理。svm常用的核函数有四种:线性核(等同于线性可分svm)、多项式核、rbf核、sigmoid核,具体形式如下表1。表1类型函数表达式线性核ut*v多项式核(g*ut*v+coef0)degreerbf核exp(-g*||u-v||2)sigmoid核tanh(g*ut*v+coef0)数据分割由于样本数据集中两类数据比例悬殊,造成不平衡问题。尝试将训练集中比例较高的那一类样本分割成几块,每块与另一类样本分别组成一个子训练集,对每个子训练集进行训练,得到子分类模型。将子分类模型通过一些运算可以组成新的分类器,对数据进行预测。这样处理,可以一定程度上改善数据不平衡问题。例如,将label=0的样本分割成四块,分别与label=1的样本组成四个子训练集,对它们进行训练得到四个子分类模型。每个子分类模型对输入数据进行预测,得到四个output,可以对这四个output进行与运算,得到最终的output,这就相当于一个新的分类器。示意图如图3和图4所示。下面结合附图进一步具体说明本发明的系统架构及流程:(一)程序架构和流程设计如图5所示,本发明多平台航空电子大数据系统整体分为4个模块,数据采集模块,数据存储模块,数据关联分析模块和数据关联分析应用模块。数据采集模块从数据源1中获取pcap数据包文件,经采集分类之后到数据存储模块中,完成数据存储的过程。数据关联分析模块从数据源2中获取训练数据,可以通过用户指定输入参数,完成数据关联模型建立,将模型提供给数据关联分析应用模块使用,完成实时预测,并将结果显示在屏幕上,数据关联分析应用模块利用数据存储模块实现的云存储功能完成实时存储的功能。由于系统是在分布式平台基础上开发的,搭建系统时首先需要在多台设备(开发系统时使用6台)上搭建hadoop和hbase完全分布式环境。每台设备相当于一个飞行节点,其中有一台作为主节点,来进行调度和显示等操作。1.数据采集模块使用libpcap包从网络抓取的pcap包中获取关键的时间信息字段,包的源ip,目标ip信息和存储信息的数据字段,分别为time字段,sourceip字段,destip字段和data字段,使用destip和sourceip结合模拟场景中的数据发送信息,可以初步确定出包信息数据块。区分不同的数据块,按照不同的格式解析,得到独立的数据块数据结构,将数据结构以文本的形式写回硬盘,供下一阶段使用。如图6和图7所示,数据采集模块包括输入文件夹路径单元、输出文件夹路径单元、数据块选择单元。输入文件夹路径单元和输出文件夹路径单元用于读取用户选择的输入和输出的文件夹路径,数据块选择单元用于读取用户选择的数据块类型,数据采集模块根据这些单元读取的内容来进行数据采集。如图9所示,数据采集模块逻辑流程包括如下步骤:1)界面程序初始化;2)等待用户操作;3)获取参数、调用处理程序;4)判断文件夹是否还有未读文件,是则进入步骤5),否则结束程序;5)判断文件中是否仍有数据,是则进入步骤5),否则回到步骤4);6)判断该数据块是否为用户需要,是则进入步骤7),否则回到步骤5);7)解析并输出数据,回到步骤5)。2.数据存储模块(1)分布式存储平台为完成数据可靠性存储过程,参考技术方案中的设计,借助已有的分布式云平台,基于hdfs实现数据存储功能。在六台专用测试设备上部署hdfs的服务端,待所有节点模拟飞行员就位(设备开机)后,在任一节点启动hdfs的start-all.sh命令,六台测试设备组建成统一的数据共享平台,分别监听相应功能的端口。数据存储或查询请求达到时,使用对应端口传输数据。平台的数据可靠性和容错性借助hdfs的冗余备份功能完成。(2)分布式数据库在已有的hdfs稳定存储的基础上,项目为规范化管理所有数据,基于hbase实现了一个分布式数据库,使用hadoop的hdfs来完成可靠存储,使用hadoop的mapreduce框架来加速系统数据查询操作。hbase的表格设计如下:实际存储时,每个数据包对应一个rowkey,每个rowkey只包含一个数据块的信息,hbase利用列存的方式保证系统数据的可靠性。(3)运行流程该模块运行过程包括数据存储和数据显示两个步骤。数据存储:隔40ms吐出一次数据,将数据存储到hbase中,因样本数据量较小,读取完成之后从第一个数据开始再次吐出。数据显示:另开线程完成文件的读取过程,每隔10ms从hbase环境中实时查询从上次时间戳查询到现在时间戳时间内所有的记录,从记录中读取最后一条记录,实时显示在屏幕上。如图6和图7所示,数据存储模块包括读取文件路径单元和演示控制单元,用于数据存储演示。读取文件路径单元用于读取用户选择的数据源文件存放路径,演示控制单元用于演示数据的存储情况,它周期性地读取存储记录并显示到面板上。如图10所示,数据存储模块逻辑流程包括如下步骤:1)初始化hbase连接;2)创建表、列簇;3)本机数据导入内存;4)开始演示;5)实时数据上传hbase,同时实时从hbase获取所有节点数据;6)判断是否终止演示,是则结束,否则回到步骤4)。3.数据关联分析模块这一部分主要使用的svm分类器,对应代码的svm包,通过svm的方法,对已有的数据和分析结果进行分类,其核心模块是数据拆分程序和调用的libsvm分类器包,拆分程序将数据源结果为0的记录拆分成n份(n由用户输入),分别和结果为1的记录组成n个训练数据集,用libsvm训练后输出n个模型,预测时使用n个模型结果进行预测结果进行与/或操作输出预测结果。运行过程主要包括以下三个步骤。数据归一化:扫描数据集,取出上下界,完成数据的归一化操作,保证每个变量对结果的作用平衡。数据分割:因为数据的特殊性,结果为0的记录数量远多于结果为1,所以本发明采取技术方案中的划分策略,将结果为1的数据划分成n份,分别与0组合之后形成n个数据源,这一部分在read_prob函数中实现。数据训练:调用libsvm软件包中的各个函数(包括svm_scale、svm_train等),对各svm_problem训练,生成svm_model并dump(转存)到硬盘上。如图6和图7所示,数据关联分析模块包括训练数据路径单元、训练参数选择单元、数据分割方式选择单元,用于建立模型、进行模型训练。训练数据路径单元用于读取用户选择的训练数据存放路径,训练参数选择单元用于读取用户选择的各个训练参数值,数据分割方式选择单元用于读取用户选择的数据分割方式,数据关联分析模块根据这些单元读取的内容来进行模型的建立和训练。如图11所示,数据关联分析模块逻辑流程包括如下步骤:1)读取数据、取出各属性值的上下界,包括经度、纬度、高度、横滚角、直航角、俯仰角和速度7个属性;2)再次扫描数据,用上下界scale数据(缩放数据,以提高训练和预测时数据的处理速度)后调用read_prob函数产生svm_problem;3)svm_problem进行crossvalidation(交叉验证),得到训练准确率;4)基于svm_problem调用svm_train函数,生成模型并存储;5)结束。4.数据关联分析应用模块应用模块的整体设计原则是利用数据存储模块完成存储,利用数据关联分析模块输出的最优模型作为输入模型,对任一数据实时预测,如图8所示。其中,多分模型的数据预测遵循如下规则:2分:或模型:n1|n2与模型:n1&n24分:先与后或:(n1&n2)|(n3&n4)先或后与:(n1|n2)&(n3|n4)8分:先与后或:(n1&n2&n3&n4)|(n5&n6&n7&n8)先或后与:(n1|n2|n3|n4)&(n5|n6|n7|n8)运行过程主要包括以下三个步骤。初始化:初始化hbase的连接,完成表的创建,列簇的创建等操作,从硬盘读取需要存储的文件内容。数据产生:每隔40ms吐出一次数据,将数据存储到hbase中,因样本数据量较小,读取完成之后从第一个数据开始再次吐出。数据显示:另开线程完成文件的读取过程,每隔10ms从hbase环境中实时查询从上次时间戳查询到现在时间戳时间内所有的记录,从记录中读取最后一条记录,用这个数据调用svm完成实时预测,并将结果显示在屏幕上。如图6和图7所示,数据关联分析应用模块包括模型路径选择单元、读取文件路径单元、演示控制单元,用于数据分析演示。模型路径选择单元用于读取用户选择的训练模型存放路径,读取文件路径单元用于读取用户选择的数据源文件存放路径,演示控制单元利用读取的模型对数据进行分析,将预测结果显示到面板上。如图12所示,数据关联分析应用模块逻辑流程包括如下步骤:1)初始化hbase连接;2)创建表、列簇;3)本机数据导入内存;4)开始演示;5)实时数据上传hbase,同时实时从hbase获取所有节点数据再使用svm算法实时预测结果;6)判断是否终止演示,是则结束,否则回到步骤4)。(二)接口设计1.数据采集模块数据采集是多平台航电大数据系统的“资源云”平台的数据基础,为软件提供一定的数据分析数据源。数据源要求是从实际运行环境中交换机处用wireshark软件抓包获取的数据,数据格式要求是pcap数据,包的目标ip和源ip满足如下要求:表2数据块名称目的ip/源ip组网指令224.224.0.110演示场景信息224.224.0.107/224.224.0.108综合目标数据块224.224.0.89直升机载机数据块224.224.0.140演示控制信息各数据包中data字段数据块满足协议《xx型演示系统数据接口协议》。2.数据存储模块数据存储模块是多平台航电大数据系统的核心,由此模块完成系统数据存储功能。此模块接受来自“数据采集”模块的数据输出,输入数据格式为完整的txt文本文件,每一行为一个解析后的数据包内容,字段之间用逗号分隔,每个数据包字段信息如下:直升机载机数据块:包时间戳,数据块id,数据块时间,经度,纬度,高度,俯仰角,横滚角,真航角,攻角,地速,北向速度,东向速度,天速综合目标数据块:包数据戳,数据块id,数据块时间,目标个数,目标1属性,目标1经度,目标1纬度,目标1高度,目标1方位,目标1俯仰角,目标1北向速度,目标1东向速度,目标1天向速度,目标2属性,……,目标20天向速度3.数据关联分析模块数据关联分析模块的主要功能是对历史数据的分析建立数据模型,此模块输入一组训练数据,通过svm分类器和划分分类策略完成数据建模过程。训练数据要求为stk模拟软件收集到的数据,其格式为7个输入变量格式和一个0/1的结果数据,所有字段之间用tab制表符(“\t”)分隔,字段信息如下:经度纬度高度参数4参数5参数6参数704.数据关联分析应用模块此模块以stk模拟软件的输出文件作为预测数据源,以“数据关联分析部分”输出模型作为输入模型,基于数据存储模块进行实时的结果预测,实时显示在界面上。该部分输入数据格式(即stk模拟软件输出文件)字段信息如下:经度纬度高度参数4参数5参数6参数7(三)全局数据结构设计1.物理结构软件实现中主要使用的数据结构是对应于数据协议中的一些数据结构,定义数据结构存储从二进制文件中解析出来的数据,实现的数据结构有下面几个:frameheader//存储每个包的数据头信息helicopt_carrier_parm//存储载机数据块字段信息singletargetparameter//存储单个目标所有信息interrgrated_target_parm//存储集成目标数据块字段信息,内部可能包含多个singletargetparameterdemo_scene_info//演示场景信息数据块demo_ctrl_info//演示控制信息数据块build_net_cmd//组网指令数据块record//每个数据块到系统内之后均被识别成为行数据,记录成一个record,用长度和type字段来区别类别。2.表结构根据已有的数据分类,结合hbase的按列存储的特点,我们设计出如下的表结构由多个列簇(columnfamily)构成,每个列簇由多个属性组成,每个属性对应于数据块中的一个字段。表中的列簇有如下几个:cf_helicoptcarrierparm//直升机载机数据块列簇cf_integeratedtargetparm//基础目标数据块列簇cf_stk//stk数据对应的列簇cf_emptystring//存储非结构化的包列簇cf_unrecognised//存储未识别的数据块对应的列簇各列簇中包含的列为各块字段信息,cf_emptystring中包含文本形式存储的包信息,如”87a34b2345f86544e”等,cf_unrecognised只包含类型信息。表格中的行键信息使用自定义的格式,格式为“row”+系统时间+helicopterid,例如行键为“row147926317632301”,表示系统时间(从1970年1月1日0时起的毫秒数)为1479263176323时,编号为01的节点存储到云平台中的数据。3.类结构实现中涉及到的类结构主要有记录行信息的record类,调用底层hbase的hbaseengine类和调用svm分类器的svmengine类,各自在类的成员变量中完成各自调用过程。4.常量实现设计中涉及到的常量主要是字段名称信息,数量较大,在此不详细列出。以下通过具体实验来验证本发明的效果:1.分类器算法评测实验(1)数据集用作实验的原始飞行数据样本共4497432个,其中击中(label=1)的有316768个,未击中(label=0)的有4180664个。将原始数据按照50%、25%、25%的比例均匀划分为trainset、validationset、testset三个集合。其中,trainset用来训练分类器;validationset用来测试不同分类器的性能,确定分类模型的网络结构或者控制模型复杂程度的参数;testset用来检验最终选择的最优分类模型的性能。(2)实验结果对不同分类器算法进行测试实验,评估实验结果,选取最佳的分类器模型,用testset进行验证。a.线性可分svm用liblinear实现线性可分svm,进行测试,结果如下表3:表3accuracyprecisionrecallf192.9669%000由于数据集中label=1的数目远远低于label=0的实例数目(比例约为1:13),因此线性svm会全部预测0,但是显然这样是毫无意义的。b.非线性svm用libsvm实现不同类型的非线性svm,进行测试,结果如下表4:表4核函数accuracyprecisionrecallf1线性核92.9669%000多项式核92.9669%000rbf核94.3549%0.5990.5960.597sigmod核85.9684%000可以看出选用rbf核函数的结果最好,准确率达到了94.4%,1的预测率也超过了50%。c.数据分割子训练集用前面提到的libsvm的rbf核类型进行训练,因为它的效果最好。i.二分割将label=0的训练数据随机分割成两块,与label为1的数据组成两个子训练集,训练得到两个model,分别对validationset进行预测,得到两个output,按与和或两种关系处理output得到最终分类结果。测试结果如下表5:表5accuracyprecisionrecallf1与94.1015%0.5560.8060.658或94.0866%0.5540.8110.659ii.四分割将label=0的训练数据随机分割成四块,与label为1的数据组成四个子训练集,训练得到四个model,分别对validationset进行预测,得到四个output,按全与、全或、先与后或、先或后与四种关系处理output得到最终分类结果。测试结果如下表6:表6iii.八分割将label=0的训练数据随机分割成八块,与label为1的数据组成八个子训练集,训练得到八个model,分别对validationset进行预测,得到八个output,按全与、全或、先与后或、先或后与四种关系处理output得到最终分类结果。测试结果如下表7:表7accuracyprecisionrecallf1全与91.5268%0.4530.9840.620全或91.2967%0.4460.9870.615先与后或91.4762%0.4510.9850.619先或后与91.3750%0.4490.9860.617iv.三分之二分割将label=0的训练数据随机分割成三块,每两块与label为1的数据组成三个子训练集,训练得到三个model,分别对validationset进行预测,得到三个output,按与和或两种关系处理output得到最终分类结果。测试结果如下表8:表8accuracyprecisionrecallf1与94.3033%0.5750.7290.643或94.2959%0.5740.7340.644d.验证实验根据以上测试,可以看出,单纯使用rbf核的非线性svm分类器准确率最高,而二分割分类器的f1值最高。用testset对这两种最优分类模型进行验证实验,结果如下表9:表9验证得到,这两种分类器性能与前面的测试结果基本一致,确实最优。2.多平台航空电子大数据系统测试a.数据采集模块测试运行软件系统,进入数据采集模块,设置好参数后开始采集。检查输出的数据块文件,均正确,证明采集功能正常。设置不同的blockselection参数,检查输出的数据大小,均不同,证明采集模块能对各种不同的单数据块进行采集。b.数据存储模块测试运行软件系统,进入数据采集模块,然后开始演示。观察dashboard面板上的数据,随着程序运行,面板能实时显示集群中各节点的状态信息,且可以看出飞行数据正被存储,证明该模块能够实时存储各个节点的数据。c.数据关联分析模块测试运行软件系统,进入数据关联分析模块,分别采用不同的核函数选择参数和分割参数,对输入数据集进行训练,均能成功地得到分类模型,证明该模块能够用不同方法进行数据分析。d.数据关联分析应用模块测试运行软件系统,进入数据关联分析应用模块,选取参数,然后开始演示。界面能实时显示所有节点的飞行数据和预测火力打击结果,证明该模块能够对飞行数据进行实时存储和预测。e.系统节点静态减少测试按照相应的方法,将系统节点由6个静态减少到4个,检查集群中hadoop和hbase的节点数,均变成了4,说明系统支持静态减少节点。f.系统节点动态增加测试按照相应的方法,将系统节点由前一测试中的4个动态增加到6个,并在新增加的节点上运行系统软件。检查系统数据存储功能界面上节点信息的变化,由原来的4成功变成了6,说明系统支持动态增加节点。以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1