首页> 中国专利> 一种基于weka接口的分布式机器学习方法

一种基于weka接口的分布式机器学习方法

摘要

本发明公开了一种基于weka接口的分布式机器学习方法及其实现装置,属于互联网技术领域。所述方法包括数据预处理、特征提取和weka格式文件的本地训练,最后云计算平台进行线上海量数据分布式测试,生成最终检测结果。所述的实现装置包括解析模块、训练模块和测试模块。所述的解析模块包括数据预处理子模块和特征提取子模块。本发明采用机器学习分布式处理,缩短了整个机器学习过程的时间;扩展了weka的应用范围,实现了从单机模式到分布式模式的转变;本发明将机器学习过程和扩展到分布式模式的weka巧妙结合,达到良好的机器学习的效果。

著录项

  • 公开/公告号CN105677615A

    专利类型发明专利

  • 公开/公告日2016-06-15

    原文格式PDF

  • 申请/专利号CN201610004032.8

  • 发明设计人 崔宝江;石佩林;张晓玮;田进山;

    申请日2016-01-04

  • 分类号G06F15/18(20060101);

  • 代理机构11121 北京永创新实专利事务所;

  • 代理人姜荣丽

  • 地址 100876 北京市海淀区西土城路10号

  • 入库时间 2023-12-18 15:32:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-20

    未缴年费专利权终止 IPC(主分类):G06F15/18 授权公告日:20181123 终止日期:20190104 申请日:20160104

    专利权的终止

  • 2018-11-23

    授权

    授权

  • 2016-07-13

    实质审查的生效 IPC(主分类):G06F15/18 申请日:20160104

    实质审查的生效

  • 2016-06-15

    公开

    公开

说明书

技术领域

本发明属于互联网技术领域,具体涉及一种基于weka接口的分布式机器学习的方法。

背景技术

随着信息技术和互联网的发展,各种信息呈现爆炸性增长,且包含丰富的知识。从海量数据信息中挖掘得到有用的知识仍然是一个挑战性的课题。近几十年来,机器学习和数据挖掘技术,作为从海量数据信息中挖掘有用信息的关键技术已经引起了广泛的兴趣和研究。但是由于数据规模的增长,以往的很多研究工作并不能有效地处理大规模数据,海量的数据造成了在机器学习和数据挖掘过程的时间相当长,又由于weka是基于JAVA环境下开源的机器学习(machinelearning)以及数据挖掘(dataminining)软件,集合了大部分机器学习的算法,如分类、回归、聚类、关联规则等。大数据的爆炸式增长考验着weka这一分析工具的处理能力。Hadoop框架等新兴技术则全面展示了捕获、管理和分析大数据的全新方法。大数据挑战与新技术的结合带来了标志性的转变,从而推动企业重新审视他们的IT基础设施和分析能力。

Hadoop框架使用一个简单的编程模型,以支持在计算机集群上对大数据集进行分布式处理。其完整的技术堆栈包含了通用实用程序、一个分布式文件系统、分析和数据存储平台以及一个用于管理分布式处理、并行计算、工作流程与配置管理的应用层。除了提供高可用性外,Hadoop框架还能比传统方法更为经济高效地处理大型的、复杂的或非结构化的数据集,可带来出色的可扩展性与速度。MapReduce是Hadoop框架中的软件编程框架,能够简化大型数据集的处理工作,并为编程人员在计算机集群中定义和协调复杂的处理任务提供了一种通用方法。MapReduce应用程序通过安排任务、监控活动和重新执行失败的任务来协调集群节点的处理任务。输入和输出信息均存储在Hadoop分布式文件系统(HadoopDistributedFileSystem,简称HDFS)中。Hadoop分布式文件系统通常在相同的节点上处理和存储数据,从而能够更高效地在数据驻留的节点上安排任务,并在节点间实现更高的聚合带宽。

面对海量数据,缩短机器学习和数据挖掘的训练和测试的时间,尽快输出结果成为如今的热点问题。

发明内容

目前的运用weka进行机器学习还处于小吞吐量的阶段,面对TB级别的海量数据表现出数据吞吐量不够,运行时间长等缺陷,基于机器学习的数据分析已经进入大数据时代,所以本发明针对以上情况设计了一种基于weka接口的分布式机器学习方法。

一种基于weka接口的分布式机器学习方法,包括如下步骤:

第一步,数据预处理:web日志文件被切分成n个小文件,提取出统一资源标识符,对统一资源标识符进行包括静态文件过滤、大写转小写,将连续的斜线”/”转换为一个斜线以及解码操作。

第二步,特征提取。

对步骤一中预处理后的uri采取分割取字段、根据uri的组成类型、是否含特殊字符、长度、关键字出现个数和一定规则的权值计算得出所要提取的21个特征,以向量的形式输出特征向量;并对特征向量进行量化和合并处理,生成结果文件。

第三步,weka格式文件的本地训练。

本地训练时调用weka接口,运用weka接口里面已封装好的随机森林算法,生成模型文件RandomForest.model,上传到云计算平台。

第四步,云计算平台进行线上海量数据分布式测试,生成最终检测结果。

本发明的优点在于:

(1)采用机器学习分布式处理,缩短了整个机器学习过程的时间;

(2)本发明扩展了weka的应用范围,实现了从单机模式到分布式模式的转变;

(3)本发明将机器学习过程和扩展到分布式模式的weka巧妙结合,达到良好的机器学习的效果。

附图说明

图1示出了本发明提供的分布式机器学习方法的架构概略图;

图2示出了本发明提供的分布式机器学习方法的实现装置的组成示意图;

图3示出了一个基于mapreduce框架的分布式并行处理的流程图;

图4示出了线上测试及模型文件利用图;

图5示出了本发明的基于weka接口的分布式机器学习方法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明的实施例进行详细展示和说明。本发明的实施例及其说明只用于解释本发明,具体的专利保护范围应当由所附的权利要求书来定义。

本发明的实施例是基于web攻击的分布式机器学习和异常检测,在web日志中进行机器学习,采用随机森林算法,生成检测模型文件,然后在单日产生的TB级海量数据中检测异常访问数据。

本发明提供一种基于weka接口的分布式机器学习方法,如图5所示流程,对于web日志文件的数据预处理、特征提取、结果文件生成和线上测试都是在云计算平台上进行的,本地训练和模型文件的生成是在本地进行的,待测试的web日志文件与模型文件在云计算平台进行检测,具体包括如下步骤:

步骤一:数据预处理;

Web日志文件是在线上服务器中产生并直接存储到云计算平台,所述数据预处理基于mapreduce框架并行处理,数据预处理过程具体为:

(1)如图3所示,web日志文件在input阶段(也称输入阶段)被切分成n个小文件,用Split0,Split1,Split2,……,Split(n-1)表示,对于每一个小文件Spliti(i=0,1,2,…,n-1),Mappers阶段会启动一个Map()来处理。所述小文件Spliti(i=0,1,2,…,n-1)的切分大小以及每个Map()处理文件的数量可以根据实际情况来调整。

(2)在基于web日志挖掘中正常的web日志文件不纯,里面混杂有许多攻击特征明显的数据,所以采用关键字过滤以及规则过滤方法剔除脏数据。从Web日志文件中提取出统一资源标识符(uri),对uri中的.jpg,.png,.ico,.css,.gif,.bmp等格式的静态文件进行过滤,将过滤后的数据中的大写全部转换成小写,将连续的斜线”/”转换为一个斜线以及解码操作。

步骤二:数据特征提取,具体为:

步骤2.1:基于分布式系统的基本的数理计算;

在基于web攻击的分布式机器学习和异常检测中主分析的是web日志文件中的uri。对步骤一中预处理后的uri采取分割取字段、根据uri的组成类型、是否含特殊字符、长度、关键字出现个数和一定规则的权值计算得出所要提取的21个特征。每个Map()在计算完成后,以向量的形式输出特征向量。Map()并行计算和处理出随后训练所需要的数据。

步骤2.2:特征向量的量化;

对Mappers阶段输出的特征向量采用log函数进行量化。

步骤2.3:特征向量的合并;

将量化后的特征向量输出,根据键值归类成一组数据,然后输入到Reducers阶段,在Reducers阶段会自动的对产生的特征向量进行合并去除重复的数据。这是由于在特征提取的过程中,会出现特征向量一样的情况。这一步又大大减少了所要处理数据的数量。从而一定程度上缩短了整个机器学习过程的时间。如图3所示,Reducers阶段过后会产生结果文件(Resultfile),这个结果文件的文件格式是weka所要求的arff格式。

步骤三:本地训练;

如图2所示,产生的arff格式的结果文件将被放入到本地的weka中进行训练,由于训练过程耗时占整个机器学习时间的比重并不大,所以放到本地训练。本地训练时调用weka接口,运用weka接口里面已封装好的随机森林算法,本地训练过程是单机的,最后生成模型文件RandomForest.model,上传到云计算平台。

步骤四:云计算平台进行线上海量数据的分布式检测;

海量数据的测试在基于mapreduce框架的云计算平台并发执行,经过数千个Map()函数并行解析后转换成arff格式的文件,待测试数据经过数据预处理后进行测试。

在模型文件RandomForest.model随着weka的jar包被一起分发到Hadoop集群的各个计算节点后,再由各计算节点按照Map()和Reduce()的函数功能进行线上数据的测试和检测。测试过程中调用weka的jar包和模型文件,每个Mappers在测试出结果后,输出到Reduce()中进行结果汇总,对检测的结果,Reducer会根据判断出的标签分别生成对应的文件,基于web攻击检测的分布式机器学习检测的结果就是access和attacke这两个文件。这两个文件可以下载到本地进行查看。

本发明中采用的数据预处理和特征提取是基于mapreduce框架来并行处理的。由于weka本身是单机执行,在如此庞大的数据量面前,会形成一个时间瓶颈,大量的时间消耗在数据的预处理和特征的提取上,所以本发明采用的基于hadoop集群的mapreduce框架的分布式预处理和特征提取将会大大缩短执行时间。

线上海量数据的分布式测试是基于云计算平台的强大的并行计算能力,单日产量为TB级别的数据,而且待检测数据具有一定的时效性,所以单纯用weka来进行单机测试,测试时间长,产生的结果由于时延太长而失去作用。数据的分布式预处理,特征的分布式提取和线上海量数据的分布式测试都运用了云计算平台的计算能力,将原本吞吐量并不大的weka扩展到云计算平台,极大的增加了数据的吞吐量,可以使weka根能适应大数据时代的机器学习。

所述的云计算平台可以是基于hadoop、spark、storm等大数据处理的框架组成的集群系统。如图4所示,hadoop集群中包含若干个节点,训练的样本数据事先存储在hadoop集群的各个节点处,由Hadoop的namenode主节点管理并分发依赖包到各个计算节点上,实现移动计算,避免了移动数据的耗时。

经过数据预处理、特征提取后的文件转换成weka要处理的文件格式,然后下载到本地。如图1,本地的功能部分会调用本地的weka接口来进行训练,生成模型文件。把生成的模型文件再上传到云计算平台。云计算平台上产生的数据直接进行预处理后进行测试,在测试的时候要把数据跟模型文件一起分发到云计算平台的各个计算节点处进行并行测试,生成测试的结果文件。

本实例中所描述的实现装置的各个功能模块实现如图2所示,本发明提供的实现装置包括解析模块、训练模块和测试模块。所述的解析模块包括数据预处理子模块和特征提取子模块。首先是Web日志文件样本在数据预处理子模块进行预处理后,在特征提取子模块进行特征提取,然后在训练模块进行模型训练生成模型文件用于测试。然后待测试的Web日志文件经过数据预处理子模块的预处理后,与模型文件一起在测试模块进行测试生成检测结果。

综上所述,本发明实施例充分利用云计算平台的分布式并行计算能力,扩展weka的数据处理能力,适应了海量的数据处理的机器学习,缩短了整个机器学习流程的时间。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号