logo资料库

论文研究-决策树算法在电路故障诊断中的应用.pdf

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
Computer Engineering and Applications 计算机工程与应用 2013,49(12) 233 决策树算法在电路故障诊断中的应用 陈绍炜,王 聪,赵 帅 CHEN Shaowei, WANG Cong, ZHAO Shuai 西北工业大学 电子信息学院,西安 710129 School of Electronics and Information, Northwestern Polytechnical University, Xi’an 710129, China CHEN Shaowei, WANG Cong, ZHAO Shuai. Application of decision tree in circuit fault diagnosis. Computer Engineer- ing and Applications, 2013, 49(12):233-236. Abstract:According to the data mining and knowledge acquisition problems of PHM(Prognostic and Health Management), this paper proposes a fault diagnosis method based on J48 decision tree algorithm. It calculates the fault simulation data of CTSV filter by using Weka which is a kind of open-source data mining software, then cleans up attributes and selects parameters of the aircraft engine. The decision tree model has a high cross-validation rate and the classification effect. Key words:fault diagnosis; classify; J48 decision tree; Weka 摘 要:针对 PHM(Prognostic and Health Management)中数据挖掘和知识获取困难的问题,提出一种以 J48 决策树算法 为基础的故障诊断方法。采用了开源数据挖掘软件 Weka,对 CTSV 滤波器故障仿真数据进行计算,对故障数据进行属性 清理和参数选择。生成的决策树模型有很高的交叉验证率和分类效果。 关键词:故障诊断;分类;J48 决策树;Weka 文献标志码:A 中图分类号:TP391 doi:10.3778/j.issn.1002-8331.1301-0203 1 引言 故障预测和健康管理(PHM)是一种新型全方位的故 障检测、隔离、预测以及健康管理技术。其核心技术涉及 很广,包括先进传感器技术,数据预测技术,故障数据模式 识别技术以及基于知识的决策理论等[1-3]。 在故障诊断中一般需要对系统进行健康监测,也就是 数据采集,其目的是在系统运行过程中检测异常现象。将 监测参数的测量值和预定值进行对比,当监测参数超过阈 值时就会发出警报,然后基于检测到的异常情况来定位故 障。根据监测参数的健康数据和异常数据,建立一个基准 模型,用于故障诊断。当基准模型训练好以后,就可以将 新采集到的数据用于故障诊断,并且可以通过这些数据对 模型进行再训练,使模型不断更新[4-9]。 分类是知识挖掘过程中的重要的方法,也是故障诊断 中一个重要的手段。基于已知数据和预定义的类别,分类 器将实体分成对应的类。在过去几十年里,开发了很多分类 算法[10],也被广泛使用在各种应用中。最常用的分类算法类 型有决策树、神经网络、朴素贝叶斯、最邻近分类法(kNN)、 支持向量机(SVM)。神经网络、kNN 和 SVM 可以处理定 类或者事务处理数据,而朴素贝叶斯是不适合用于数值数 据的。其中决策树有最好的数据类型处理能力,可以直接 处理各种类型的数据。 决策树技术是一种对海量数据集进行分类的非常有 效的方法。通过构造决策树模型,提取有价值的分类规则, 帮助决策者作出准确的预测已经应用在很多领域。决策 树方法的起源是概念学习系统(Concept Learning System, CLS),然后发展到 ID3 方法达到高峰。但 ID3 算法是把信 息增益(信息熵)作为选择测试属性的标准,即树节点的选 择策略,在计算基于属性的信息熵时,公式比较复杂、计算 量较大,相应的复杂度也高,当数据量很大的时候很耗费 硬件资源,计算花费的时间较长[11-12]。 由于 ID3 算法存在上述这些问题,因此提出了 C4.5 算 法。C4.5 算法是 ID3 的改进,其中属性的选择依据同 ID3, J48 算法正是 C4.5 算法的 java 版本。其特点如下[13-15]: 基金项目:航空科学基金(No.2012ZD53051)。 作者简介:陈绍炜(1971—),男,副教授,硕士生导师,研究方向为嵌入式系统设计、测控系统开发、计算机网络和多媒体通信;王聪 (1987—),男,硕士研究生,研究方向为嵌入式系统设计和计算机控制技术。E-mail:nwpuce@qq.com 收稿日期:2013-01-18 修回日期:2013-02-28 文章编号:1002-8331(2013)12-0233-04
234 2013,49(12) Computer Engineering and Applications 计算机工程与应用 (1)用信息增益率来选择属性,克服了用信息增益选 择属性时偏向选择取值多的属性的不足; (2)在树构造过程中进行剪枝; (3)能够完成对连续属性的离散化处理; (4)能够对不完整数据进行处理。 基于这些特性,文章采用了 J48 决策树算法。 为了解决传统 PHM 专家系统知识获取以及更新问题, 本文将决策树理论中的 J48 决策树算法引入了电路故障模 型诊断中。通过开源数据挖掘软件 Weka 对数据进行分析 提取,建立了故障模型。 J48 决策树算法 2 2.1 决策树算法模型 J48 算法是基于信息论(Information Theory)的方法, 它以信息论为基础,以信息增益率作为衡量标准,同时也 克服了用信息增益来选择属性时偏向选择值多的属性的不 足,从而完成了对数据的归纳分类。信息增益率定义为: GainRatio(S A) = Gain(S A) Splitinfo(S A) 式中,Gain(S A) 与 ID3 算法中的信息增益相同: Gain(S A) = I(A) - å s i = 1 | A | A i | | ´ I(A ) i (1) (2) 式中,I(A) 代表 A 的信息熵,样本集 A 按类别属性 S 的 s 个 不同的取值,划分为 A 共 s 个子集,设 A 中有 1 m 个分类,则 ,…,A s ,A 2 I(A) = -å m j = 1 p j ´ lb( p ) j (3) 分裂信息 Splitinfo(S A) 则代表了按照属性 A 分裂样 本集 S 的广度和均匀性: n æ Splitinfo(S A) = -å çç è i | S | S i | | ö ÷÷ ø ´ lb | S | S i | | ö ÷÷ ø æ çç è (4) 到 S 其中,S 1 样本子集。 n 是 n 个不同值的属性 A 分割 S 而形成的 n 个 J48 算法具体算法步骤如下[16]: 输入:训练样本,候选属性的集合为 attribute_list 输出:由输入训练样本产生一棵决策树 (1)创建节点 N; (2)如果训练集为空,在返回节点 N 标记为 Failure; (3)如果训练集中的所有记录都属于同一个类别,则以该类 别标记节点 N; (4)如果候选属性为空,则返回 N 作为叶节点,标记为训练集 中最普通的类; (5)for each 候选属性 attribute_list; (6)if 候选属性是联系的 then; (7)对该属性进行离散化; (8)选择候选属性 attribute_list 中具有最高信息增益的属性 D; (9)标记节点 N 为属性 D; (10)for each 属性 D 的一致值 d; (11)由节点 N 长出一个条件为 D=d 的分支; (12)设 s 是训练集中 D=d 的训练样本的集合; (13)if s 为空; (14)加上一个树叶,标记为训练集中最普通的类; (15)else 加上一个有 J48(R-{D},C,s)返回的点。 2.2 决策树算法剪枝 当由此得到一棵完全生长的决策树后,J48 采用了一种 后剪枝方法。该方法可以避免树的高度无节制地增长,防 止数据过度拟合,同样也是用训练样本本身来估计剪枝前 后的误差,从而决定是否真正进行剪枝,其实质是为了消 除训练产生的集中孤立点和噪声方法中使用的公式如下: Pr é êê ë f - q q(1 - q)/N > z = c ù úú û (5) 式中,N 为实例的数量,f = E/N 为所观察到的误差率(其中 E 为 N 个实例中分类错误的个数),q 则为真实误差率,c 为 置信度(J48 算法中的一个熟人参数,其默认值为 0.25),z 为 对应于置信度 c 的标准差,其值可根据 c 的设定值通过查正 态分布表获得。通过公式(5)就可计算出真实误差率 q 的 一个置信区间上限,以此置信区间上限为该节点误差率 e 作一个悲观的估计(J48 算法采用悲观错误修剪法): e = f + z2 2N + Z f N - f 2 N + z2 4N 2 1 + z2 N (6) 通过判断剪枝前后 e 的大小,从而决定是否需要剪枝。 2.3 缺失数据处理 在某些情况下,可以获得的数据有可能缺失某些属性 的值。假如是样本集 S 中的一个训练实例,但其 属性 A 的值 A(s)缺失,这就需要 J48 决策树算法在进行训 练的时候对这些缺失数据进行处理。其中一种策略就是 赋给它该节点所对应的训练实例中该属性的最常见值;另 外一种比较复杂的策略则是为 A 的每个可能值赋予一个对 应的概率。例如,给定一个布尔属性 A,假如某节点包含 8 个 已 知 A=1 和 2 个 A=0 的 实 例 ,那 么 A(s)=1 的 概 率 就 是 0.8,而 A(s)=0 的概率则为 0.2。所以,实例 s 的 80%的概率 被分配到 A=1 的分支,20%的概率被分配到 A=0 分支。这 些片断样例(fractional examples)的目的是为了计算信息 增益。此外,如果还有第二个缺失值的属性需要被测试, 这些样例可以在后继的决策树分支中被进一步细分。J48 就是采用这种方法对缺少的属性值进行处理的。 3 故障诊断实例 3.1 模型建立 本文以 CTSV 滤波器为例,进行故障诊断分析,如图 1 所示。由于模拟电路中 80%以上的故障为单元件故障,这 里定义了 10 种电路状态,包括正常状态和 9 种单元件故障 状态,电路故障模式如表 1 所示。
陈绍炜,王 聪,赵 帅:决策树算法在电路故障诊断中的应用 2013,49(12) 235 R5 10 kΩ 7 C2 + 20 nF U3 + - Vo 5 R4 4 10 kΩ 0 C1 + 20 nF U2 + - 0 6 Vi 8 R1 9 10 kΩ R2 10 kΩ U1 + - 2 3 R3 10 kΩ 1 R7 7 kΩ 0 R6 3 kΩ 图 1 模拟故障测试电路 表 1 CTSV 滤波器电路故障模式 故障编号 故障描述 正常值 故障值 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 Normal R1 Short R2 Open R3 Short R4 Open R5 Short R6 Open R7 Short C1 Open C2 Short — 10 kΩ 10 kΩ 10 kΩ 10 kΩ 10 kΩ 3 kΩ 7 kΩ 20 nF 20 nF — 0.01 Ω 100 MΩ 0.01 Ω 100 MΩ 0.01 Ω 100 MΩ 0.01 Ω 100 μF 0.01 pF 采用 Multisim 软件对表 1 所示的每一种故障模式分别 进行 Monto-Carlo 分析。测试激励为阶跃信号,元件容差 设置为 10%,采集放大器 U3 输出的瞬态响应曲线信息。对 每个故障类仿真 40 次,对于所获取的 400 个样本,每个故 障类等间隔地选取 10 个数据作为训练样本,其余的作为测 试样本。即训练样本的总数为 100 个,测试样本总数为 300 个,作为对于训练模型的验证。 然后,采用多层小波包分解算法对采集到的故障样 本数据进行特征提取。鉴于 Harr 小波基具有紧支撑、零 调和性以及优良的正交性能,故采用这一基函数作为小 波包变换的基函数。对采集到的数据样本进行 3 层小波 包分解,并对第 3 层的每个系数能量值进行开方组成一个 9 维的特征样本,样本数据如表 2 所示(文本所限,只显示 2 位小数)。 表 2 故障能量值数据(示例) NO 1 2 3 4 5 6 7 8 9 10 A B 28.31 29.22 27.74 33.13 85.45 61.26 26.16 16.96 25.30 20.66 5.02 2.84 5.69 1.25 5.48 10.17 2.58 2.98 2.45 2.65 C 2.25 2.41 2.28 1.81 6.30 9.16 2.74 3.71 2.55 3.18 D 4.37 2.46 8.53 2.15 8.84 9.30 2.61 6.09 3.90 2.88 E 2.42 1.85 2.54 1.06 7.13 7.06 1.50 3.09 3.81 1.96 F 1.14 1.27 1.12 0.75 2.93 4.17 1.24 1.60 1.32 1.47 G 1.96 1.16 3.51 0.91 3.81 3.94 1.11 2.59 1.79 1.26 H 0.77 0.37 2.21 0.78 2.12 1.88 0.53 0.59 1.19 0.48 I 状态 0.77 0.30 0.42 0.29 2.06 1.56 0.43 0.43 0.98 0.30 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 在 Weka 中采用十折交叉验证的 J48 决策树来确定数 据集的分类精度。这是一种常用的测试方法,首先将数据 集分成 10 份,轮流将其中的 9 份作为训练数据,另外 1 份作 为测试数据,进行试验,每次试验都会获得一个相应的正 确率(或差错率)。然后对 10 次的结果的正确率(或差错 率)取平均,均值作为对决策树算法精度的估计。对样本 数据集进行测试,其分类精度为 67%,这一较低的分类精度 意味着数据集中有些属性和电路故障状态关联不大。所 以需要一个更高分类精度的数据集。通过预生成的决策 树将和输出关联不大的属性删掉,得到一个高分类精度的 数据集,如表 3 所示。 表 3 高分类精度数据(示例) NO 1 2 3 4 5 6 7 8 9 10 A 28.31 29.22 27.74 33.13 85.45 61.26 26.16 16.96 25.30 20.66 D 4.37 2.46 8.53 2.15 8.84 9.30 2.61 6.09 3.90 2.88 F 1.14 1.27 1.12 0.75 2.93 4.17 1.24 1.60 1.32 1.47 G 1.96 1.16 3.51 0.91 3.81 3.94 1.11 2.59 1.79 1.26 I 0.77 0.30 0.42 0.29 2.06 1.56 0.43 0.43 0.98 0.30 状态 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 表 3 所 示 的 高 分 类 精 度 数 据 集 的 整 体 分 类 精 度 是 96%,这比初始数据集分类精度高了很多。这表明 A,D,F, G,I 这 5 个属性和电路故障状态的关系比较紧密。信息增 益率越大意味着对结果诊断的重要性越大,5 个属性的信 息增益率如表 4 所示。 表 4 属性增益率 属性 信息增益率 A 0.79 D 0.24 F 0.58 G 0.19 I 0.58 在 Weka 中对表 3 所示的高分类精度数据集进行 J48 决 策树分析,预览生成的决策树,发现有些故障类型诊断错 误,对照数据集发现这是由于数据孤立点和噪声引起的。 为了限制决策树的规模,提高预测精度,需要对生成的决 策树进行剪枝,以消除这些干扰因素,防止数据过度拟合, 同样减小了模型对训练数据的依赖。剪枝后生成的决策 树如图 2 所示。 3.2 模型评价 生成决策树模型的训练数据十折交叉验证率为 96%, 训练数据集分类精度比较高,数据的一致性好,模型清晰, 和专业经验判断相符。使用该决策树模型对另外 300 组数 据进行预测,并和实际结果进行比较,预测准确率达到了 99.2%,说明使用此决策树模型对该电路故障数据进行预 测是比较适合的,同时说明用此方法对该类型电路进行故 障诊断是合理的。
236 2013,49(12) Computer Engineering and Applications 计算机工程与应用 Tree View A  29.216 42 > 29.216 42 A  21.865 93 > 21.865 93 G D I  0.923 64 > 0.923 64 F3(10.0) A  1.286 67 > 1.286 67  3.094 8 > 3.094 8  61.263 25 > 61.263 25 F9(10.0) F7(10.0) F D F5(10.0) F4(10.0)  1.351 19 > 1.351 19  6.232 89 > 6.232 89 F6(10.0/1.0) F1(10.0/1.0) A F2(10.0)  26.624 45 > 26.624 45 F8(10.0) F0(9.0) 图 2 决策树模型 4 结论 文章基于 Weka 平台采用 J48 决策树算法评估了 CTSV 滤波器的故障诊断数据集,通过关键参数选择、剪枝后生 成的决策树模型交叉验证率高。采用训练生成的故障模 型对测试数据进行预测,故障诊断准确率为 99.2%,达到了 预期的效果。结果充分说明了 J48 决策树算法在该类型模 拟电路故障诊断中进行数据挖掘、知识获取的有效性。 参考文献: [1] 孙博,康锐.故障预测与健康管理系统研究和应用现状综述[J]. 技术[C]//中国电子学会第十一届全国可靠性物理学术讨论会 论文集,北京,2005:283-290. [8] 韩国泰.航空电子的故障预测与健康管理技术[J].航空电子技 术,2009,40(1):30-38. [9] 彭宇,刘大同,彭喜元.故障预测与健康管理技术综述[J].电子 测量与仪器学报,2010,24(1):1-7. [10] Kotsiantis S B.Supervised machine learning:a review of classification techniques[C]//Proc of the 2007 Conf on Emerg- ing Artificial neering,2007. Intelligence Applications in Computer Engi- [11] Tan Pangning,Steinbach M,Kumar V.数据挖掘导论[M].范 系统工程与电子技术,2007,29(10):1762-1767. 明,范宏建,译.北京:人民邮电出版社,2006. [2] 康锐,Pecht M.故障诊断、预测与系统健康管理[M].[S.l.]:IEEE, [12] 毛国军,段立娟,王实.数据挖掘原理与算法[M].2 版.北京:清 2010. 华大学出版社,2007. [3] 艾红,周东华.动态系统的故障预测方法[J].华中科技大学学 [13] 冯少荣,尚文俊.基于样本选取的决策树改进算法[J].西南交 报,2009,37(S1):222-225. 通大学学报,2009,44(5):643-647. [4] 张叔农,谢劲松,康锐.电子产品健康监控和故障预测技术框 [14] 屈志毅,周海波.决策树算法的一种改进算法[J].计算机应用, 架[J].测控技术,2007,26(2):12-17. 2008,28(S1):141-143. [5] 孙博,赵宇,黄伟,等.电子产品健康状态监测和故障预测方法 的案例研究[J].系统工程与电子技术,2007,29(6):1012-1016. [6] 张宝珍,曾天翔.先进的故障预测与状态管理技术[J].测控技 术,2003,22(11):4-6. [7] 谢劲松.失效模型的形式与实时故障诊断预测的基本方法和 [15] 王桂芹,黄道.决策树算法研究及应用[J].电脑应用技术,2008 (1):1-7. [16] Karger D,Klein P.A randomized linear-time algorithm to find minimum spanning trees[J].Journal of the ACM,1995, 42(2):321-328.
分享到:
收藏