CN103020288B - 一种动态数据环境下的数据流分类方法 - Google Patents

一种动态数据环境下的数据流分类方法 Download PDF

Info

Publication number
CN103020288B
CN103020288B CN201210582619.9A CN201210582619A CN103020288B CN 103020288 B CN103020288 B CN 103020288B CN 201210582619 A CN201210582619 A CN 201210582619A CN 103020288 B CN103020288 B CN 103020288B
Authority
CN
China
Prior art keywords
data
sorter
data block
kdq
tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210582619.9A
Other languages
English (en)
Other versions
CN103020288A (zh
Inventor
冯林
姚远
陈沣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dalian University of Technology
Original Assignee
Dalian University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dalian University of Technology filed Critical Dalian University of Technology
Priority to CN201210582619.9A priority Critical patent/CN103020288B/zh
Publication of CN103020288A publication Critical patent/CN103020288A/zh
Application granted granted Critical
Publication of CN103020288B publication Critical patent/CN103020288B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及智能信息处理技术领域,公开了一种动态数据环境下的数据流分类方法,包括:对数据流进行分块,针对不同的概念漂移建立不同的分类器并保存到分类器-特征数据池中,当新数据块到来时利用KL散度判断是否发生概念漂移,若概念漂移没有发生则使用前一时刻的分类器进行分类,否则在分类器-特征数据池中利用KL散度寻找适合的分类器进行分类,若无符合的分类器则训练一个新的分类器加入分类器-特征数据池中,同时对过时的分类器进行删除。本发明可以同时检测平稳的以及突变的概念漂移;在发生概念漂移的情况下,通过选取合适的分类器进行分类保证模型的效率;通过删除过时的分类器保证模型的性能。

Description

一种动态数据环境下的数据流分类方法
技术领域
本发明涉及智能信息处理技术领域,特别涉及一种动态数据环境下的数据流分类方法,适用于网络入侵检测,网络安全监控、传感器数据监控和电网供电等方面。
背景技术
随着信息技术的发展,数据流作为一种特殊的数据越来越受到工业界的关注。数据流指以高速传输的规模巨大的数据序列,并只能以事先规定好的顺序被读取。在现实应用中,由于数据流通常以非常高的速度传输,对数据流数据的计算、存储都将变得很困难,通常只有在数据最初到达时有机会对其进行一次处理,其他时候很难再存取到这些数据。此外,在数据流产生的过程中,数据是不稳定的,存在数据分布随时间改变的现象,即所谓的概念漂移,因此针对静态数据的分类算法在处理动态数据环境下的数据流时往往失效。
针对动态数据环境下的分类问题,现有的方法包括基于实例的方法以及基于集成学习的方法。基于实例的方法通常使用一个全局分类器对数据进行处理,优点是处理速度快,但由于没有有效的利用历史信息,并不能很好地处理概念漂移问题。基于集成学习的方法通过多个分类器进行共同决策。集成学习的方法可以解决基于实例方法里没有有效利用历史信息的问题,但现有的方法多数采用盲目学习的方法,不能有效的处理突变的动态数据现象,即所谓的突变的概念漂移。
本领域中存在对提供改进的用于动态数据环境下的数据流分类方法的需要。
发明内容
本发明的目的是:为解决上述现有技术中存在的问题,提供一种动态数据环境下的数据流分类方法。
为达到上述目的,本发明采用的技术方案是:提供了一种动态数据环境下的数据流分类方法,具体包括以下步骤:
步骤100:数据流接收模块102从数据流101中按照顺序接收数据;所述数据流指高速传输的规模巨大的数据序列,其中数据序列只能以事先规定好的顺序被读取;数据流通常以非常高的速度传输,只有在数据最初到达时有机会对其进行一次处理;所述动态数据环境是指数据流产生的过程中,数据是不稳定的,即数据的分布是随时间改变的;
步骤200:数据流划分模块103读取步骤100中的数据流数据,并根据数据流中数据到达的先后顺序对数据流进行分块;所述数据流划分模块103划分得到的数据块中,包含m条记录;m是固定变量,由使用者指定;
步骤300:经数据划分模块103分块后分别向kdq树模块104、分类器训练模块105、概念漂移检测模块107给出所需的数据,kdq树模块104在数据流划分模块103得到的数据块上建立kdq树,并计算kdq树对应的阈值;其中,所述kdq树对应的阈值使用基于KL散度的自助法计算给出或由使用者直接给定;
步骤400:分类器训练模块105使用数据块来训练各类分类器;
步骤500:将kdq树模块104所建立的kdq树、kdq树对应的阈值、上述分类器训练模块训练得到的分类器将放入分类器-特征数据池106中保存,以提供给概念漂移检测模块107、分类器选择模块108进行概念漂移的检测及发生概念漂移时选择合适的分类器时使用;
步骤600:概念漂移检测模块107在数据流划分模块103得到一个新的数据块,并检测新数据块是否发生概念漂移,概念漂移检测模块107的检测结果根据由原始数据块、新数据块的KL散度值与分类器-特征数据池106中保存的kdq树对应阈值的比较结果给出;在计算KL散度时需要对原始数据块进行离散化,离散化的结果由数据块通过kdq树的结果给出;
步骤700:当发生概念漂移时,分类器选择模块108从所述分类器-特征数据池106中选出适合当前数据块的分类器;利用所述分类器对当前数据块进行分类,所述分类器选择模块108的选择结果根据原始数据块、新数据块的KL散度值及分类器-特征数据池106中kdq树对应阈值的比较结果给出;
如果所述分类器选择模块108从分类器-特征数据池106中无法选出适合当前数据块的分类器,则利用kdq树模块104在当前数据块上建立新的kdq树,并计算kdq树对应的阈值,再利用分类器训练模块105在当前数据块上训练一个新的分类器,将kdq树、kdq树对应的阈值及所述分类器放入所述分类器-特征数据池106中;
如果所述概念漂移没有发生,则使用当前分类器进行分类,当前分类器为:对最近时刻数据块分类的分类器;
步骤800:分类器遗忘模块109对分类器-特征数据池106中的kdq树、kdq树对应阈值及分类器进行选择性删除。
所述步骤300中建立kdq树包括以下子步骤:
步骤310:选定数据块中的第一个维度作为当前维度,在当前维度中寻找中位数值v,中位数值的寻找,要求将数据块中样本按照数量划分为等规模的两个子集,当前维度的数值大于v的数据以及当前维度的数值小于或者等于v的数据数量基本相等;
步骤320:在上述所得到的子集中计算满足划分条件的下一维度,并且使用满足条件的维度作为当前维度,重复寻找中位数值的过程,继续划分数据子集,直到满足终止条件为止;
当前维度满足划分条件为:当前维度数据的最大值小值之差大于ε,ε值由用户指定;
所述终止条件为:当前数据块的数据规模小于nmin,或者每一维度的最大最小值之差均小于ε。
所述kdq树模块104采用自助法给定kdq树对应的相关阈值,包括以下步骤:
步骤K100:从原始数据块中有放回的抽取N条数据,即所抽取的数据并不从原始数据块中删除,利用抽取得到的数据构成新的数据块;
步骤K200:利用kdq树对新数据块进行划分得到离散化结果;
步骤K300:根据所述KL散度的计算公式计算新数据块与原始数据块的KL散度值,将计算结果加入队列中;
所述KL散度的计算公式为:
(1)
(2)
在公式(1)中,表示数据块和数据块之间数据分布的KL散度,表示数据块离散化后的概率分布,表示数据块离散化后的概率分布;表示数据块离散化后在第j个区间的数据规模,表示数据块离散化后在第j个区间的数据规模,表示数据块的总数据规模;表示对数据块离散化后共能得到个区间;所述数据块的离散化结果由kdq树得到。
在公式(2)中,表示数据块和数据块之间带标签的数据分布的KL散度,表示数据块离散化后的每种标签的概率分布,表示数据块离散化后的标签的概率分布;表示数据块离散化后在第j个区间中标签为i的数据规模,表示数据块离散化后在第j个区间中标签为i的数据规模,表示数据块的总数据规模;表示对数据块离散化后共能得到个区间,表示数据共有种不同的标签;所述数据块的离散化结果由kdq树得到;
步骤K400:重复步骤K100-300,共重复k次;
步骤K500:对队列中的数据值按照大小进行排序,取第1-α大的值作为阈值;
其中,所述α表示发生概念漂移的置信度,其中α大于0小于1,由使用者指定。
所述步骤K200利用kdq树对新数据块进行划分得到离散化结果,包括以下步骤:
步骤K210:将一条数据根据kdq树根节点决策值进行划分,若数据指定维度的值小于等于kdq树中节点的决策值则进入根节点的左子树,否则进入根节点的右子树;
步骤K220:所述决策过程直到数据最终到达kdq树的叶子节点时停止,至此得到针对此条数据的划分结果;
步骤K230:将当前数据块中的所有数据按照以上流程通过kdq树后,得到kdq树针对当前数据块的划分结果,再将每个划分区域中的数据规模除以数据块的规模,则得到当前数据块针对kdq树的离散化结果的概率分布
所述分类器包括:支持向量机分类器、k最近邻分类器、决策树分类器、朴素贝叶斯分类器、极端学习机分类器。
所述步骤600中概念漂移检测模块107检测概念漂移,包括以下子步骤:
步骤610:将数据块通过kdq树的结果,得到kdq树对数据块的离散化结果;
步骤620:利用KL散度计算公式得到当前数据块与原始数据块的KL散度值;
步骤630:将上述KL散度值与kdq树对应的阈值进行比较,若计算得到的KL散度值小于kdq树对应的阈值,则表示概念漂移没有发生,否则表示概念漂移实际发生。
所述步骤700包括以下子步骤:
步骤710:从分类器-特征数据池106中按顺序选出一颗kdq树以及kdq树所对应的阈值;
步骤720:将当前数据块利用此kdq树进行离散化;
步骤730:计算KL散度值与kdq树所对应的阈值进行比较,若其KL散度值小于kdq树所对应的阈值,则选取对应的分类器作为当前的分类器;否则按照顺序选取下一颗kdq树以及kdq树所对应的阈值重复比较过程;若池中所有的kdq树对应的阈值均大于KL散度计算结果,则表明当前池中没有分类器与当前数据块相符合。
所述步骤800包括以下子步骤:分类器遗忘模块109对分类器进行遗忘,包括以下步骤:
步骤810:当每个分类器被训练时,为其赋予一个记忆值w,其初始值为W;
步骤820:当新的数据块到来时,对上一时刻用于分类的分类器的所述记忆值w乘以所述值W,其余分类器乘以系数β,其中W大于1,β小于1;
步骤830:针对每个分类器生成一个随机值ρ在0到1范围内,若所述分类器记忆值w小于ρ,则表明该分类器已经过时,从所述分类器-特征数据池106中删除对应的分类器、kdq树以及kdq树对应的阈值。
所述数据流101包括:网络入侵监测、网络安全监控、传感器数据监控及电网供电各个方面数据。
所述数据流接收模块、数据流划分模块、kdq树模块,分类器训练模块,概念漂移检测模块,分类器-特征数据池,分类器选择模块,分类器遗忘模块均存储于计算机系统的存储器中。
本发明的有益效果是:本发明利用kdq树以及KL散度检测概念漂移,可以同时检测平稳的以及突变的概念漂移;在发生概念漂移的情况下,通过选取合适的分类器进行分类,保证模型的准确率;通过删除过时的分类器,有效的保证模型的性能。
附图说明
图1为本发明一种动态数据环境下的数据流分类方法的流程框图。
图2为本发明利用数据流划分模块对数据流进行分块的一种具体实施。
图3(a)为本发明kdq树模块在建立kdq树过程中对数据块进行划分的一种具体实施例。
图3(b)为本发明kdq树模块数据块划分结果对数据块建立kdq树的一种具体实施例。
图4为本发明自助法求取kdq树对应的阈值的具体实施流程。
图5为本发明概念漂移检测模块对数据块进行概念漂移检测的一种具体实施例。
图6为本发明利用分类器选择模块从分类器-特征数据池中选取合适的分类器一种具体实施。
图7为本发明一种动态数据环境下的数据流分类方法的一种具体实施方法流程图。
附图标识:101-数据流,102-数据流接收模块,103-数据流划分模块,104-kdq树模块,105-分类器训练模块,106-分类器-特征数据池,107-概念漂移监测模块,108-分类器选择模块,109-分类器遗忘模块,301-第一分割线,302-第二分割线,303-第三分割线。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。
参照图1,本发明一种动态数据环境下的数据流分类方法的框架,包括数据流接收模块102、数据流划分模块103、kdq树模块104、分类器训练模块105、分类器-特征数据池106、概念漂移检测模块107、分类器选择模块108、分类器遗忘模块109;
其中,数据流接收模块102从数据流101中按照顺序接收数据。数据流101包括对本领域普通技术人员已知的任何类型的数据流,特别包括网络入侵检测数据流,网络安全监控数据流、传感器数据监控数据流和电网供电数据流。数据流通常以非常高的速度传输,因此对数据流数据的计算、存储都将变得很困难。通常,只有在数据最初到达时有机会对其进行一次处理。
数据流划分模块103从数据流接收模块102中读取数据,并根据指定大小按照顺序将数据流进行分块。数据流划分模块103所指定的大小由用户实现指定。kdq树模块104,分类器训练模块105以及概念漂移检测模块108所需的当前数据块均由数据流划分模块103的划分结果给出。
kdq树模块104所建立的kdq树、kdq树对应的阈值将放入分类器及特征数据池106中,以提供给概念漂移检测模块107、分类器选择模块108进行概念漂移的检测及发生概念漂移时选择合适的分类器时使用。
分类器训练模块105根据数据流划分模块103提供的当前数据块训练出适合当前数据块的分类器。
概念漂移检测模块107的检测结果及分类器选择模块108的选择结果由原始数据块、当前数据块的KL散度值与kdq树的阈值的比较结果给出。在计算KL散度时需要对原始数据块进行离散化,离散化的结果由数据块通过kdq树的结果给出。
分类器遗忘模块109根据分类器的使用情况将长期得不到使用的分类器以及过时的分类器删除。
参照图2,为图1利用数据流划分模块103对数据流进行分块的一种具体实施,数据流划分模块103按照数据流接收模块102中数据流到来的先后顺序对数据流进行了分块,按顺序分为第一数据块、第二数据块、…,每个数据块包含N条数据,特别的,取N=1000。在另一实施例中,N值可以根据数据流的特征由数据流划分模块103进行动态调整。
所述分类器训练模块105用于在所述数据流划分模块得到的数据块上训练一个分类器,所述分类器可包括对本领域普通技术人员已知的任何类型的分类器。所述分类器包括:支持向量机分类器、k最近邻分类器、决策树分类器、朴素贝叶斯分类器、极端学习机分类器。当一个分类器被训练得到时,将其设置为当前分类器,用于概念漂移没有发生时的分类。
kdq树模块104构建kdq树的过程如下所述:
选定数据块中的第一个维度作为当前维度,在当前维度中寻找中位数值v,中位数值的寻找,要求将数据块中样本按照数量划分为等规模的两个子集,当前维度的数值大于v的数据以及当前维度的数值大于、小于或者等于v的数据数量基本相等;
在上述所得到的子集中计算满足划分条件的下一维度,并且使用满足条件的维度作为当前维度,重复寻找中位数值的过程,继续划分数据子集,直到满足终止条件为止;
当前维度满足划分条件为:当前维度数据的最大值小值之差大于ε,ε值由用户指定;
所述终止条件为:当前数据块的数据规模小于nmin,或者每一维度的最大最小值之差均小于ε。当满足停止条件时,得到对原始数据块的一种划分。
若将每次划分的结果作为当前属性值节点的左右决策结果,则可以得到对数据划分的一种树形结构,即kdq树。kdq树的特点是可以对原始数据块的划分结果(离散化结果)近似均等。当数据流环境比较稳定时、即没有发生概念漂移时、对当前数据块也可以获取近似相等的离散化结果。这种特性便于进行概念漂移的检测。在一种实施例中,特别的指定nmin=100,ε=0.0001。
图3(a)为kdq树模块104在建立kdq树过程中对数据块进行划分的一种具体实施例:给定包含十九条二维数据的数据块。其数据值由图3(a)二维空间的点的坐标值所示。
首先根据数据的第一维度坐标值选定第一分割线301,使得第一分割线301左右两端点的个数近似均等,接着从左右两个区域中根据数据的第二维度坐标值选定第二分割线302,使得第二分割线302上下两端点的个数近似相等,接着从所有区域中根据数据的第一维度坐标值选定第三分割线303,使得第三分割线303左右两端的点近似相等。上述分割过程直到当前区域中的数据小于nmin,或者每一维度的最大最小值之差均小于ε为止。特别的,在本实施例中,选取nmin=2。
图3(b)为kdq树模块104利用划分结果对数据块建立kdq树的一种具体实施例:给定包含十一条二维数据的数据块305,其种对第一维度的划分值v=5,在第一维度的划分基础上得到的第二维度的划分值为v=3以及v=6。至此将二维空间划分为四个区域,分别为(d1≤5,d2≤3)、(d1≤5,d2>3)、(d1>5,d2≤6)以及(d1>5,d2>6)。由划分结果得到当前数据块的kdq树,其根节点包含第一维度的中间值5,若新到来的数据第一维度值小于等于5,则落入根节点的左子树中,否则当新到来的数据落入根节点的右子树中。新到来的数据根据子树的根节点的数值进行继续进行决策到达子树的左子树或右子树中。所述决策过程直到数据最终落入kdq树的叶子节点,即落入原始数据块的划分结果中,由此得到新数据针对原数据块的分布。一具体实施例数据(4,4)最终将落入(d1≤5,d2>3)的区域中。
将新数据块中的所有数据通过kdq树的决策,即得到新数据块针对kdq树的划分结果,即新数据的离散化结果。将新数据的离散化结果除以数据块的规模,得到当前数据块针对kdq树的离散化结果的概率分布
在具体实施例中使用KL散度进行数据块之间相似度的判断,所述KL散度的计算公式为:
(1)
(2)
在公式(1)中,表示数据块和数据块之间数据分布的KL散度,表示数据块离散化后的概率分布,表示数据块离散化后的概率分布;表示数据块离散化后在第j个区间的数据规模,表示数据块离散化后在第j个区间的数据规模,表示数据块的总数据规模;表示对数据块离散化后共能得到个区间;所述数据块的离散化结果由kdq树得到。
在公式(2)中,表示数据块和数据块之间带标签的数据分布的KL散度,表示数据块离散化后的每种标签的概率分布,表示数据块离散化后的标签的概率分布;表示数据块离散化后在第j个区间中标签为i的数据规模,表示数据块离散化后在第j个区间中标签为i的数据规模,表示数据块的总数据规模;表示对数据块离散化后共能得到个区间,表示数据共有种不同的标签;所述数据块的离散化结果由kdq树得到;
kdq树模块104得到的kdq树对应的阈值利用自助法得到,参照图4:
第一步:计算开始时,从原始数据块中有放回的抽取1条数据,即所抽取的数据并不从原始数据块中删除,因此之后抽取时,有一定几率抽取到重复数据,将所取得的数据加入新数据块中。
第二步:重复所述抽取过程直到新数据块中的数据规模达到N,利用kdq树对新数据块进行划分得到离散化结果。
第三步:根据所述KL散度的计算公式计算新数据块与原始数据块的KL散度值,将计算结果加入队列中,重复所述过程直到队列中包含k条数据。
第四步:对队列中的数据值按照大小进行排序,取第1-α大的值作为阈值,得到置信度为α的kdq树所对应的阈值,即表示,若此时有一个新数据块与原始数据块的KL散度值大于所述阈值,则表示所述新数据块有1-α的概率发生了概念漂移。在一种具体实施例中,取N=1000,k=200,α=0.05。
当新的数据块到来时,利用概念漂移检测模块107对新的数据块进行概念漂移检测,检测的过程如下所述:将当前数据块通过当前kdq树得到当前数据块针对当前kdq树的离散化结果,利用KL散度计算公式得到当前数据块与原始数据块的KL散度值并与kdq树对应的阈值进行比较,若计算得到的KL散度值小于kdq树对应的阈值则表示概念漂移没有发生,否则表示概念漂移实际发生了。
参照图5,所述概念漂移检测过程使用当前数据块与没有发生概念漂移的第一个数据块进行比较。在具体实施中,数据流中第Ⅱ数据块与第Ⅰ数据块进行比较,概念漂移没有发生,第Ⅲ数据块继续与第Ⅰ数据块进行比较。若某一时刻第t+1数据块概念漂移发生,则之后的第t+2数据块概念漂移检测时则与所述时刻第t+1数据块进行比较。通过与产生概念漂移的数据块进行概念漂移的检测,不仅可以检测突变的概念漂移,同时也可以检测出缓慢的、跨越多个数据块的概念漂移。特别的,仅与前一时刻的数据块进行概念漂移检测的方法是无法检测出缓慢的、跨越多个数据块的概念漂移。
当所述概念漂移检测模块107检测出概念漂移发生时,需要利用分类器选择模块108从所述分类器及特征数据池106中选取合适的分类器作为当前分类器,选取过程与概念漂移的检测过程相反,即判断当前数据块与历史数据块之间是否不存在概念漂移。
参照图6,为本发明利用分类器选择模块从分类器-特征数据池中选取合适的分类器的步骤如下:从所述分类器-特征数据池106中按顺序选出一棵kdq树及kdq树所对应的阈值。将当前数据块利用kdq树进行离散化,计算KL散度值并与kdq树所对应的阈值进行比较,若其KL散度值小于kdq树所对应的阈值,则选取对应的分类器作为当前的分类器,表明该分类器与当前数据块相符合。否则按照顺序选取下一棵kdq树以及kdq树所对应的阈值重复所述过程。若池中所有的kdq树对应的阈值均大于KL散度计算结果,则表明当前池中没有分类器与当前数据块相符合。
若所述概念漂移实际发生并且分类器-特征数据池106中没有分类器与当前数据块相符合时,则表明需要一个新的分类器、相应的kdq树以及对应的阈值。根据当前数据块训练一个新的分类器,同时利用当前数据块建立kdq树并且计算kdq树对应的阈值,将所述新的分类器、kdq树及kdq树对应的阈值放入所述分类器及特征数据池106中,同时将所述的分类器设为当前分类器,用于下一时刻数据块的分类。
若所述概念漂移实际上没有发生或所述分类器-特征数据池106中存在分类器与当前数据块相符合时,利用当前分类器对数据块进行分类。
所述分类器遗忘模块109根据分类器的使用情况将长期得不到使用的分类器以及过时的分类器删除。实施过程为:当每个分类器被训练时,为其赋予一个记忆值w,所述记忆值w的初始值为W。当新的数据块到来时,对上一时刻用于分类的分类器的所述记忆值w乘以所述系数W,代表对应分类器的记忆被强化,其余分类器乘以系数β,代表对应分类器的记忆值开始衰减,其中W大于1,β小于1。特别的,在一种实施例中,选取W=2,β=0.85。
所述记忆值w的0至1区间称为所述记忆值w遗忘域,只有当所述记忆值w处于遗忘域0至1区间中时,对应的分类器才有可能被删除,否则分类器不会被删除。每当记忆值发生改变时,对应每个分类器生成一个大于0小于1的随机值ρ,若记忆值w小于ρ,则表明该分类器已经过时,从所述分类器及特征数据池106中删除对应的分类器、kdq树以及kdq树对应的阈值。
参照图7,本发明一种动态数据环境下的数据流分类方法的一种具体实施方法,包括以下步骤:
步骤10:接收数据流;
步骤20:按照数据流中数据到达的先后顺序对数据流进行分块,每块包含m条记录;
步骤30:取第1个数据块D1,利用D1训练分类器C1,并利用D1构建kdq树Tr1并计算概念漂移阈值KL1
步骤40:将步骤30中所述C1,Tr1以及KL1放入分类器池中;
步骤50:令t=2,k=1;
步骤60:取一个新的数据块Dt,利用Trk计算相似度;
步骤70:判断是否存在概念漂移,若存在概念漂移转步骤80,否则转步骤120;
步骤80:判断分类器池中是否存在合适的分类器,若存在转步骤80,否则转90;
步骤90:将合适的分类器设为Ck,转步骤120;
步骤100:令k=k+1,利用Dt训练分类器Ck,并利用Dt构建kdq树Trk并计算概念漂移阈值KLk
步骤110:将步骤10中所述Ck,Trk以及KLk放入分类器池中。转步骤120;
步骤120:利用分类器Ck对数据块Dt进行分类。同时输出结果。
步骤130:对分类器池中的分类器进行遗忘,删除过时的分类器;
步骤140:是否存在新的数据块,若存在则令t=t+1,同时转步骤60,否则结束。
以上是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明的前提下的若干改进和润饰,应当视为本发明的保护范围。

Claims (9)

1.一种动态数据环境下的数据流分类方法,具体包括以下步骤:
步骤100:数据流接收模块(102)从数据流(101)中按照顺序接收数据;
步骤200:数据流划分模块(103)读取步骤100中的数据流数据,并根据数据流中数据到达的先后顺序对数据流进行分块;所述数据流划分模块(103)划分得到的数据块中,包含m条记录;m是固定变量,由使用者指定;
步骤300:经数据划分模块(103)分块后分别向kdq树模块(104)、分类器训练模块(105)、概念漂移检测模块(107)给出所需的数据,kdq树模块(104)在数据流划分模块(103)得到的数据块上建立kdq树,并计算kdq树对应的阈值;其中,所述kdq树对应的阈值使用基于KL散度的自助法计算给出或由使用者直接给定;
步骤400:分类器训练模块(105)使用步骤200得到的数据块训练各类分类器;
步骤500:将kdq树模块(104)所建立的kdq树、kdq树对应的阈值、步骤400分类器训练模块训练得到的分类器将放入分类器-特征数据池(106)中保存,以提供给概念漂移检测模块(107)、分类器选择模块(108)进行概念漂移的检测及发生概念漂移时选择合适的分类器时使用;
步骤600:概念漂移检测模块(107)在数据流划分模块(103)得到一个新的数据块,并检测新数据块是否发生概念漂移,概念漂移检测模块(107)的检测结果根据由原始数据块、新数据块的KL散度值与分类器-特征数据池(106)中保存的kdq树对应阈值的比较结果给出;在计算KL散度时需要对原始数据块进行离散化,离散化的结果由数据块通过kdq树的结果给出;
步骤700:当发生概念漂移时,分类器选择模块(108)从所述分类器-特征数据池(106)中选出适合当前数据块的分类器;利用所述分类器对当前数据块进行分类,所述分类器选择模块(108)的选择结果根据原始数据块、新数据块的KL散度值及分类器-特征数据池(106)中kdq树对应阈值的比较结果给出;
如果所述分类器选择模块(108)从分类器-特征数据池(106)中无法选出适合当前数据块的分类器,则利用kdq树模块(104)在当前数据块上建立新的kdq树,并计算kdq树对应的阈值,再利用分类器训练模块(105)在当前数据块上训练一个新的分类器,将kdq树、kdq树对应的阈值及所述分类器放入所述分类器-特征数据池(106)中;
如果所述概念漂移没有发生,则使用当前分类器进行分类,当前分类器为:对最近时刻数据块分类的分类器;
步骤800:分类器遗忘模块(109)对分类器-特征数据池(106)中的kdq树、kdq树对应阈值及分类器进行选择性删除。
2.根据权利要求1所述的一种动态数据环境下的数据流分类方法,其特征在于,所述步骤300中建立kdq树包括以下子步骤:
步骤310:选定数据块中的第一个维度作为当前维度,在当前维度中寻找中位数值v,中位数值的寻找,要求将数据块中样本按照数量划分为等规模的两个子集,即当前维度的数值大于v的数据以及当前维度的数值小于或等于v的数据数量基本相等;
步骤320:在上述所得到的子集中计算满足划分条件的下一维度,并且使用满足条件的维度作为当前维度,重复寻找中位数值的过程,继续划分数据子集,直到满足终止条件为止;
当前维度满足划分条件为:当前维度数据的最大值小值之差大于ε,ε值由用户指定;
所述终止条件为:当前数据块的数据规模小于nmin,或者每一维度的最大最小值之差均小于ε。
3.根据权利要求1所述的一种动态数据环境下的数据流分类方法,其特征在于,所述kdq树模块(104)采用自助法给定kdq树对应的相关阈值,包括以下步骤:
步骤K100:从原始数据块中有放回的抽取N条数据,即所抽取的数据并不从原始数据块中删除,利用抽取的数据构成新的数据块;
步骤K200:利用kdq树对新数据块进行划分得到离散化结果;
步骤K300:根据所述KL散度的计算公式计算新数据块与原始数据块的KL散度值,将计算结果加入队列中;
所述KL散度的计算公式为:
kl 1 = K L ( P C a ( x ) | | P C b ( x ) ) = Σ j = 1 T w b , j N b l n w b , j w a , j - - - ( 1 )
kl 2 = K L ( P C a ( Y | x ) | | P C b ( Y | x ) ) = Σ i = 1 | Y | Σ j = 1 T w b , i , j N b l n w b , i , j w a , i , j - - - ( 2 )
在公式(1)中,kl1表示数据块Ca和数据块Cb之间数据分布的KL散度,表示数据块Ca离散化后的概率分布,表示数据块Cb离散化后的概率分布;wb,j表示数据块Cb离散化后在第j个区间的数据规模,wa,j表示数据块Ca离散化后在第j个区间的数据规模,Nb表示数据块Cb的总数据规模;T表示对数据块离散化后共能得到T个区间;所述数据块的离散化结果由kdq树得到;
在公式(2)中,kl2表示数据块Ca和数据块Cb之间带标签的数据分布的KL散度,表示数据块Ca离散化后的每种标签的概率分布,表示数据块Cb离散化后的标签的概率分布;wb,i,j表示数据块Cb离散化后在第j个区间中标签为i的数据规模,wa,i,j表示数据块Ca离散化后在第j个区间中标签为i的数据规模,Nb表示数据块Cb的总数据规模;T表示对数据块离散化后共能得到T个区间,|Y|表示数据共有|Y|种不同的标签;所述数据块的离散化结果由kdq树得到;
步骤K400:重复步骤K100-300,共重复k次;
步骤K500:对队列中的数据值按照大小进行排序,取第1-α大的值作为阈值;
其中,所述α表示发生概念漂移的置信度,其中α大于0小于1,由使用者指定。
4.根据权利要求3所述的一种动态数据环境下的数据流分类方法,其特征在于,所述步骤K200利用kdq树对新数据块进行划分得到离散化结果,包括以下步骤:
步骤K210:将数据块中的一条数据根据kdq树根节点决策值进行划分,若数据指定维度的值小于等于kdq树中节点的决策值则进入根节点的左子树,否则进入根节点的右子树;
步骤K220:所述决策过程直到数据最终到达kdq树的叶子节点时停止,至此得到针对此条数据的划分结果;
步骤K230:将当前数据块中的所有数据按照以上流程通过kdq树后,得到kdq树针对当前数据块的划分结果,再将每个划分区域中的数据规模除以数据块的规模,则得到当前数据块针对kdq树的离散化结果的概率分布P(x)及P(Y|x)。
5.根据权利要求1所述的一种动态数据环境下的数据流分类方法,其特征在于,所述分类器包括:支持向量机分类器、k最近邻分类器、决策树分类器、朴素贝叶斯分类器、极端学习机分类器。
6.根据权利要求1所述的一种动态数据环境下的数据流分类方法,其特征在于,所述步骤600中概念漂移检测模块(107)检测概念漂移,包括以下子步骤:
步骤610:将数据块通过kdq树的结果,得到kdq树对数据块的离散化结果;
步骤620:利用KL散度计算公式得到当前数据块与原始数据块的KL散度值;
步骤630:将上述KL散度值与kdq树对应的阈值进行比较,若计算得到的KL散度值小于kdq树对应的阈值,则表示概念漂移没有发生,否则表示概念漂移实际发生。
7.根据权利要求1所述的一种动态数据环境下的数据流分类方法,其特征在于,所述步骤700包括以下子步骤:
步骤710:从分类器-特征数据池(106)中按顺序选出一棵kdq树以及kdq树所对应的阈值;
步骤720:将当前数据块利用此kdq树进行离散化;
步骤730:计算KL散度值与kdq树所对应的阈值进行比较,若其KL散度值小于kdq树所对应的阈值,则选取对应的分类器作为当前的分类器;否则按照顺序选取下一颗kdq树以及kdq树所对应的阈值并重复比较过程;若池中所有的kdq树对应的阈值均大于KL散度计算结果,则表明当前池中没有分类器与当前数据块相符合。
8.根据权利要求1所述的一种动态数据环境下的数据流分类方法,其特征在于,所述步骤800包括以下子步骤:分类器遗忘模块(109)对分类器进行遗忘,包括以下步骤:
步骤810:当每个分类器被训练时,为其赋予一个记忆值w,其初始值为W;
步骤820:当新的数据块到来时,对上一时刻用于分类的分类器的所述记忆值w乘以所述值W,其余分类器乘以系数β,其中W大于1,β小于1;
步骤830:针对每个分类器生成一个随机值ρ在0到1范围内,若所述分类器记忆值w小于ρ,则表明该分类器已经过时,从所述分类器-特征数据池(106)中删除对应的分类器、kdq树以及kdq树对应的阈值。
9.根据权利要求1所述的一种动态数据环境下的数据流分类方法,其特征在于,所述数据流(101)包括:网络入侵监测、网络安全监控、传感器数据监控及电网供电各个方面数据。
CN201210582619.9A 2012-12-28 2012-12-28 一种动态数据环境下的数据流分类方法 Expired - Fee Related CN103020288B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210582619.9A CN103020288B (zh) 2012-12-28 2012-12-28 一种动态数据环境下的数据流分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210582619.9A CN103020288B (zh) 2012-12-28 2012-12-28 一种动态数据环境下的数据流分类方法

Publications (2)

Publication Number Publication Date
CN103020288A CN103020288A (zh) 2013-04-03
CN103020288B true CN103020288B (zh) 2016-03-02

Family

ID=47968891

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210582619.9A Expired - Fee Related CN103020288B (zh) 2012-12-28 2012-12-28 一种动态数据环境下的数据流分类方法

Country Status (1)

Country Link
CN (1) CN103020288B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170695A (zh) * 2016-12-07 2018-06-15 信阳师范学院 一个基于信息熵的数据流自适应集成分类方法
CN109284606A (zh) * 2018-09-04 2019-01-29 中国人民解放军陆军工程大学 基于经验特征与卷积神经网络的数据流异常检测系统

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103336786B (zh) * 2013-06-05 2017-05-24 腾讯科技(深圳)有限公司 一种数据处理的方法及装置
CN103345575B (zh) * 2013-06-19 2016-07-13 华南师范大学 一种数据流概念漂移检测方法及系统
CN103678512A (zh) * 2013-12-26 2014-03-26 大连民族学院 一种动态数据环境下的数据流混合分类方法
CN106060043B (zh) * 2016-05-31 2019-06-07 北京邮电大学 一种异常流量的检测方法及装置
CN106095921B (zh) * 2016-06-07 2019-04-09 四川大学 面向海量数据流的实时并行分类方法
CN106934035B (zh) * 2017-03-14 2019-06-14 合肥工业大学 一种基于类与特征分布的多标签数据流中概念漂移检测方法
CN107360032B (zh) * 2017-07-20 2020-12-01 中国南方电网有限责任公司 一种网络流识别方法及电子设备
CN107679228B (zh) * 2017-10-23 2019-09-10 合肥工业大学 一种基于短文本扩展和概念漂移检测的短文本数据流分类方法
CN109343952B (zh) * 2018-08-22 2020-11-27 东软集团股份有限公司 贝叶斯网络确定方法、装置、存储介质和电子设备
CN109298840A (zh) * 2018-11-19 2019-02-01 平安科技(深圳)有限公司 基于数据湖的数据集成方法、服务器及存储介质
CN110334811A (zh) * 2019-06-28 2019-10-15 西安理工大学 基于贝叶斯网络的动态数据流分类方法
CN110659275B (zh) * 2019-09-23 2022-02-08 东华大学 面向实时数据流的动态生产环境异常监测系统
CN111639694A (zh) * 2020-05-25 2020-09-08 南京航空航天大学 一种基于分类器多样性和Mcdiarmid不等式的概念漂移检测方法
TWI755995B (zh) * 2020-12-24 2022-02-21 科智企業股份有限公司 對工程資料進行篩選以得到特徵的方法與系統、對工程資料進行多次篩選以得到特徵的方法、產生預測模型的方法以及將工程資料線上特徵化的系統
CN113076420B (zh) * 2021-03-31 2022-10-18 南京邮电大学 一种基于e2lsh算法的文本数据流分类方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827002A (zh) * 2010-05-27 2010-09-08 文益民 一种数据流分类的概念漂移检测方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827002A (zh) * 2010-05-27 2010-09-08 文益民 一种数据流分类的概念漂移检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
孙岳 等.基于多分类器的数据流中的概念漂移挖掘.《自动化学报》.2008,第34卷(第1期), *
张杰 等.数据流分类中的概念漂移转移估计方法研究.《统计与信息论坛》.2011,第26卷(第12期), *
柴玉梅 等.数据流上概念漂移的检测和分类.《小型微型计算机系统》.2011,第32卷(第3期), *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170695A (zh) * 2016-12-07 2018-06-15 信阳师范学院 一个基于信息熵的数据流自适应集成分类方法
CN109284606A (zh) * 2018-09-04 2019-01-29 中国人民解放军陆军工程大学 基于经验特征与卷积神经网络的数据流异常检测系统

Also Published As

Publication number Publication date
CN103020288A (zh) 2013-04-03

Similar Documents

Publication Publication Date Title
CN103020288B (zh) 一种动态数据环境下的数据流分类方法
CN102915347B (zh) 一种分布式数据流聚类方法及系统
CN102289522B (zh) 一种对于文本智能分类的方法
CN107292186A (zh) 一种基于随机森林的模型训练方法和装置
CN102737126B (zh) 云计算环境下的分类规则挖掘方法
CN109543765A (zh) 一种基于改进IForest的工业数据去噪方法
CN102956023A (zh) 一种基于贝叶斯分类的传统气象数据与感知数据融合的方法
CN102637172B (zh) 网页分块标注方法与系统
CN103150470B (zh) 一种动态数据环境下的数据流概念漂移可视化方法
CN102750286A (zh) 一种处理缺失数据的新型决策树分类器方法
CN114024829B (zh) 电力通信网络的故障检修方法、装置、设备和存储介质
CN105938480A (zh) 一种基于dtbf的rfid冗余数据清洗方法及系统
CN104252616A (zh) 人脸标注方法、装置及设备
CN104915679A (zh) 一种基于随机森林加权距离的大规模高维数据分类方法
CN105471670A (zh) 流量数据分类方法及装置
CN106845536A (zh) 一种基于图像缩放的并行聚类方法
CN107368516A (zh) 一种基于层次聚类的日志审计方法及装置
Pei et al. The clustering algorithm based on particle swarm optimization algorithm
CN110955804B (zh) 一种针对用户时空数据行为检测的Adaboost方法
CN107704872A (zh) 一种基于相对最离散维分割的K‑means聚类初始中心选取方法
Chen et al. An application of convolutional neural network to derive vessel movement patterns
Ramakrishnan et al. Hypergraph based clustering for document similarity using FP growth algorithm
CN115035966A (zh) 基于主动学习和符号回归的超导体筛选方法、装置及设备
Devi et al. A proficient method for text clustering using harmony search method
Tran et al. An adaptive hash-based text deduplication for ADS-B data-dependent trajectory clustering problem

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160302

Termination date: 20191228

CF01 Termination of patent right due to non-payment of annual fee