数据挖掘算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Timeweaver: a Genetic Algorithm for Identifying Predictive Patterns in Sequences of Events
Abstract
从过去的序列事件学习预测未来事件是非常重要的。本文描述了Timeweaver,一个基于遗传算法的机器学习系统,可以通过识别数据中的预测性的临时和序列模式来解决事件预测问题。Timeweaver系统被用来预测通信设备故障。Introduction
本文的重点是从时间标记事件序列中预测特定类型的未来事件,称之为目标事件。从告警信息日志中预测通信设备故障就是其中的一个例子。由于机器学习和统计方法不太适用于此类问题,本文采用遗传算法来解决事件预测问题。本文给出Timeweaver的详细描述,其可以通过识别数据中预测模式来解决罕见事件预测问题。
The general approach
解决事件预测问题包括两个步骤:
第一步,使用遗传算法来寻找预测模式的空间,为了确定一套模式,可以很好地独立预测目标事件的子集和全面地预测大多数目标事件。
第二步,从最好到最坏对模式进行排序,主要根据它们预测的精度,并且除去冗余的模式。
The genetic algorithm
对于事件预测的评估方法
使用信息检索度量其称为F-measure,其定义如下式。 的值,是控制回召精确性的相对重要性,其随着GA的每次迭代而改变,以便在0和1值之间循环使用。
Creating prediction rule建立预测规则
描述了一个有效的算法,用来对通过遗传算法得到的预测模式进行排序和去除冗余模式。
Results
本文研究了从时间序列数据中预测带有分类特征的罕见事件。说明了罕见事件预测问题如何配置成机器学习问题。解释了怎样通过Timeweaver,基于遗传算法的机器学习系统来解决这一类问题,其通过未修改的事件序列数据来识别预测时间和序列模式。
Predicting Telecommunication Equipment Failures from Sequences of Network Alarms
Abstract
本文描述了一个时间数据挖掘系统称为Timeweaver,用于从网络告警信息日志中识别通信设备的故障。
Project Overview
在数据挖掘技术出现之前,用来在故障发生前识别该故障的系统有: AT&T’s ANSWER(Automated Network Surveillance with Expert Rules) system,但是其知识获取过程费时并且昂贵、通常不能获取重要的定量关系。
数据挖掘技术的出现极大的帮助了自动识别数据中的模式,进而有利于网络性能的监控管理,作者介绍了一个数据挖掘系统Timeweaver——从网络告警日志信息中识别预测通信设备故障。
本文提到的数据挖掘就是要识别网络告警日志里面的模式,可以被用来预测通讯设备的故障。
KDD过程(Knowledge Discovery Database知识发现数据库)
理解数据挖掘问题
KDD过程的第一步包括理解应用领域以及KDD任务的目标。
在本例中,我们需要理解以前的相关工作(ANSWER expert system),目标是预测个体组件的故障。
对某个部件失效的正确预测,是指这个预测结果在警告时间至监控时间内发生。警告时间是指在真正的失效发生前,用户可以对预测的失效进行足够的响应的时间;监控时间让用户对预测到的特征进行控制和处理。
模式语言:
1)因为告警可以被一些不相关的问题引起,所以模式语言应该能够具体说明告
警和模式的正确匹配。
2)因为某些故障会在不同的时间以不同的方式表现出来,所以模式语言应该保
证在模式中,所有的告警顺序不会被改变。
3)因为时间是一个重要的因素,并且系统行为会因为错误的响应而发生改变,
所以一个模式应该与一个时间段关联起来。
选择目标数据集
目标数据集由通过系统的两个数据控制中心之一的数据库中收集的两周的告警数据组成。因为告警数量很多,并且每个告警的属性也很多,因此经过筛选选择了其中5个属性:
1)告警产生的时间
2)产生告警的设备的ID
3)设备的类型
4)告警的特征码
5)告警的严重程度
预处理及转化数据
因为不用区别不同类型的故障,各种的故障告警被一个通用的故障告警替换。由于日常维护测试会引起失败的组件,从而产生额外的故障告警。因此使用一个简单程序应用到目标数据集来去除冗余的故障告警。
数据挖掘
主要包括选择数据挖掘任务和适用的挖掘算法,数据挖掘任务就是预测任务,而选择的算法是时态数据挖掘算法(temporal data mining algorithm)选择挖掘算法时需要注意,有些设备故障很少产生并且不容易预测,考虑到这些特征,数据挖掘算法需要寻找很少发生的模式并且具有相当低的预测精度。基于遗传的数据挖掘算法可以解决这一问题。
结果解释
数据挖掘会产生一系列模式来预测组件故障,比如pattern x可以导出y device failure。模式回召率是其预测的故障所占百分比,模式精度是预测正确的时间所占的百分比。
为了帮助选择所生成模式的最适当子集,我们的数据挖掘软件从最高到最低的精确度将模式进行排序,然后使用该排序来生成精度/召回率曲线。
知识合并
KDD的最后一步就是将发现的知识进行合并,这是通过记录和分发关键结果来实现的。最重要的是还将结果以规则的形式合并到了ANSWER系统中。
数据挖掘算法
本文开发了Timeweaver 数据挖掘软件包。Timeweaver是一个基于遗传算法的数据挖掘系统,为了解决事件预测问题而促进了预测模式的发展。采用遗传算法的一个重要因素是,大多数已有的方法都不适用于此处的数据挖掘任务。例如,规则和决策树不适用,是因为这两种方法主要用在分类的实例上,而本文方法却包含了事件流。发现事件间的模式,需要考虑可以直接在可能模式的空间内搜索的方法。考虑到数据挖掘任务的本质以及关于模式语言的需求,模式的空间是巨大的。考虑到预测任务的困难性以及告警之间的关系在鉴别错误中至关重要,我们认为贪婪算法不能充分地探索搜索空间。综上,选择了遗传算法,该方法具有在大范围搜索空间内高效的搜索能力。
设计遗传算法的第一个问题是如何在总量中编码每个个体(The first issue in designing a genetic algorithm is how to encode each individual in the population)。在这个例子中,每个个体代表一个模式。Timeweaver中的模式由一序列的模式-事件(pattern-events)表示,每个模式-事件大体上相当于数据集中的一个事件(ie,这个项目中提到的告警)。模式也有以下扩展:
1)每个模式-事件的特征值可能采用一个通配符值(wildcard value),
2)连续的pattern-events间指定了有序的约束(ordering constraints)
3)一个模式的持续时间与每一个模式相关联
一个模式是匹配一个序列的事件的,如果1)模式中每个的模式-事件能够匹配这个序列中的事件,2)服从了模式中指定的有序的约束,3)在这个匹配中涉及到的所有事件都在一个时间段内发生,且没有超过模式持续时间。例如:
在这个通信领域,每个pattern-event形如
351:
新的模式是由已有模式结合一个交叉(crossover)操作符产生的,或者通过一个变化(mutation)操作符修改已有模式产生的。用于结合或mutation的已有模式