葉 煜 李 敏 文 燕
(成都農業科技職業學院 信息技術分院,四川 成都611130)
我國是一個傳統農業大國。農業生產、管理和經營產生了大量的農業數據。這些原始農業數據,需要經過分析、處理、提煉,才能轉換為有意義的信息,成為有價值的知識。數據挖掘技術可以有效地從海量的農業數據中探索出各種因素之間的聯系,從而發現其中隱藏的規律,它正是農業生產經營活動所需要的、能夠引導農業高效生產的技術。通過數據挖掘技術獲得的信息和知識可以應用于農業生產經營活動的各個領域從而實現這些信息和知識的價值。
分類是數據挖掘中的一項非常重要和關鍵的任務,利用分類技術能夠從數據集中提取描述數據類的一個函數或模型——即分類器,從而把數據集中的每個對象歸結到某個已知的對象類中。從機器學習的觀點,分類技術是一種有監督的學習,通過在一組已知類別標號的樣本中,訓練某種分類器,從而具有能夠預測某種未知數據類型的能力[1]。從這個意義上說,數據挖掘的目的就是根據樣本數據形成的類知識,對源數據進行分類,從而也可以預測未知數據的類型。
分類過程是找到描述和區分數據類的函數或模型,也就是分類器,再利用分類器預測類標記未知的對象類。要構造分類器,需要輸入一個數據集作為訓練樣本,訓練樣本數據集由一組數據庫記錄也即元組構成,每個記錄是一個由相關字段(或屬性)值和類別標記組成的特征向量,樣本的形式可以表示為:(v1,v2,...,vn;c),其中的vi 表示字段值,c 表示類別。
數據挖掘的分類算法很多,本文僅描述常用的幾個分類算法:決策樹算法、貝葉斯分類算法、K 鄰近算法、支持向量機算法、基于關聯規則算法、人工神經網絡算法等。數據分類的效果一般和數據的特點有關,有的數據噪聲大,有的有空缺值,有的分布稀疏,有的字段或屬性間相關性強,有的屬性是離散的而有的是連續值或混合式的[2]??偟膩碚f沒有哪一種算法優于其他分類算法并能適合于各種特點的數據。
決策樹是用于分類和預測的主要技術之一,決策樹學習是以實例為基礎的歸納學習算法,它采用從一組無次序、無規則的實例中推理出以決策樹表示的分類規則[3]。構造決策樹的目標是要找出屬性與相應類別之間的關系,以便用它來預測未來未知數據的類別。它采用自頂向下的樹狀結構表現分類規則,內部結點描述屬性,葉子結點代表結論,自上而下的一條路徑代表一條分類規則。它具有結構簡單直觀、規則易于理解、有較高分類精度的特點。主要的決策樹算法有ID3、C4.5、SLIQ 和SPRINT算法等。這些算法在選擇測試屬性時所使用的技術、生成的決策樹結構、剪枝的時機和方法,以及處理大數據集的能力等多方面都各具特點。
ID3 算法的核心思想是首先計算決策樹各個非葉子結點的每一個屬性的信息增益,用最大信息增益的屬性作為類別劃分標準,因為信息增益越大,就越具有代表性、特異性,區分樣本的類別能力就越強,選取信息增益最大的特征分裂出各個子結點,然后遞歸建立決策樹的分支,當樣本集中只有一種類別時結束,生成最終的決策樹。這是一種自頂向下的貪心策略。
C4.5 算法通過采用信息增益率來選擇特征,改善了ID3 算法屬性偏向的缺點,是ID3 算法的改進。C4.5 算對變量特征進行遞歸選擇,用最優特征分類數據集,至到數據集中所有子集歸于同一個類為止。C4.5 算法分類規則易于理解、算法復雜度較低。
SLIQ 算法在C4.5 算法基礎之上,對算法的實現方法進行了改進,在決策樹構造過程中采用“預排序”和“廣度優先策略”等技巧劃分節點,減少讀寫磁盤次數從而提高算法效率。SLIQ 算法具有執行速度快、有較好的伸縮性和較高的數據分類精確度等優點。但由于需要將類別列表存放于內存,因此處理數據集的大小受內存容量限制。
SPRINT 算法進一步改進了數據結構,舍棄了SLIQ 算法需要駐留內存的類別列表,減少駐留內存的數據量,它將類別信息直接合并到每個屬性列表中。在遍歷每個屬性列表尋找當前結點的最優劃分標準時,不需要參照其他信息,對決策樹結點的劃分表現在對屬性列表的分割,每個屬性列表被分割成兩個,分別保存屬于各個結點的樣本對應的信息。SPRINT 算法在尋找每個結點的最優劃分標準更為簡單,但在分割非分割屬性的屬性列表時很困難。
貝葉斯分類預測算法是基于概率統計知識進行分類的算法。貝葉斯算法采用Bayes 定理,假定特征條件相互獨立,利用先驗概率和條件概率計算未知類別樣本屬于某個類別的概率,以最大概率的類別作為該樣本的最終類別,如樸素貝葉斯算法。此算法在數據集屬性個數較多或者屬性之間相關性較大時,分類效果不好。TAN 算法是降低獨立性假設的改進算法,基于貝葉斯網絡結構,通過增加屬性對之間的相關性來實現。該方法包括:按降序排序每個屬性對的互信息值,依次提取節點對,遵循不生成循環的原理,構造最大權重跨度樹直到n-1 個邊被選擇;然后確定整個無向圖的邊的方向,選擇任意一個屬性節點作為根節點,根節點的向外方向是屬性節點之間的方向;為每個屬性節點添加一個父節點,父節點分類屬性節點,這樣完成了貝葉斯網絡結構的構建。
K- 鄰近算法是一種基于實例的分類方法。K- 鄰近算法的具體工作原理是:它有一個樣本數據集,并且在樣本集中每個數據都有一個標簽,即已知樣本集中的每個數據與歸屬類別之間的對應關系。在沒有標簽的情況下輸入新數據后,將新數據的每個特征與樣本集中的數據對應的特征進行比較,然后提取樣本中最相似的數據(最鄰近)的分類標簽。通常,只選擇樣本數據集中k 最相似的數據,即K 鄰近,通常K 是大于20 的整數。最后,選擇K 個最相似數據中出現次數最多的類別作為新數據的分類。K- 鄰近方法是一種懶惰的學習方法,它存儲樣本直到需要分類為止。如果樣本集是復雜的,它可能會導致較大的計算開銷,所以很難應用于實時情況。
支持向量機是一種基于統計學習理論的學習方法。它是一個二元分類模型。其基本模型定義為特征空間中間隔最大的線性分類器。它的學習策略是最大化間距,并最終可以將其轉化為凸二次規劃問題的解。其最大的特點是通過最大化分類區間來構造學習機的泛化能力,根據結構風險最小化準則構造最優分類超平面,更好地解決非線性、高維和局部極小點的問題。對于分類問題,支持向量機算法從該區域的樣本中計算出該區域的決策曲面,從而確定該區域中未知樣本的類別。它具有較高的分類準確率和較好的適應能力。但處理大規模數據集時速度較慢。
關聯算法是數據挖掘中的一類重要算法。其核心是基于兩階段頻繁集思想的遞歸算法。關聯規則在分類上分為一維、單層和布爾型關聯規則。典型的算法是Apriori 算法。Apriori 算法將關聯規則發現過程分為兩步:第一步是迭代檢索事務數據庫中的所有頻繁項集,即支持度不低于用戶設置的閾值的項集;第二步利用頻繁項集構造規則滿足用戶的最小信任度。其中,挖掘或識別所有頻繁項集是算法的核心,占整個計算量的大部分。算法通過發現樣本集中的關聯規則來構造分類器,從而減少了對大樣本量的依賴性。
人工神經網絡是一門結合了眾多學科內容的信息處理學科,它是一種應用類似生物神經網絡結構進行信息處理的數學模型。在這個模型中,節點代替神經元,每個節點代表一個特定的功能,它們之間的互連構成一個巨大的網絡系統、即“神經網絡”,從而達到模擬生物大腦結構和功能來處理信息的目的。人工神經網絡經歷了從線性感知機到多層感知機的發展過程。神經網絡通過網絡學習,改變每個網絡節點的連接權值,使其具有分類功能,經過訓練的網絡可用于目標識別。目前,已有多種不同的神經網絡模型。常見的如BP 網絡、徑向基RBF 網絡、Hopfield 網絡、隨機神經網絡(Boltzmann 機)、競爭神經網絡(Hamming 網絡、自組織映射網絡)等。然而,目前的神經網絡仍然普遍存在著收斂速度慢、運算量大、訓練時間長、無法解釋等缺點。
數據分類預測算法是數據挖掘中的核心和基礎技術之一。通過數據挖掘對農業數據進行有效的采集,進而進行深層次的分析,為用戶提供分類預測和農業決策,科學有效地利用農業數據。本文對常見數據分類算法進行了綜合闡述,各種算法有自己的優缺點,在數據挖掘實踐中,用戶要根據數據的不同特點選擇合適的分類算法。準確度更高、執行速度更快、可伸縮性更強的算法還需要在今后的工作中進一步研究。