如何使用規則約束來剪枝搜尋空間?
規則約束可以分為以下五個要素:
反單調性 − 約束的第一個要素是反單調性。考慮規則約束“sum (I.price) ≤ 100”。假設它使用 Apriori 框架,在每次迭代 k 中分析大小為 k 的項集。如果項集中的專案成本總和不少於 100,則可以從搜尋空間中縮短此項集,因為向集合中插入更多專案只會使其成本更高,因此不會滿足約束條件。
反單調性約束的剪枝可用於 Apriori 風格演算法的每次迭代,以幫助提高完整挖掘階段的效率,同時保證資料探勘服務的完整性。
Apriori 屬性定義了頻繁項集的所有非空子集都應該是頻繁的,它是反單調的。如果給定項集不使用最小支援度,則其任何超集也不使用。此屬性可用於 Apriori 演算法的每次迭代,以減少檢查的多個候選項集的數量,從而減少關聯規則的搜尋空間。
單調性 − 約束的第二個要素是單調性。如果規則約束為“sum (I.price) ≥ 100”,則基於約束的處理方法可能有所不同。
如果項集 I 滿足約束條件,即集合中價格的總和不少於 100,則向 I 新增更多專案將增加成本,並將持續滿足約束條件。
因此,對項集 I 上此約束的更多測試變得冗餘。換句話說,如果項集使用此規則約束,則其所有超集也使用。
簡潔約束 − 第三個要素是簡潔約束。對於此約束要素,它可以列舉某些保證使用該約束的集合。如果規則約束是簡潔的,它可以直接生成滿足它的集合,甚至在支援計數開始之前。這避免了生成和測試範例的大量開銷。
可轉換約束 − 第四個要素是可轉換約束。如果項集中的專案按特定順序排列,則關於頻繁項集挖掘過程,約束可以變成單調或反單調。
例如,約束“avg(I.price) ≤ 100”既不是反單調的也不是單調的。如果事務中的專案按價格升序新增到項集,則約束變為反單調的,因為如果項集 I 破壞約束(即平均成本高於 100 美元),則向項集中新增更多昂貴專案不會使其滿足約束。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP