馬冬來+張文靜+屈赟
摘要:介紹了Apriori算法的基本方法,并從數(shù)據(jù)項的建立、頻繁項集的連接以及規(guī)則生成三個方面對Apriori算法進行了改進,并利用改進后的算法挖掘出了可用于農(nóng)作物病害診斷的決策規(guī)則。
關(guān)鍵詞:農(nóng)業(yè)病蟲害;數(shù)據(jù)挖掘;關(guān)聯(lián)規(guī)則;Apriori算法;決策規(guī)則
中圖分類號: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年度河北農(nóng)業(yè)大學青年科學基金項目(qj201238)
作者簡介:馬冬來(1981-),男(回族),河北保定人,講師,碩士,主要從事人工智能方面的研究,(電話)13513220212(電子信箱)mdl119@163.com。
農(nóng)業(yè)病蟲害是影響農(nóng)作物產(chǎn)量的一個重要因素。中國是農(nóng)業(yè)大國,據(jù)統(tǒng)計,農(nóng)作物受病蟲害的影響每年可造成15%~25%的經(jīng)濟損失[1]。因此,農(nóng)業(yè)病蟲害的診斷與防治對農(nóng)業(yè)和經(jīng)濟的發(fā)展具有重要意義[2]。一直以來,對農(nóng)作物病害的診斷往往是依靠農(nóng)民或?qū)<业慕?jīng)驗并結(jié)合多種檢測手段進行。由于一些病蟲害的差異細微,很容易造成誤診。不同種類的致病病原物會使農(nóng)作物的葉部呈現(xiàn)不同的病斑形狀。因此,在病害診斷中可將葉部病斑作為農(nóng)作物病害的一個重要特征,對農(nóng)作物的病害進行診斷[3]。
數(shù)據(jù)挖掘又稱為數(shù)據(jù)庫中知識發(fā)現(xiàn)(Knowledge Discovery from Database,簡稱KDD),是一種決策支持過程[4,5]。利用數(shù)據(jù)挖掘技術(shù),可以在大量的農(nóng)業(yè)數(shù)據(jù)中進行深層次的數(shù)據(jù)信息的分析,從而獲得農(nóng)作物病蟲害產(chǎn)生的原因及環(huán)境等因素之間隱藏的內(nèi)在聯(lián)系,對于有效識別及預防農(nóng)作物病蟲害具有重要意義[6]。
1 Apriori算法
關(guān)聯(lián)規(guī)則挖掘是數(shù)據(jù)挖掘的一個重要領(lǐng)域,其目的是發(fā)現(xiàn)隱藏在數(shù)據(jù)庫中的各數(shù)據(jù)項集間深層次的關(guān)聯(lián)關(guān)系,分析出潛在的行為模式[7]。例如利用Apriori算法對大量的商品銷售記錄進行挖掘,可以發(fā)現(xiàn)不同商品之間存在的有價值的關(guān)聯(lián)關(guān)系。商家結(jié)合這些關(guān)系對商品目錄及擺放位置進行設(shè)計可以提高銷售額,還可以進行相關(guān)的商業(yè)決策[8]。Agrawal等[9]提出了挖掘關(guān)聯(lián)規(guī)則的Apriori算法,其核心是基于兩階段頻集思想的遞推算法。在Apriori算法中,關(guān)聯(lián)規(guī)則的挖掘分為兩步:利用候選項集生成頻繁項集,頻繁項集滿足“支持度大于最小支持度閾值”。利用最終的頻繁大項集生成關(guān)聯(lián)規(guī)則,規(guī)則滿足“置信度大于最小置信度”。其中的最小支持度閾值和最小置信度閾值都由用戶事先設(shè)定。
2 Apriori算法的改進
經(jīng)典Apriori算法挖掘出的關(guān)聯(lián)規(guī)則一般滿足“A∧B∧C->D∧E”的模式。這些關(guān)聯(lián)規(guī)則側(cè)重于描述數(shù)據(jù)庫中的一組對象之間相互的關(guān)聯(lián)關(guān)系。而在農(nóng)業(yè)病蟲害診斷的實際應用中,需要的是形如“A∧B∧C∧D->E”的規(guī)則。即根據(jù)A、B、C、D等的病害特征,可以推導出所患病害的種類。這就需要對經(jīng)典的Apriori算法進行一些改動。
表1是由歷史經(jīng)驗取得的一組關(guān)于某種農(nóng)作物病害的數(shù)據(jù)。以這組數(shù)據(jù)為例,介紹利用改進后的Apriori算法對農(nóng)業(yè)病害進行診斷的方法。
2.1 建立挖掘數(shù)據(jù)項
表1中每種病害的屬性下都有幾個不同的屬性值。如屬性“病斑顏色”共有“黑褐色病斑”、“粉紅色病斑”和“褐色病斑”3個屬性值。根據(jù)具體的病害數(shù)據(jù)的特點,將算法挖掘的數(shù)據(jù)項設(shè)置成“屬性.屬性值”的形式。各數(shù)據(jù)項的屬性對照表如表2。
結(jié)合屬性對照表,可將表1中原始的農(nóng)業(yè)病害數(shù)據(jù)轉(zhuǎn)換為適合挖掘的數(shù)據(jù)表(表3)。
2.2 挖掘頻繁項集
Apriori算法利用兩個頻繁(k-1)項集連接生成新的頻繁k項集,前提是,這兩個頻繁(k-1)項集的前(k-2)項相同。如對于頻繁3項集“1.3,2.2,3.2”和“1.3,2.2,3.3”,按照連接規(guī)則,應該生成新的候選4-項集“1.3,2.2,3.2,3.3”。根據(jù)表2,可知3.2和3.3是屬性“病斑形狀”的兩種不同取值(“半圓形”和“不規(guī)則”)。即項集3.2和3.3是互斥的關(guān)系,不可能共存。因此,對這種情況不進行連接。按照這種新的連接規(guī)則,對于表3的農(nóng)業(yè)病害數(shù)據(jù)庫進行挖掘,再經(jīng)過最小支持度10%的篩選,最終得到的為頻繁5-項集(表4)。
2.3 生成診斷規(guī)則
找出最大頻繁項集之后,Apriori便開始生成關(guān)聯(lián)規(guī)則。具體方法是:生成頻繁項集L的所有非空子集,并依次計算每個非空子集S的置信度。若置信度不小于用戶事先設(shè)定的最小置信度閾值,則生成一個關(guān)聯(lián)規(guī)則“S->(L-S)”。如對頻繁項集“1.1,2.1,3.1,4.1,5.1”可以生成規(guī)則“1.1∧2.1∧3.1->4.1∧5.1”,這樣,規(guī)則的右端也是多個屬性的集合。這種關(guān)聯(lián)規(guī)則側(cè)重于描述多個屬性項之間的關(guān)聯(lián)關(guān)系,而非一個可以推導出結(jié)論的決策規(guī)則。
在農(nóng)業(yè)病害診斷中,單單幾個病害屬性間的關(guān)聯(lián)關(guān)系是沒有實際意義的,需要挖掘出一個可以幫助專家進行病害診斷的決策規(guī)則。即形似“A∧B∧C->D”的規(guī)則。按照這種需求,首先對于類別屬性“病害名稱”(即5.1,5.2,5.3)只能出現(xiàn)在規(guī)則的右端;其次在規(guī)則的右端,除了“病害名稱”屬性之外,不能再出現(xiàn)其他的屬性。只有同時滿足這兩個條件的規(guī)則才是有意義的。
按照這一要求,在產(chǎn)生規(guī)則時,只需計算除“病害名稱”屬性之外的子集的置信度(保證規(guī)則的右端L-S為“病害名稱”)。如,對挖掘出的頻繁5-項集“1.1,2.1,3.1,4.1,5.1”,只計算除去“病害名稱”屬性5.1的所有子集的置信度,再按照“置信度不小于最小置信度閾值”的條件進行篩選,最后生成的決策規(guī)則如表5。
將表5和屬性對照表(表2)對照后,可轉(zhuǎn)換成直觀的規(guī)則,如表6所示。這樣專家就可以結(jié)合表6對農(nóng)作物的具體病害做出一個更為準確的判斷。
3 小結(jié)
農(nóng)作物病害的診斷具有重要的經(jīng)濟意義。利用數(shù)據(jù)挖掘技術(shù),按病害部位、病害特征等屬性對大量的數(shù)據(jù)進行分析,可以驗證已知的經(jīng)驗規(guī)律,揭示出未知的隱藏信息。進一步將其模型化,可以挖掘出隱藏的農(nóng)作物病蟲害的發(fā)病特征、變異等信息,帶來巨大的社會效益和經(jīng)濟效益。
另外,利用改進的Apriori算法還可以挖掘出醫(yī)學等其他領(lǐng)域的決策規(guī)則,并可以建立各種知識庫,建立專家系統(tǒng),拓展關(guān)聯(lián)規(guī)則Apriori算法的應用范圍。
參考文獻:
[1] 劉乃森,劉福霞.人工神經(jīng)網(wǎng)絡(luò)及其在植物保護中的應用[J].安徽農(nóng)業(yè)科學,2006,34(23):6237-6238.
[2] 黃光明.Apriori算法在農(nóng)業(yè)病蟲害分析中的應用[J].安徽農(nóng)業(yè)科學,2009,37(13):6028-6029.
[3] 金海月,宋 凱.決策樹算法在農(nóng)業(yè)病害診斷中的應用[J].當代農(nóng)機,2007(5):76-77.
[4] 張永賓.DM在分析客戶忠誠度的應用[J].商場現(xiàn)代化,2008(34):38-39.
[5] 李 斗,李弼程.一種神經(jīng)網(wǎng)絡(luò)文本分類器的設(shè)計與實現(xiàn)[J].計算機工程與應用,2005(17):107-109.
[6] 謝艷新.數(shù)據(jù)挖掘技術(shù)在水稻病蟲害系統(tǒng)中的設(shè)計與實現(xiàn)[J]. 湖北農(nóng)業(yè)科學,2011,50(11):2340-2342.
[7] 謝宗毅.關(guān)聯(lián)規(guī)則挖掘Apriori算法的研究與改進[J].杭州電子科技大學學報,2006,26(3):78-82.
[8] 朱 明.數(shù)據(jù)挖掘[M].合肥:中國科學技術(shù)大學出版社,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 生成診斷規(guī)則
找出最大頻繁項集之后,Apriori便開始生成關(guān)聯(lián)規(guī)則。具體方法是:生成頻繁項集L的所有非空子集,并依次計算每個非空子集S的置信度。若置信度不小于用戶事先設(shè)定的最小置信度閾值,則生成一個關(guān)聯(lián)規(guī)則“S->(L-S)”。如對頻繁項集“1.1,2.1,3.1,4.1,5.1”可以生成規(guī)則“1.1∧2.1∧3.1->4.1∧5.1”,這樣,規(guī)則的右端也是多個屬性的集合。這種關(guān)聯(lián)規(guī)則側(cè)重于描述多個屬性項之間的關(guān)聯(lián)關(guān)系,而非一個可以推導出結(jié)論的決策規(guī)則。
在農(nóng)業(yè)病害診斷中,單單幾個病害屬性間的關(guān)聯(lián)關(guān)系是沒有實際意義的,需要挖掘出一個可以幫助專家進行病害診斷的決策規(guī)則。即形似“A∧B∧C->D”的規(guī)則。按照這種需求,首先對于類別屬性“病害名稱”(即5.1,5.2,5.3)只能出現(xiàn)在規(guī)則的右端;其次在規(guī)則的右端,除了“病害名稱”屬性之外,不能再出現(xiàn)其他的屬性。只有同時滿足這兩個條件的規(guī)則才是有意義的。
按照這一要求,在產(chǎn)生規(guī)則時,只需計算除“病害名稱”屬性之外的子集的置信度(保證規(guī)則的右端L-S為“病害名稱”)。如,對挖掘出的頻繁5-項集“1.1,2.1,3.1,4.1,5.1”,只計算除去“病害名稱”屬性5.1的所有子集的置信度,再按照“置信度不小于最小置信度閾值”的條件進行篩選,最后生成的決策規(guī)則如表5。
將表5和屬性對照表(表2)對照后,可轉(zhuǎn)換成直觀的規(guī)則,如表6所示。這樣專家就可以結(jié)合表6對農(nóng)作物的具體病害做出一個更為準確的判斷。
3 小結(jié)
農(nóng)作物病害的診斷具有重要的經(jīng)濟意義。利用數(shù)據(jù)挖掘技術(shù),按病害部位、病害特征等屬性對大量的數(shù)據(jù)進行分析,可以驗證已知的經(jīng)驗規(guī)律,揭示出未知的隱藏信息。進一步將其模型化,可以挖掘出隱藏的農(nóng)作物病蟲害的發(fā)病特征、變異等信息,帶來巨大的社會效益和經(jīng)濟效益。
另外,利用改進的Apriori算法還可以挖掘出醫(yī)學等其他領(lǐng)域的決策規(guī)則,并可以建立各種知識庫,建立專家系統(tǒng),拓展關(guān)聯(lián)規(guī)則Apriori算法的應用范圍。
參考文獻:
[1] 劉乃森,劉福霞.人工神經(jīng)網(wǎng)絡(luò)及其在植物保護中的應用[J].安徽農(nóng)業(yè)科學,2006,34(23):6237-6238.
[2] 黃光明.Apriori算法在農(nóng)業(yè)病蟲害分析中的應用[J].安徽農(nóng)業(yè)科學,2009,37(13):6028-6029.
[3] 金海月,宋 凱.決策樹算法在農(nóng)業(yè)病害診斷中的應用[J].當代農(nóng)機,2007(5):76-77.
[4] 張永賓.DM在分析客戶忠誠度的應用[J].商場現(xiàn)代化,2008(34):38-39.
[5] 李 斗,李弼程.一種神經(jīng)網(wǎng)絡(luò)文本分類器的設(shè)計與實現(xiàn)[J].計算機工程與應用,2005(17):107-109.
[6] 謝艷新.數(shù)據(jù)挖掘技術(shù)在水稻病蟲害系統(tǒng)中的設(shè)計與實現(xiàn)[J]. 湖北農(nóng)業(yè)科學,2011,50(11):2340-2342.
[7] 謝宗毅.關(guān)聯(lián)規(guī)則挖掘Apriori算法的研究與改進[J].杭州電子科技大學學報,2006,26(3):78-82.
[8] 朱 明.數(shù)據(jù)挖掘[M].合肥:中國科學技術(shù)大學出版社,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 生成診斷規(guī)則
找出最大頻繁項集之后,Apriori便開始生成關(guān)聯(lián)規(guī)則。具體方法是:生成頻繁項集L的所有非空子集,并依次計算每個非空子集S的置信度。若置信度不小于用戶事先設(shè)定的最小置信度閾值,則生成一個關(guān)聯(lián)規(guī)則“S->(L-S)”。如對頻繁項集“1.1,2.1,3.1,4.1,5.1”可以生成規(guī)則“1.1∧2.1∧3.1->4.1∧5.1”,這樣,規(guī)則的右端也是多個屬性的集合。這種關(guān)聯(lián)規(guī)則側(cè)重于描述多個屬性項之間的關(guān)聯(lián)關(guān)系,而非一個可以推導出結(jié)論的決策規(guī)則。
在農(nóng)業(yè)病害診斷中,單單幾個病害屬性間的關(guān)聯(lián)關(guān)系是沒有實際意義的,需要挖掘出一個可以幫助專家進行病害診斷的決策規(guī)則。即形似“A∧B∧C->D”的規(guī)則。按照這種需求,首先對于類別屬性“病害名稱”(即5.1,5.2,5.3)只能出現(xiàn)在規(guī)則的右端;其次在規(guī)則的右端,除了“病害名稱”屬性之外,不能再出現(xiàn)其他的屬性。只有同時滿足這兩個條件的規(guī)則才是有意義的。
按照這一要求,在產(chǎn)生規(guī)則時,只需計算除“病害名稱”屬性之外的子集的置信度(保證規(guī)則的右端L-S為“病害名稱”)。如,對挖掘出的頻繁5-項集“1.1,2.1,3.1,4.1,5.1”,只計算除去“病害名稱”屬性5.1的所有子集的置信度,再按照“置信度不小于最小置信度閾值”的條件進行篩選,最后生成的決策規(guī)則如表5。
將表5和屬性對照表(表2)對照后,可轉(zhuǎn)換成直觀的規(guī)則,如表6所示。這樣專家就可以結(jié)合表6對農(nóng)作物的具體病害做出一個更為準確的判斷。
3 小結(jié)
農(nóng)作物病害的診斷具有重要的經(jīng)濟意義。利用數(shù)據(jù)挖掘技術(shù),按病害部位、病害特征等屬性對大量的數(shù)據(jù)進行分析,可以驗證已知的經(jīng)驗規(guī)律,揭示出未知的隱藏信息。進一步將其模型化,可以挖掘出隱藏的農(nóng)作物病蟲害的發(fā)病特征、變異等信息,帶來巨大的社會效益和經(jīng)濟效益。
另外,利用改進的Apriori算法還可以挖掘出醫(yī)學等其他領(lǐng)域的決策規(guī)則,并可以建立各種知識庫,建立專家系統(tǒng),拓展關(guān)聯(lián)規(guī)則Apriori算法的應用范圍。
參考文獻:
[1] 劉乃森,劉福霞.人工神經(jīng)網(wǎng)絡(luò)及其在植物保護中的應用[J].安徽農(nóng)業(yè)科學,2006,34(23):6237-6238.
[2] 黃光明.Apriori算法在農(nóng)業(yè)病蟲害分析中的應用[J].安徽農(nóng)業(yè)科學,2009,37(13):6028-6029.
[3] 金海月,宋 凱.決策樹算法在農(nóng)業(yè)病害診斷中的應用[J].當代農(nóng)機,2007(5):76-77.
[4] 張永賓.DM在分析客戶忠誠度的應用[J].商場現(xiàn)代化,2008(34):38-39.
[5] 李 斗,李弼程.一種神經(jīng)網(wǎng)絡(luò)文本分類器的設(shè)計與實現(xiàn)[J].計算機工程與應用,2005(17):107-109.
[6] 謝艷新.數(shù)據(jù)挖掘技術(shù)在水稻病蟲害系統(tǒng)中的設(shè)計與實現(xiàn)[J]. 湖北農(nóng)業(yè)科學,2011,50(11):2340-2342.
[7] 謝宗毅.關(guān)聯(lián)規(guī)則挖掘Apriori算法的研究與改進[J].杭州電子科技大學學報,2006,26(3):78-82.
[8] 朱 明.數(shù)據(jù)挖掘[M].合肥:中國科學技術(shù)大學出版社,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.
(責任編輯 王曉芳)