馬冬來+張文靜+屈赟
摘要:介紹了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.
(責任編輯 王曉芳)