基于改进Apriori算法的农业病虫害诊断
2014-03-22马冬来张文静屈赟
马冬来+张文静+屈赟
摘要:介绍了Apriori算法的基本方法,并从数据项的建立、频繁项集的连接以及规则生成三个方面对Apriori算法进行了改进,并利用改进后的算法挖掘出了可用于农作物病害诊断的决策规则。
关键词:农业病虫害;数据挖掘;关联规则;Apriori算法;决策规则
中图分类号:TP311 文献标识码:A 文章编号:0439-8114(2014)01-0203-03
Agriculture Disease Diagnosis Based on Improved Apriori Algorithm
MA Dong-lai1,ZHANG Wen-jing2a,QU Yun2b
(1. Hebei Software Institute, Baoding 071000,Hebei, China; 2a. College of Information Science & Technology;
2b. Academic Affairs Office, Agricultural University of Hebei, Baoding 071001, Hebei, China)
Abstract: The basic method of Apriori algorithm was introduced and modified in the three aspects including data item establishment, frequent item sets connection and the rule generation. Decision rule was set up for diagnosing drop diseases by the improved algorithm.
Key words: crop diseases and pests; data mining; association rule; Apriori algorithm; decision rule
收稿日期:2013-05-10
基金项目:河北省教育厅资助科研项目(Q2012139);2011年度河北农业大学青年科学基金项目(qj201238)
作者简介:马冬来(1981-),男(回族),河北保定人,讲师,硕士,主要从事人工智能方面的研究,(电话)13513220212(电子信箱)mdl119@163.com。
农业病虫害是影响农作物产量的一个重要因素。中国是农业大国,据统计,农作物受病虫害的影响每年可造成15%~25%的经济损失[1]。因此,农业病虫害的诊断与防治对农业和经济的发展具有重要意义[2]。一直以来,对农作物病害的诊断往往是依靠农民或专家的经验并结合多种检测手段进行。由于一些病虫害的差异细微,很容易造成误诊。不同种类的致病病原物会使农作物的叶部呈现不同的病斑形状。因此,在病害诊断中可将叶部病斑作为农作物病害的一个重要特征,对农作物的病害进行诊断[3]。
数据挖掘又称为数据库中知识发现(Knowledge Discovery from Database,简称KDD),是一种决策支持过程[4,5]。利用数据挖掘技术,可以在大量的农业数据中进行深层次的数据信息的分析,从而获得农作物病虫害产生的原因及环境等因素之间隐藏的内在联系,对于有效识别及预防农作物病虫害具有重要意义[6]。
1 Apriori算法
关联规则挖掘是数据挖掘的一个重要领域,其目的是发现隐藏在数据库中的各数据项集间深层次的关联关系,分析出潜在的行为模式[7]。例如利用Apriori算法对大量的商品销售记录进行挖掘,可以发现不同商品之间存在的有价值的关联关系。商家结合这些关系对商品目录及摆放位置进行设计可以提高销售额,还可以进行相关的商业决策[8]。Agrawal等[9]提出了挖掘关联规则的Apriori算法,其核心是基于两阶段频集思想的递推算法。在Apriori算法中,关联规则的挖掘分为两步:利用候选项集生成频繁项集,频繁项集满足“支持度大于最小支持度阈值”。利用最终的频繁大项集生成关联规则,规则满足“置信度大于最小置信度”。其中的最小支持度阈值和最小置信度阈值都由用户事先设定。
2 Apriori算法的改进
经典Apriori算法挖掘出的关联规则一般满足“A∧B∧C->D∧E”的模式。这些关联规则侧重于描述数据库中的一组对象之间相互的关联关系。而在农业病虫害诊断的实际应用中,需要的是形如“A∧B∧C∧D->E”的规则。即根据A、B、C、D等的病害特征,可以推导出所患病害的种类。这就需要对经典的Apriori算法进行一些改动。
表1是由历史经验取得的一组关于某种农作物病害的数据。以这组数据为例,介绍利用改进后的Apriori算法对农业病害进行诊断的方法。
2.1 建立挖掘数据项
表1中每种病害的属性下都有几个不同的属性值。如属性“病斑颜色”共有“黑褐色病斑”、“粉红色病斑”和“褐色病斑”3个属性值。根据具体的病害数据的特点,将算法挖掘的数据项设置成“属性.属性值”的形式。各数据项的属性对照表如表2。
结合属性对照表,可将表1中原始的农业病害数据转换为适合挖掘的数据表(表3)。
2.2 挖掘频繁项集
Apriori算法利用两个频繁(k-1)项集连接生成新的频繁k项集,前提是,这两个频繁(k-1)项集的前(k-2)项相同。如对于频繁3项集“1.3,2.2,3.2”和“1.3,2.2,3.3”,按照连接规则,应该生成新的候选4-项集“1.3,2.2,3.2,3.3”。根据表2,可知3.2和3.3是属性“病斑形状”的两种不同取值(“半圆形”和“不规则”)。即项集3.2和3.3是互斥的关系,不可能共存。因此,对这种情况不进行连接。按照这种新的连接规则,对于表3的农业病害数据库进行挖掘,再经过最小支持度10%的筛选,最终得到的为频繁5-项集(表4)。
2.3 生成诊断规则
找出最大频繁项集之后,Apriori便开始生成关联规则。具体方法是:生成频繁项集L的所有非空子集,并依次计算每个非空子集S的置信度。若置信度不小于用户事先设定的最小置信度阈值,则生成一个关联规则“S->(L-S)”。如对频繁项集“1.1,2.1,3.1,4.1,5.1”可以生成规则“1.1∧2.1∧3.1->4.1∧5.1”,这样,规则的右端也是多个属性的集合。这种关联规则侧重于描述多个属性项之间的关联关系,而非一个可以推导出结论的决策规则。
在农业病害诊断中,单单几个病害属性间的关联关系是没有实际意义的,需要挖掘出一个可以帮助专家进行病害诊断的决策规则。即形似“A∧B∧C->D”的规则。按照这种需求,首先对于类别属性“病害名称”(即5.1,5.2,5.3)只能出现在规则的右端;其次在规则的右端,除了“病害名称”属性之外,不能再出现其他的属性。只有同时满足这两个条件的规则才是有意义的。
按照这一要求,在产生规则时,只需计算除“病害名称”属性之外的子集的置信度(保证规则的右端L-S为“病害名称”)。如,对挖掘出的频繁5-项集“1.1,2.1,3.1,4.1,5.1”,只计算除去“病害名称”属性5.1的所有子集的置信度,再按照“置信度不小于最小置信度阈值”的条件进行筛选,最后生成的决策规则如表5。
将表5和属性对照表(表2)对照后,可转换成直观的规则,如表6所示。这样专家就可以结合表6对农作物的具体病害做出一个更为准确的判断。
3 小结
农作物病害的诊断具有重要的经济意义。利用数据挖掘技术,按病害部位、病害特征等属性对大量的数据进行分析,可以验证已知的经验规律,揭示出未知的隐藏信息。进一步将其模型化,可以挖掘出隐藏的农作物病虫害的发病特征、变异等信息,带来巨大的社会效益和经济效益。
另外,利用改进的Apriori算法还可以挖掘出医学等其他领域的决策规则,并可以建立各种知识库,建立专家系统,拓展关联规则Apriori算法的应用范围。
参考文献:
[1] 刘乃森,刘福霞.人工神经网络及其在植物保护中的应用[J].安徽农业科学,2006,34(23):6237-6238.
[2] 黄光明.Apriori算法在农业病虫害分析中的应用[J].安徽农业科学,2009,37(13):6028-6029.
[3] 金海月,宋 凯.决策树算法在农业病害诊断中的应用[J].当代农机,2007(5):76-77.
[4] 张永宾.DM在分析客户忠诚度的应用[J].商场现代化,2008(34):38-39.
[5] 李 斗,李弼程.一种神经网络文本分类器的设计与实现[J].计算机工程与应用,2005(17):107-109.
[6] 谢艳新.数据挖掘技术在水稻病虫害系统中的设计与实现[J]. 湖北农业科学,2011,50(11):2340-2342.
[7] 谢宗毅.关联规则挖掘Apriori算法的研究与改进[J].杭州电子科技大学学报,2006,26(3):78-82.
[8] 朱 明.数据挖掘[M].合肥:中国科学技术大学出版社,2002.
[9] AGRAWAL R, SHAFER J C. Parallel mining of association rules: Design, implementation, and experience[J]. IEEE Trans Knowledge and Data Engineering,1996(8):962-969.
(责任编辑 王晓芳)
2.3 生成诊断规则
找出最大频繁项集之后,Apriori便开始生成关联规则。具体方法是:生成频繁项集L的所有非空子集,并依次计算每个非空子集S的置信度。若置信度不小于用户事先设定的最小置信度阈值,则生成一个关联规则“S->(L-S)”。如对频繁项集“1.1,2.1,3.1,4.1,5.1”可以生成规则“1.1∧2.1∧3.1->4.1∧5.1”,这样,规则的右端也是多个属性的集合。这种关联规则侧重于描述多个属性项之间的关联关系,而非一个可以推导出结论的决策规则。
在农业病害诊断中,单单几个病害属性间的关联关系是没有实际意义的,需要挖掘出一个可以帮助专家进行病害诊断的决策规则。即形似“A∧B∧C->D”的规则。按照这种需求,首先对于类别属性“病害名称”(即5.1,5.2,5.3)只能出现在规则的右端;其次在规则的右端,除了“病害名称”属性之外,不能再出现其他的属性。只有同时满足这两个条件的规则才是有意义的。
按照这一要求,在产生规则时,只需计算除“病害名称”属性之外的子集的置信度(保证规则的右端L-S为“病害名称”)。如,对挖掘出的频繁5-项集“1.1,2.1,3.1,4.1,5.1”,只计算除去“病害名称”属性5.1的所有子集的置信度,再按照“置信度不小于最小置信度阈值”的条件进行筛选,最后生成的决策规则如表5。
将表5和属性对照表(表2)对照后,可转换成直观的规则,如表6所示。这样专家就可以结合表6对农作物的具体病害做出一个更为准确的判断。
3 小结
农作物病害的诊断具有重要的经济意义。利用数据挖掘技术,按病害部位、病害特征等属性对大量的数据进行分析,可以验证已知的经验规律,揭示出未知的隐藏信息。进一步将其模型化,可以挖掘出隐藏的农作物病虫害的发病特征、变异等信息,带来巨大的社会效益和经济效益。
另外,利用改进的Apriori算法还可以挖掘出医学等其他领域的决策规则,并可以建立各种知识库,建立专家系统,拓展关联规则Apriori算法的应用范围。
参考文献:
[1] 刘乃森,刘福霞.人工神经网络及其在植物保护中的应用[J].安徽农业科学,2006,34(23):6237-6238.
[2] 黄光明.Apriori算法在农业病虫害分析中的应用[J].安徽农业科学,2009,37(13):6028-6029.
[3] 金海月,宋 凯.决策树算法在农业病害诊断中的应用[J].当代农机,2007(5):76-77.
[4] 张永宾.DM在分析客户忠诚度的应用[J].商场现代化,2008(34):38-39.
[5] 李 斗,李弼程.一种神经网络文本分类器的设计与实现[J].计算机工程与应用,2005(17):107-109.
[6] 谢艳新.数据挖掘技术在水稻病虫害系统中的设计与实现[J]. 湖北农业科学,2011,50(11):2340-2342.
[7] 谢宗毅.关联规则挖掘Apriori算法的研究与改进[J].杭州电子科技大学学报,2006,26(3):78-82.
[8] 朱 明.数据挖掘[M].合肥:中国科学技术大学出版社,2002.
[9] AGRAWAL R, SHAFER J C. Parallel mining of association rules: Design, implementation, and experience[J]. IEEE Trans Knowledge and Data Engineering,1996(8):962-969.
(责任编辑 王晓芳)
2.3 生成诊断规则
找出最大频繁项集之后,Apriori便开始生成关联规则。具体方法是:生成频繁项集L的所有非空子集,并依次计算每个非空子集S的置信度。若置信度不小于用户事先设定的最小置信度阈值,则生成一个关联规则“S->(L-S)”。如对频繁项集“1.1,2.1,3.1,4.1,5.1”可以生成规则“1.1∧2.1∧3.1->4.1∧5.1”,这样,规则的右端也是多个属性的集合。这种关联规则侧重于描述多个属性项之间的关联关系,而非一个可以推导出结论的决策规则。
在农业病害诊断中,单单几个病害属性间的关联关系是没有实际意义的,需要挖掘出一个可以帮助专家进行病害诊断的决策规则。即形似“A∧B∧C->D”的规则。按照这种需求,首先对于类别属性“病害名称”(即5.1,5.2,5.3)只能出现在规则的右端;其次在规则的右端,除了“病害名称”属性之外,不能再出现其他的属性。只有同时满足这两个条件的规则才是有意义的。
按照这一要求,在产生规则时,只需计算除“病害名称”属性之外的子集的置信度(保证规则的右端L-S为“病害名称”)。如,对挖掘出的频繁5-项集“1.1,2.1,3.1,4.1,5.1”,只计算除去“病害名称”属性5.1的所有子集的置信度,再按照“置信度不小于最小置信度阈值”的条件进行筛选,最后生成的决策规则如表5。
将表5和属性对照表(表2)对照后,可转换成直观的规则,如表6所示。这样专家就可以结合表6对农作物的具体病害做出一个更为准确的判断。
3 小结
农作物病害的诊断具有重要的经济意义。利用数据挖掘技术,按病害部位、病害特征等属性对大量的数据进行分析,可以验证已知的经验规律,揭示出未知的隐藏信息。进一步将其模型化,可以挖掘出隐藏的农作物病虫害的发病特征、变异等信息,带来巨大的社会效益和经济效益。
另外,利用改进的Apriori算法还可以挖掘出医学等其他领域的决策规则,并可以建立各种知识库,建立专家系统,拓展关联规则Apriori算法的应用范围。
参考文献:
[1] 刘乃森,刘福霞.人工神经网络及其在植物保护中的应用[J].安徽农业科学,2006,34(23):6237-6238.
[2] 黄光明.Apriori算法在农业病虫害分析中的应用[J].安徽农业科学,2009,37(13):6028-6029.
[3] 金海月,宋 凯.决策树算法在农业病害诊断中的应用[J].当代农机,2007(5):76-77.
[4] 张永宾.DM在分析客户忠诚度的应用[J].商场现代化,2008(34):38-39.
[5] 李 斗,李弼程.一种神经网络文本分类器的设计与实现[J].计算机工程与应用,2005(17):107-109.
[6] 谢艳新.数据挖掘技术在水稻病虫害系统中的设计与实现[J]. 湖北农业科学,2011,50(11):2340-2342.
[7] 谢宗毅.关联规则挖掘Apriori算法的研究与改进[J].杭州电子科技大学学报,2006,26(3):78-82.
[8] 朱 明.数据挖掘[M].合肥:中国科学技术大学出版社,2002.
[9] AGRAWAL R, SHAFER J C. Parallel mining of association rules: Design, implementation, and experience[J]. IEEE Trans Knowledge and Data Engineering,1996(8):962-969.
(责任编辑 王晓芳)