CN102567471B - 一种基于信息增益计算的海量数据异常侦测方法 - Google Patents
一种基于信息增益计算的海量数据异常侦测方法 Download PDFInfo
- Publication number
- CN102567471B CN102567471B CN201110414602.8A CN201110414602A CN102567471B CN 102567471 B CN102567471 B CN 102567471B CN 201110414602 A CN201110414602 A CN 201110414602A CN 102567471 B CN102567471 B CN 102567471B
- Authority
- CN
- China
- Prior art keywords
- hash table
- data
- attribute
- information gain
- steps
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于信息增益计算的海量数据异常侦测方法,包括离线阶段处理和在线阶段处理。离线阶段用于生成统计信息,在线阶段是基于这些统计信息,以近似处理的方式快速生成分析结果,解决了传统算法分析海量规模数据时导致的内存溢出、处理时间开销过大等问题,从而提升分析性能。
Description
技术领域
本发明涉及一种仅需单次遍历数据库,以求解关键分类的方法,属于数据挖掘和知识发现技术领域。
背景技术
数据挖掘技术从纷繁芜杂的数据集合之中获取有用的知识。自从上世纪90年代中期以来,数据挖掘技术在许多领域均得到了深度应用,例如金融、物流、交通、科学研究等领域。典型的数据挖掘算法包括分类、聚类、关联规则、回归分析等。进入21世纪以来,在很多领域中待处理的数据的规模变得愈来愈庞大,往往无法直接套用传统的数据挖掘算法进行解决,需要开发新算法,改进某些关键步骤来解决相关问题。
本发明研究一种针对海量数据的异常侦测技术,其目的是为了探寻导致某种异常因素发生的主要原因。当数据规模并不很大时,传统的基于信息增益的决策树分析方法较为有效;当数据规模再度扩大时,则需要修正传统算法,改进若干关键步骤,以有效地解决这个问题。
本发明克服了现有技术中传统算法分析海量规模数据时导致内存溢出与处理时间开销过大的缺陷,提出了一种基于信息增益计算的海量数据异常侦测方法。本发明提出了一种新方法,通过两个不同阶段,即离线阶段和在线阶段,来处理海量信息,针对数据规模庞大、计算机系统内存相对不足等情况,解决了传统算法分析海量规模数据时导致的内存溢出、处理时间开销过大等问题,从而提升分析性能。
发明内容
本发明公开了一种基于信息增益计算的海量数据异常侦测方法,所述海量数据异常侦测方法为基于哈希表数据结构,包括离线阶段处理和在线阶段处理;其中,所述离线阶段处理是根据输入的原始数据生成中间数据;所述在线阶段处理是根据所述中间数据得到计算结果、且得到最终的熵值。
其中,所述离线阶段处理包括如下步骤:
步骤A1:针对所述原始数据中每个原始数据项创建若干个中间数据项;
步骤A2:若所述中间数据项能够在哈希表中找到对应的码,则将该项与哈希表中的数据项合并;否则,将所述中间数据项插入哈希表中;
步骤A3:若所述步骤A1中插入操作导致所述中间数据所在的哈希表溢出,则将所述哈希表中的数据导出到磁盘,再清空哈希表;否则,当插入操作全部结束后退出。
其中,所述在线阶段处理包括如下步骤:
步骤B1:针对从数据库中提取出来的每一项,若能够在哈希表中找到对应的码,则将该项与哈希表中的现存项合并;否则,将新项插入到哈希表中;
步骤B2:若所述步骤B1中插入操作导致哈希表溢出,则利用哈希表的弹性变更策略删除哈希表中的部分项;
步骤B3:遍历完所有数据之后,利用哈希表计算各属性的信息增益,并返回最佳属性。
其中,所述哈希表的弹性变更策略包括如下步骤:
步骤C1:初始化容忍失败的最大频数;
步骤C2:当哈希表溢出,从哈希表中移除所有失败频数小于所述容忍失败的最大频数,并且所述容忍失败的最大频数递增。
其中,所述步骤B3中各属性的信息增益通过以下公式计算得到:
本发明基于信息增益计算的海量数据异常侦测方法,采用两个不同阶段处理,即离线阶段和在线阶段处理。离线阶段处理时,根据输入数据生成一些中间数据,中间数据量会小于原始数据,且分离存放。在线阶段处理时,根据中间数据量得到计算结果,并且得到最终的熵值。本发明能够较好地侦测海量数据异常。
附图说明
图1为本发明的离线处理阶段流程示意图。
图2为本发明的在线处理阶段流程示意图。
图3为本实施例的离线处理阶段系统框图。
图4为本实施例的在线处理阶段系统框图。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明,本发明的保护内容不局限于以下实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。
本发明基于信息增益计算的海量数据异常侦测方法,是基于哈希表数据结构通过计算机系统进行处理,包括离线阶段处理和在线阶段处理。
本发明在线阶段处理,如图2所示,是基于哈希表的在线数据存储策略,所使用的基本数据结构为哈希表,哈希表中各项的结构为:(src, attrValue, FCount, SCount),其中src是对象ID,attrValue表示该对象的某个属性值,FCount表示标识字段的值为F的计数(即失败频数),SCount表示标识字段等于S的计数(即成功频数)。另外,(src, attrValue)构成各项的码,(FCount, SCount)对应各项的值。相关字段的具体说明可参见算法2。哈希表的一大好处在于能够迅速检查指定集合是否包含特定元素。
对哈希表规模的限定。哈希表的规模必须得到控制,当通过数据输入装置输入数据的规模不断变大时,可能导致内存溢出,从而急剧降低系统性能。本发明通过计算机设定一个阈值来控制存储在哈希表中的项数目。
如图4所示,创建一个新的哈希表,各项的格式为(src, attrValue, FCount, SCount)。 其中,数据集合中存放有原始数据,包括数据源src、属性值attrValue。查找模块能够找寻属性值为所查值的数据项。若没有找到所需项则通过插入模块插入一个数据项。计数器中存放有FCount、SCount、Count、threshold数据。数据集合中的每一项数据经过判决器的判决,若目标项属性值为F,则由累加器将FCount加1;否则SCount加1。每做一次判决,累加器将Count加1。
待Count超过最大计数值时,判决器判断FCount的值若小于等于threshold的值,则通过删除模块快将该项从数据集合中删除,并且Count减1。每做一次判决threshold值加1。
待遍历完所有数据后,计算模块计算各属性的信息增益,返回最佳数据并返回。
本发明方法充分考虑到(1)中间数据的规模可能高于内存规模,(2)需要根据快速维护中间结果。
本发明内外存交互的在线交互处理,采用单遍扫描策略处理数据集合,基本步骤如下:
1)针对每条记录创建若干个项;
2)若能够在哈希表中找到对应的码,则将该项与哈希表中的现存项合并;
3)否则,将新项插入到哈希表中;若插入操作导致哈希表溢出,则将哈希表中的数据导出到磁盘,再清空哈希表。
本发明离线阶段处理,如图1所示,即离线异常发现处理方法,所使用的基本数据结构为哈希表,采用哈希表来进行管理,以利用哈希表的能够迅速检查指定集合是否包含特定元素的优势。
在本发明中已经用输入参数x来指定待分析的对象,因而各项的结构为:(attrValue, FCount, SCount),其中attrValue表示该对象的某个属性值,FCount表示标识字段的值为F的计数,SCount表示标识字段等于S的计数。另外,attrValue是各项的码,(FCount, SCount)对应各项的值。
对哈希表的规模限定。哈希表的规模必须得到控制,当输入数据的规模不断变大时,可能导致内存溢出,从而急剧降低系统性能。本发明通过设定一个阈值来控制存储在哈希表中的项数目。
本发明中,哈希表的弹性变更策略是指,当哈希表的规模已经达到上限时,需要删除部分项,以释放内存空间。本发明通过FCount字段来判断项重要性。FCount字段代表“失败”的记录数,因而,如果各项的FCount值越大,则表明其与异常因素的关联愈紧密。步骤如下:
1)初始化变量threshold的值为0,该变量代表容忍各项失败的最大频数。
2)当哈希表已经满时,从哈希表中移除所有满足FCount<=threshold的项,并将threshold的值递增。
如图3所示,创建一个新的哈希表,各项的格式为(src, attrValue, FCount, SCount);其中,数据集合中存放有原始数据,包括数据源src、属性值attrValue。计数器中存放有FCount、SCount、Count数据。数据集合中的每一项数据经过判决器的判决,若目标项属性值为F,则由累加器将FCount加1;否则SCount加1。每做一次判决,累加器将Count加1。当count = maxCount时退出,attrValue, FCount, SCount均写入数据库中。
本发明中,近似的离线异常发现策略是指,前面所述的在线算法中,由于内存空间不足,从而哈希表无法将所有数据保存在内存之中。在离线算法之中,同样也会遇到类似问题。本发明中所采取的方案是近似处理,具体步骤如下:
1)针对从项数据库中提取出来的每一项(attrValue, FCount, SCount);
2)若能够在哈希表中找到对应的码,则将该项与哈希表中的现存项合并;
3)否则,将新项插入到哈希表中;若插入操作导致哈希表溢出,则利用前述哈希表的弹性变更策略删除哈希表中的部分项;
4)扫描完所有数据之后,利用哈希表计算各属性的信息增益,并返回最佳属性。
以下实施例中,分别按现有方法与本发明方法进行处理分析,并对比分析结果,以说明本发明方法的可行性和有益效果。
令关系表R包含1个源字段、n个分类属性和一个标记属性,分别被标注为A src , A 1, A 2, ..., A n , A tar 。令c表示R中的元组个数,即:c=|R|。目标属性A tar 有两种取值:失败(F)和成功(S)。任一属性A i 包含m i 项不同值;令c i,j 表示当A i 等于其第j个取值时目标属性A tar =F的元组数。要求:找出导致A tar =F的关键因素。
例如,表1描述了部分商场的银行卡消费记录。在该表中,“银行机构”为源属性A src ,“标记”为目标属性A tar ,此外还有5个分类属性。现在,拟针对各个不同的银行机构,分析出交易失败的原因。在该例子中,仅工行的卡存在失败(F)情况。进一步的分析会发现:所有在POS机终端p1上的消费交易都是失败的,而在其他POS机上面的交易记录都是成功(S)的。因此,可以推断出:导致工行当天交易失败的主要因素是POS机终端p1发生故障。
当关系R的规模不大时,传统的基于信息增益的决策树分类算法能够较好地解决这个问题。在这种方法中,首先计算各个属性的熵值,选取熵值最大的属性再次分组。循环多次,直至生成一颗规模适中的决策树。
算法1:
假设在关系R中有c F 个元组是失败的,总元组个数是c,则成功的元组有c-c F 个。关系R的信息(Information)可被描述为:
当Gain(A i )的值越大,则说明该属性约有利于区分目标属性A tar 。换句话说,E(A i )的值越小,则对Gain(A i )值的影响也越大。所以,问题就转化为如何寻找这样的属性A i 。
以上,算法1是一种简明的计算各属性信息增益的方法,已经见诸于相关文献。其基本的思路就是利用哈希表HashMap这种数据结构来记录各个属性分类之后的效果,并且选择一个分类效果比较明显的属性。
但是,当数据规模比较庞大时,上述方法则存在如下两个弊端,需要进一步的改进:
(1) 可能导致内存溢出。单个属性的不同项数可能很多,如果分别为每一个属性项都保留(attrValue, FCount, SCount)项,则可能无法会超出可用内存上限。
(2) 处理时间开销过大。算法1针对给定的A src 属性值重新扫描磁盘,并且计算最终结果。因此,当关系R的规模庞大时,需要较长时间才可获得查询结果。
鉴于简易解决方案(算法1)具有可能导致内存溢出和处理时间开销过大等两大负面作用,本发明提出了一种新的基于信息增益计算的海量数据异常侦测方法,通过两个不同阶段来处理这个问题,能够较好地解决这个问题。这两个阶段是离线处理阶段和在线处理阶段。在离线处理阶段,根据输入数据生成一些中间数据,中间数据量会小于原始数据,且分离存放。在在线处理阶段,根据中间数据量得到计算结果,且得到最终的熵值。
离线处理阶段:
相对于算法1,算法2的主要改进在于引入了maxCount参数,用于标识保存在内存中的(attrValue, FCount, SCount)项的最大数目。当数目过多时,则将当前已经采集到的数据信息放入到磁盘之中。参数maxCount的设置可以与计算机系统的实际内存量相关联。如果计算机系统的内存比较大,则maxCount的值可以大些;反之,则可以设得小一些。
另外,第11行将h中保留的所有项写入到数据库中去。如果已经预先知晓哪些属性可以衍生出较多项数的话,可以单独为这些属性创建数据库表,从而为在线处理部分提高性能。
在线处理阶段:
在线处理阶段能够利用数据库中保存的中间结果,较迅速地生成查询结果。详细代码如算法3所示。
算法3的基本思路是为一个指定的A src 属性值x找出与其匹配的F-S分布,其基本的思路与算法1类似。但是,算法3有两个比较重要的改进,从而能够提高查询处理性能。
首先,算法3并不直接从明细数据库R中读取数据库,而是从项数据库R'(attrValue, FCount, SCount)中读取数据。显然,项数据库R'中所保存的数据时明细数据库R的统计信息。一般来说,R'的规模会远小于R的规模,因此磁盘访问速度会更加快。
其次,当内存空间不够时(即:count=maxCount时),算法3会删除一些失败比较少的项,从而留出新的内存空间。这种做法会牺牲一定的精度,但是总的质量并未降低。仍然能够获得比较好的查询结果。
以下实施例内容,仍以表1所描述的数据集为例。
首先,介绍离线阶段的处理过程。令maxCount被设为20。当访问完第5条记录时,count的值被更新为17,项数据库R'如表2所示。之后,在处理第6条记录时,会产生“建行”的5条不同的记录,使得count的值达到了maxCount值,清空HashMap的内容之后,重新累计。最终的项数据库R'如表3所示。
接下来,再演示在线处理的环节。以工行为例,当maxCount的值被设为20时,所有项均可以同时放置在内存之中,其处理流程与常规算法无异(例如算法1所示)。当计算机的内存不足时,只能够设置更小的maxCount值。在此,假设maxCount的值被设为9。当检查完项数据库R'的前21条记录时,恰巧count=maxCount,而HashMap中保存的项则恰为表3中的前9条记录。当继续读第22条记录时,发现count将超出maxCount的值,必须减少HashMap中的项数。发现项(工行, 13:00, 0, 1)、(p2, 0, 1)和(工行,借记卡,0,1)的FCount值等于0,则从内存中移除。程序继续。最终,阅读完所有记录时,HashMap中的数据如表4所示。
最终,可以利用表4中的数据通过算法1来计算各属性的信息增益。可以看出,根据POS机来分类的话,无任何POS机上同时存在F和S两类标识,因而E(终端号)=0。相比而言,其他属性均不同程度地出现在一个分类同时具有S和F的现象。具体计算如下:
E(终端号) = (2/3) * I(2, 0) + (1/3) * I(0, 1) = 0
E(卡性质) = I( 2, 1) = 0.918
E(卡种类) = I(2, 2) = 1
E(商户) = (3/4) * I(2, 1) + (1/4) * I(0, 1) = 0.689
E(时段) = (1/3) * I(1, 0) + (2/3) * I(1, 1) = 0.667
很明显:E(终端号)的值最小,正是查询结果。
Claims (2)
1.一种基于信息增益计算的海量数据异常侦测方法,其特征在于,所述海量数据异常侦测方法为基于哈希表数据结构,包括离线阶段处理和在线阶段处理;其中,所述离线阶段处理是根据输入的原始数据生成中间数据;所述在线阶段处理是根据所述中间数据得到计算结果且得到最终的熵值;
其中,所述离线阶段处理包括如下步骤:
步骤A1:针对所述原始数据中每个数据项创建中间数据项;
步骤A2:若所述中间数据项能够在哈希表中找到对应码,则将该项与哈希表中的数据项合并;否则,将所述中间数据项插入哈希表中;
步骤A3:若所述步骤A1中插入操作导致所述中间数据所在的哈希表溢出,则将所述哈希表中的数据导出到磁盘,再清空哈希表;否则,当插入操作全部结束后退出;
其中,所述在线阶段处理包括如下步骤:
步骤B1:针对从数据库中提取出来的每一项,若能够在哈希表中找到对应的码,则将该项与哈希表中的现存项合并;否则,将新项插入到哈希表中;
步骤B2:若所述步骤B1中插入操作导致哈希表溢出,则利用哈希表的弹性变更策略删除哈希表中的部分项;
步骤B3:遍历完所有数据之后,利用哈希表计算各属性的信息增益,并返回最佳属性;其中,所述各属性的信息增益通过以下公式计算得到:
Gain(Ai)=I(cF,c-cF)-E(Ai);
式中,I代表信息,c代表某关系中所有元组个数,cF表示某关系中失败元组的个数,E(Ai)表示属性Ai的熵,Gain(Ai)表示属性Ai的信息增益;其中,Ai有vi个值;sj,1个元组满足目标属性Atar=F,sj,2个元组满足目标属性Atar=S。
2.如权利要求1所述基于信息增益计算的海量数据异常侦测方法,其特征在于,所述步骤B2中哈希表的弹性变更策略包括如下步骤:
步骤C1:初始化容忍失败的最大频数;
步骤C2:当哈希表溢出,从哈希表中移除所有失败频数小于所述容忍失败的最大频数,并且所述容忍失败的最大频数递增。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110414602.8A CN102567471B (zh) | 2011-12-13 | 2011-12-13 | 一种基于信息增益计算的海量数据异常侦测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110414602.8A CN102567471B (zh) | 2011-12-13 | 2011-12-13 | 一种基于信息增益计算的海量数据异常侦测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567471A CN102567471A (zh) | 2012-07-11 |
CN102567471B true CN102567471B (zh) | 2014-02-12 |
Family
ID=46412881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110414602.8A Expired - Fee Related CN102567471B (zh) | 2011-12-13 | 2011-12-13 | 一种基于信息增益计算的海量数据异常侦测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567471B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951503B (zh) * | 2015-05-18 | 2018-02-27 | 中国科学院信息工程研究所 | 一种新鲜度敏感的大数据概要信息维护及聚合值查询方法 |
CN105302657B (zh) * | 2015-11-05 | 2020-12-15 | 网易宝有限公司 | 一种异常情况分析方法和装置 |
CN107247763A (zh) * | 2017-05-31 | 2017-10-13 | 北京凤凰理理它信息技术有限公司 | 业务数据统计方法、装置、系统、存储介质及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101795215A (zh) * | 2010-01-28 | 2010-08-04 | 哈尔滨工程大学 | 网络流量异常检测方法及检测装置 |
-
2011
- 2011-12-13 CN CN201110414602.8A patent/CN102567471B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101795215A (zh) * | 2010-01-28 | 2010-08-04 | 哈尔滨工程大学 | 网络流量异常检测方法及检测装置 |
Non-Patent Citations (4)
Title |
---|
冯丽等.离群数据挖掘及其在电力负荷预测中的应用.《电力系统自动化》.2004,第28卷(第11期),41-44,86. |
张剑飞.数据挖掘中决策树分类方法研究.《长春师范学院学报(自然科学版)》.2005,第24卷(第1期),96-98. |
数据挖掘中决策树分类方法研究;张剑飞;《长春师范学院学报(自然科学版)》;20050331;第24卷(第1期);96-98 * |
离群数据挖掘及其在电力负荷预测中的应用;冯丽等;《电力系统自动化》;20040610;第28卷(第11期);41-44,86 * |
Also Published As
Publication number | Publication date |
---|---|
CN102567471A (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681733B2 (en) | Massive scale heterogeneous data ingestion and user resolution | |
US10614073B2 (en) | System and method for using data incident based modeling and prediction | |
US20200349169A1 (en) | Artificial intelligence (ai) based automatic data remediation | |
Koopman et al. | Credit cycles and macro fundamentals | |
US9047349B2 (en) | Methods for effective processing of time series | |
Ionescu et al. | Transforming financial decision-making: the interplay of AI, cloud computing and advanced data management technologies | |
US11442694B1 (en) | Merging database tables by classifying comparison signatures | |
CN110297866A (zh) | 基于日志分析的数据同步方法及数据同步装置 | |
Vu et al. | Feature selection methods and sampling techniques to financial distress prediction for Vietnamese listed companies | |
CN105159971B (zh) | 一种云平台数据检索方法 | |
CN102667734A (zh) | 用于检查分层型数据库中的指针的一致性的系统、方法以及程序 | |
CN110990529A (zh) | 企业的行业明细划分方法及系统 | |
CN102567471B (zh) | 一种基于信息增益计算的海量数据异常侦测方法 | |
Stundziene et al. | Future directions in nowcasting economic activity: A systematic literature review | |
CN104462462A (zh) | 基于业务变化频度的数据仓库建模方法和建模装置 | |
Wang et al. | Cloud-based in-memory columnar database architecture for continuous audit analytics | |
CN108121754B (zh) | 一种获取关键词属性组合的方法及装置 | |
Li et al. | Structural break in different stock index markets in China | |
CN117573687B (zh) | 一种基于ClickHouse数据库的业务表单反写/读取方法及系统 | |
Hammami et al. | Boom-bust cycles and their fundamental determinants: An empirical evidence of the Tunisian stock market | |
CN117217912A (zh) | 一种股权及发票交易的关联交易信贷风险识别方法及应用 | |
Alweshah et al. | Cluster based data reduction method for transaction datasets | |
Chen et al. | Management decision by combination two-level DEA and kernel-based mechanism | |
Zhang et al. | Data preprocessing for web data mining | |
Codreanu et al. | Accounting and financial data analysis data mining tools |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140212 Termination date: 20171213 |