基於關聯規則的分類演算法
自1993年Agrawal提出資料庫中的關聯規則挖掘後,關聯規則挖掘演算法及應用得到迅速發展。關聯規則的功能不再侷限於概念描述。1997年,Ali等人提出了使用分類關聯規則進行部分分類的思想,但他們當時認為關聯規則在分類預測問題上很難取得重大的進展。在1998年紐約舉行的資料庫知識發現國際會議上,新加坡國立大學的Liu等人提出了基於分類關聯規則的關聯分類演算法CBA,從此揭開了關聯分類的序幕。
與傳統的決策樹演算法比較,關聯分類具有分類預測準確度高的特點,因此關聯分類在資料探勘領域內引起廣泛關注。目前,中國、美國和加拿大等國家都設立了國家自然科學基金進行這方面的研究。許多學者目前正在進行這方面的工作,且在分類演算法上先後相繼取得了一批研究成果,如CBA、CAEP、ADT、CMAR、CPAR和CAAR等。
2常用的關聯規則分類方法
2.1基於關聯規則的分類演算法CBA
Liu於1998年提出。該演算法使用類Apriori演算法產生分類關聯規則,使用的支援度閾值為1%,置信度閾值為50%,實驗結果給出了分類誤差值,並與決策樹演算法C4.5進行了比較。該研究存在的主要問題是採用類Apriori演算法產生大量分類關聯規則,消耗的系統資源多。為了防止過度使用系統資源,演算法規定挖掘的規則數量不能超過80000個,當遇到高維資料庫時,挖掘的頻繁項集長
度迅速地減少,但分類模型的準確度顯著地下降。
2.2顯露模式分類法CAEP
顯露模式分類法CAEP由Dong等人創立。顯露模式是指從一個資料子集轉變到另一個資料子集時,支援度發生顯著變化的項集。最初的顯露模式用於分析不同型別資料之間多個屬性的對比或隨時間改變的不同趨勢之間多個屬性的對比。顯露模式分類利用支援度差異進行分類,沒有充分的理論依據來確保分類準確度。他們將新演算法與C4.5和CBA等演算法進行了對比。給出了在15個資料上不完整的分類結果,未給出演算法的平均分類準確度,實驗結果也未能充分說明CAEP演算法有何突出的優點,只能說明提供了一種新的關聯分類方法。
2.3關聯決策樹ADT
2000年,Wang等人結合關聯規則分類和決策樹分類各自的長處,提出了關聯決策樹方法。ADT方法完全放棄支援度閾值,僅依
據置信度閾值從分類關聯規則中選擇分類規則,以此構建準確度驅動的決策樹,採用自低向上的閉包運算生成可信的關聯規則。該方法的缺點是對噪聲特別敏感,在實際應用中,由於存在噪聲,難以達到試驗取得的準確度。同年,Li等人提出利用跳躍的顯露模式用於分類,對顯露模式分類提出了改進。
2.4基於多個分類關聯規則的分類演算法CMAR
2001年,J.Li等人給出了挖掘最小的分類關聯規則集用於預測的形式化描述。他們提出在不損失預測能力的前提下挖掘最小
的分類關聯規則集。然而,他們並沒有給出實驗資料比較最小規則集與完全分類關聯規則集的預測能力。而且,他們未能與其它典型的關聯分類演算法進行對比,在這種情況下提出演算法在不損失準確度的前提下產生最小分類關聯規則集的論點缺乏足夠的證據。W.Li等人提出了基於多個分類關聯規則的分類演算法CMAR,該演算法使用改進的頻繁模式增長法FP-growth來挖掘關聯規則,使用基於權重的多個強關聯規則來確定新例項的類標籤,實驗結果表明分類準確度優於CBA演算法。然而,該演算法存在兩個問題:第一,基於FP-growth的關聯規則挖掘儘管比Apriori快,但FP-growth不適合高維、大型的資料庫。而且該演算法的記憶體消耗過大,在大規模資料
則在分類預測中的權重選擇標準很難確定。
2.5預測型關聯規則的分類演算法CPAR
Yin避開了使用資源消耗過大的關聯規則演算法,採用貪婪演算法直接從訓練資料集中挖掘關聯規則,於2003年提出了一個稱為預測型關聯規則的分類演算法CPAR規則的支援度閾值設定為5%。CPAR演算法繼承了一階歸納學習演算法FOIL的思想,採用基於資訊熵的方法選擇最優的5個規則用來分類一個例項。在預測時使用5個規則測試新例項的類標籤,因此CPAR分類器的規則數很大。CPAR方法產生的規則數小於CMAR演算法,在分類準確度上與CMAR演算法相當。
Liu等人針對資料有噪聲和類分佈高度不均勻的情況提出了利用完全分類關聯規則集給未知例項評分的方法來提高分類準確
度。在他們的方法中,因其首先挖掘所有分類關聯規則,所以能給出所討論問題的完整檢視,利用完整的規則集能精確地估計新例項的類標籤。然而,這種方法的實用性差,其缺點主要表現在兩個方面:第一,分類過程需要利用所有分類關聯規則,分類器的體積非常龐大;第二,這種方法只適合小規模資料探勘,在大規模資料集上,利用低支援度閾值挖掘所有分類關聯規則的計算開銷大得驚人,特別是當資料集的屬性個數多、屬性值域規模較大時,需要對資料集進行許多次掃描。實際上,當資料集屬性個數較大時,挖掘完全的分類關聯規則集屬於NP-難解問題。
2.6其他關聯規則分類演算法
2002年,Baralis[4]等人提出了一個懶的(Lazy)分類關聯規則剪枝方法,該方法迭代地去除產生錯誤分類的所有規則,分類經過兩遍進行,並在26個UCI資料集上進行了實驗,結果表明該方法提高了分類精度。然而,該方法應用於大規模資料集時會面臨執行效能問題,因為在大規模資料集上挖掘全部分類關聯規則實際上是行不通的。
Li等人對關聯分類的魯棒性進行了研究,提出使用k個最優的規則集增強分類預測的可靠性,當測試資料遺失某個屬性值時,其它k-1個規則能擔任分類的任務。這個特性是關聯分類相對於決策樹而言具有的顯著優點之一。但該演算法的缺點是分類規則集龐大、模型的可理解性差。Li等人提出了挖掘最優的分類關聯規則。最優的分類關聯規則是指具有與完全分類關聯規則集同樣預測能力的最小規則集。通過使用最小規則集,而不是完全規則集可以減少挖掘分類關聯規則的時間。他們使用了自底向上的閉包特性,對弱規則剪枝,避免挖掘弱規則。實驗結果表明該演算法挖掘的規則數是完全分類關聯規則個數的1/17。實質上,與CBA相比,上述演算法沒有顯示出多少優越性,原因是挖掘完全分類關聯規則的演算法在實際應用中幾乎是行不通的,因為實際資料探勘應用中的資料集很大,所以與挖掘完全的分類關聯規則比較未能充分顯示演算法的優越性。
Davy等人在2003-2004年期間,研究瞭如何對CBA演算法的改進,提出一個新的分類關聯規則後件選擇框架,並提出一個稱為暗示強度的指標來評價分類關聯規則質量,以提高分類預測準確度。然而,他們在比較該方法與CBA演算法時,只在16個UCI資料集上進行了測試,而CBA演算法釋出時使用了26個標準資料集。
2004年,出現了基於正、負關聯規則的關聯分類。
可見,自1998年至今,關聯分類的研究及應用從未間斷。
3關聯規則分類存在的問題
目前,一般關聯分類演算法存在以下問題:
1)資源消耗大
基於關聯規則的分類方法是一種使用一組關聯規則來分類事務的技術。關聯規則挖掘屬於求解集合子集問題,是典型的NP難問題。當資料集中例項個數較多時,項集之間的組合產生大量候選頻繁項集,在資料集上測試候選頻繁項集消耗大量系統資源。在挖掘大規模資料集時,CPU時間和記憶體消耗問題更加突出。
2)規則剪枝難
分類關聯規則與其他一般關聯規則挖掘演算法一樣,追求規則的有趣性、完整性和可理解性。為了防止遺漏潛在的、有價值的知識,常常在低支援度下挖掘規則,從而產生大量冗餘規則。導致難以評價分類規則的質量,難以從大量關聯規則中提取有效的分類規則。因此,有效的剪枝技術和約束條件成為分類關聯規則研究的重點。
3)分類模型較複雜
一般關聯分類演算法產生龐大的分類器,不利於分類知識的理解,降低了資料探勘的功能。如何減少分類規則的數目,提高單個規則的推廣能力,增強規則的預測功能和可理解性,還有待解決。
4結語
與傳統的分類方法比較,基於關聯規則的分類技術在總體上具有分類準確度高,魯棒性好的優點。作為一種新的分類方法,關聯分類技術的研究朝著追求高的分類準確度、有效的剪枝、減少冗餘規則、提高計算效能的方向發展,還存在許多需要改進的地方,需要我們堅持不懈地努力探索研究。
相關文章
- 關聯規則方法之apriori演算法演算法
- 關聯規則挖掘(二)-- Apriori 演算法演算法
- 關聯規則挖掘之apriori演算法演算法
- 關聯規則挖掘:Apriori演算法的深度探討演算法
- 關聯規則apriori演算法的python實現演算法Python
- Apriori 演算法-如何進行關聯規則挖掘演算法
- 管理規則和基於規則的轉換——流
- 基於Apriori關聯規則的電影推薦系統(附python程式碼)Python
- 關聯規則分析 Apriori 演算法 簡介與入門演算法
- 【機器學習】--關聯規則演算法從初識到應用機器學習演算法
- 資料探勘演算法之-關聯規則挖掘(Association Rule)演算法
- 雙向最大匹配演算法——基於詞典規則的中文分詞(Java實現)演算法中文分詞Java
- 基於規則評分的密碼強度檢測演算法分析及實現(JavaScript)密碼演算法JavaScript
- 資料探勘之關聯規則
- 直播系統,利用關聯規則實現推薦演算法演算法
- 機器學習——最鄰近規則分類(K Nearest Neighbor)KNN演算法機器學習RESTKNN演算法
- javascript關於toFixed的計算規則JavaScript
- 推薦系統:關聯規則(2)
- Frequent Pattern 資料探勘關聯規則演算法(Aprior演算法) FT-Tree演算法
- 『忘了再學』Shell基礎 — 11、變數定義的規則和分類變數
- 機器學習——最鄰近規則分類(K Nearest Neighbor)KNN演算法的應用機器學習RESTKNN演算法
- 基於正則化的多工聯邦
- 關於OCLint自定義規則
- 資料探勘(1):關聯規則挖掘基本概念與Aprior演算法演算法
- 基於邏輯規則的圖譜推理
- mysql 基於規則的執行計劃MySql
- 基於規則的應用例項——流
- 大資料下的關聯規則,你知多少?大資料
- 最基礎的分類演算法(KNN)演算法KNN
- 機器學習演算法(一): 基於邏輯迴歸的分類預測機器學習演算法邏輯迴歸
- 基於Groovy的規則指令碼引擎實戰指令碼
- mysql 基於規則的執行計劃(二)MySql
- 基於小端規則的幾個java方法Java
- 基於 XAF Blazor 的規則引擎編輯器Blazor
- Rational Performance Tester 資料關聯規則詳解ORM
- 關於Java異常的分類示例Java
- 關於網路IP地址的分類
- 基於sklearn的分類器實戰