system: [SYSTEM]

user: 3. 基于数据挖掘的故障预警模块 数据挖掘(Data Mining)是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中，提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。数据挖掘常用的数据分析方法主要有：分类、回归分析、聚类、关联规则、特征、变化与差量分析、Web数据挖掘 [ 6 ] [ 7 ] 。 1) 分类是分析数据库中的一组数据对象，找出共同特征，并按分类模型将其划分成不同类别。常用的分类算法有：朴素贝叶斯、Logistic回归，决策树，支持向量机等。 2) 回归分析通过函数表达数据映射的关系来发现属性值之间的依赖关系。该算法应用到数据序列的预测及关系研究中。回归分析法是定量预测方法之一，依据事物内部因素变化的因果关系来预测事物未来的发展趋势。测报工作中常用的是一元线性回归和多元线性回归模型。 3) 和分类的数据类别划分不同，聚类算法是针对数据的相似性和差异性将一组数据分为几个类别。聚类的相同类别中数据间的相似性较大，不同类别间直接的相似性很小，跨类的数据关联性很低。 4) 关联规则可以根据一个数据项推导出其他相关数据项。关联规则的挖掘过程主要包括两个阶段：第一阶段为从海量原始数据中找出所有的高频项目组；第二阶段为从这些高频项目组中产生关联规则。 5) 特征分析是从数据库中的一组数据中提取出能够体现数据集总体特征的特征式。 6) 偏差包括：分类中的反常实例，模式的例外，观察结果对期望的偏差等，其目的是寻找观察结果与参照量之间有意义的差别。 7) Web数据挖掘是一项综合性技术，利用Web中的海量数据进行分析，各类信息，集中分析和处理，并根据分析结果找出先兆，对这些信息进行分析和处理，以便识别、分析、评价和管理危机。 基于数据挖掘技术的智慧城市照明监控系统中的故障预警模块实际是从海量数据中对各种属性值进行分类，当所选属性值正常的设备数据超过一定阈值达到一定次数后就设备发生故障的概率会大大增加，因此本文利用数据挖掘中的分类方法进行处理。其中决策树算法是涉及到分类问题时最常用的算法之一。主要原因：1) 决策树具有直观的分类器；2) 决策树分类算法速度高效；3) 分类准确率高。综上原因，本文利用决策树从智慧城市照明监控系统采集的各类状态数据中挖掘出有用数据，进行决策分析产生故障预警，解决传统故障报警具有滞后性的问题。 3.1. 决策树模型 决策树算法使用类似流程图树结构来组织数据被分成各种预定义类型，来提供给定数据集的描述，分类和概括。 决策树生成通过常分为学习和分类两个步骤。学习过程中，数据集被分为两个子集：训练集和测试集，创建训练集和测试集是评估数据挖掘模型的重要部分。从数据库中选取部分数据作为训练集，剩余部分数据作为测试集。将训练数据集划分后，决策树算法将训练数据作为输入，建立决策树模型。决策树模型类型的建立一般是自顶向下的递归构造，即：特征选择，决策树生成，修剪。首先从训练数据的属性中选择一个属性作为当前节点的分割条件，不同的标准决定了使用不同的决策树算法，决策树模型中最常见的ID3，CART，C4.5，C5.0算法。决策树生成是指按照选定的特征评估标准从上到下递归生成子节点，直到达到增长停止条件，然后停止决策树的增长。生成决策树之后，需要通过修剪来减少树的大小。 本文采用决策树中的C4.5算法建立智慧城市照明监控预警模型。C4.5决策树算法是基于信息熵的分类学习算法，通过最大化信息增益率来递归的选择属性，建立起决策树的节点，能够完成对不完整数据的处理和连续属性的离散化，并且具有产生的分类规则易于理解和分类准确率高的优点 [ 8 ] 。 设数据集D中共有|D|个数据，分为m个类 C = { C 1 ， C 2 ， ⋯ ， C m } 和n个属性 A = { A 1 ， A 2 ， ⋯ ， A m } ，其中第i个属性Ai有 ω 个不同的子集，数据集D被划分为 ω 个不相交子集 D i A ( 1 ≤ i ≤ ω ) ， | D i A | 表示子集 D i A 的样本数。C4.5算法建模的步骤如下 [ 9 ] ： 1) 对智慧城市照明监控系统中采集的原始数据集进行预处理，然后将数据集划分为训练数据集和测试数据。 2) 计算各种类别的信息熵，以确定样本中不同类别出现的不确定性之和，如式1所示。 E n t r o p y ( D ) = − ∑ i = 1 m P ( C i ) log 2 ( P ( C i ) ) (1) 3) 计算各个属性的信息增益，如式2，3所示： E n t r o p y   A ( D ) = − ∑ i = 1 ω | D i A | | D | × E n t r o p y ( D i A ) (2) G a i n ( A i ) = E n t r o p y ( D ) − E n t r o p y   A ( D ) (3) 其中Entropy A(D)为属性A划分数据集D后，新分类条件下的信息熵，Gain(A i )为信息增益。 4) 计算每个属性的信息增益率： S p l i t ( D ) = − ∑ i = 1 ω | D i A | | D | log 2 | D i A | | D | (4) G a i n R a t i o ( A i ) = G a i n ( A i ) S p l i t ( D ) (5) 5) 选择信息增益率最大的属性A为根属性进行分裂，直到达到终止条件，得到期望预测的目标类，其中叶子节点的所有数据对象属于同一类。 6) 决策树剪枝。决策树剪枝的目的是为简化最终得到的树模型，避免出现过多拟合现象。基本剪枝策略：预先剪枝和后剪枝。C4.5算法遵循后剪枝的方法。 3.2. 算法应用 对智慧城市照明监控系统中的设备采集进行预处理，经过算法训练和测试后生成决策树结构，对C4.5算法的树结构对分类规则进行描述，生成的分类规则集成进系统实现预报警功能。 1) 数据的收集和预处理 以单灯设备为例，智慧城市照明监控系统中采集数据包括设备编号、状态、开始时间、结束时间、电压、电流、功率、功率因数等数据，如图3所示。 图3. 完整数据集 根据算法要求，去除不需要的属性：设备编号、开始时间和结束时间。从数据库中提取出单灯设备的状态类型和电压、电流、功率、功率因数等各类数据，并根据概率统计的方法确定一定区域范围内的数据作为数据集。在实际采集数据过程中，由于通信状态的影响可能会导致一些数据采集失败，系统中一般标志为：无信息返回。这类“无信息返回”数据对于数据处理无任何意义，因此需要在数据预处理阶段将此类数据删除，保留设备的有效数据。 2) 应用于智慧城市照明监控系统中的故障预警算法 算法：GC4.5tree(T， T_attributelist) 输入： 用作训练数据的照明设备数据 T 当前候选预测属性集合T _attributelist 输出：用于智慧城市照明监控预警的C4.5决策树 方法： ① 创建新结点N ② if T中所有照明设备数据的故障属性相同记为C返回N作为叶子结点，以C为类标； ③ if T_attribelist为空返回N作为叶子结点，标记为T中最多的类标C； ④ 计算T_attribelist中每个属性的信息增益率，找到最高值的属性； ⑤ if属性为连续性找到该属性的分割阈值； ⑥ for每个N长出的新叶子结点 ⑦ if叶子结点的子集T'为空 ⑧ 分裂为一个新叶子结点，标记为T'中最多的类标C； ⑨ else ⑩ 在该叶子结点上执行GC4.5tree(T， T_attributelist)； ⑪ endfor ⑫ 返回N。