A-priori算法
A-priori算法
- A-priori算法
- 相關概念
- A-priori算法流程
- 算法示例
- A-priori算法的優缺點
- 優點
- 缺點
A-priori算法
關聯規則是一種有效且很重要的數據挖掘方法,它可以從海量數據中挖掘出數據之間有意義的關聯規則及它們之間的相關聯系,幫助相關人員分析數據并做出合適的決策;其最典型的應用例子是購物車分析,即通過分析顧客放入購物車中的商品來分析顧客的購買習慣,從而指導零售商制定更好的營銷策略。
購物籃模型:描述兩類對象之間多對多的關系。
目前常用的關聯規則方法有很多,如貝葉斯網絡、決策樹、A-priori 算法等。其中 A-priori 算法是關聯規則挖掘頻繁項集的經典算法,最早由 R.Agrawal 等人在 1993 年提出來的,是一種挖掘單維布爾型的關聯規則算法,很多算法也是以其為核心進行改進的。
A-priori算法的目的:
A-priori算法的中心思想:
相關概念
項(Item):是關聯規則最基礎的元素,用 in(n= 1, 2, 3…)表示某一項
項集:是項的集合,假設項集 I = {i1, i2, …, in},包括 n 項的項集成為 n 項集
頻繁項集:在多個購物籃中出現的項集
事務(TID):是由一個唯一的事務標識號和一個組成事務的項的列表構成的
事務集:是所有事務構成的集合。假設事務數據集 T = {t1, t2, …, tn}
關聯規則:可以表示為如 X=>Y 所示的蘊涵式。其中,X?I,Y?I 且 X∩Y=?。該關系式表示如果項集X在某一事物中出現時,那么項集Y也可能以某一概率出現在該事務中。
支持度:是某一項集的頻繁程度,是關聯規則重要性的衡量準則,用于表示該項集的重要性。假設包含項集 X、Y 的事務數量與事務集總數 countAll 的比值,反映了 X、Y 項集同時出現的頻率:
支持度閾值s:設 I 是一個項集,I 的支持度就是包含 I 的購物籃的數量,當其大于等于 s 時,稱 I 為頻繁項集
置信度:用來確定 Y 在包含 X 的事務中出現的頻繁程度,即 Y 在 X 條件下的條件概率,是對關聯規則準確度的衡量準則,表示規則的可靠程度。假設包含項集 X、Y 的事務數量與項集X事務數量的比值:
頻繁項集與最小支持度:最小支持度是預先設置好的項集滿足支持度的下限,用 Min_sup 表示,反映了所關注的項集的最低重要性。當項集 X 的支持度不小于最小支持度閾值時,X 為頻繁項集:
強關聯規則與最小置信度:最小置信度是預先設置好的項集滿足置信度的下限,用Min_conf表示,反映了所關注的項集的最低可靠程度。當關聯規則R同時滿足支持度與置信度不小于最小閾值,則稱其為強關聯規則:
項集單調性:如果項集 I 是頻繁項集,那么其所有的子集都是頻繁項集;反之,如果項集 I 不是頻繁項集,那么其所有的超集都不是頻繁項集
挖掘關聯規則的主要任務就是為了找出滿足條件的各種強關聯規則。
A-priori算法流程
輸入:數據集合 D ,支持度閾值 α(支持度閾值一般為經驗值或實驗值)
輸出:最大的頻繁k項集
相關定義:
- 自連接步驟:頻繁k-1項集Lk-1的自身連接產生候選k項集Ck。
- 剪枝策略:由于存在先驗性質:任何非頻繁的k-1項集都不是頻繁k項集的子集。因此,如果一個候選k項集Ck的k-1項子集不在Lk-1中,則該候選也不可能是頻繁的,從而可以從Ck中刪除,獲得壓縮后的Ck。
- 刪除策略:基于壓縮后的Ck,掃描所有事務,對Ck中的每個項進行計數,然后刪除不滿足支持度閾值s的項,從而獲得頻繁k項集。
算法步驟:
a. 掃描數據計算候選頻繁k項集的支持度
b. 去除候選頻繁k項集中支持度低于閾值的數據集,得到頻繁k項集(使用剪枝策略和刪除策略)。如果得到的頻繁k項集為空,則直接返回頻繁k-1項集的集合作為算法結果,算法結束。如果得到的頻繁k項集只有一項,則直接返回頻繁k項集的集合作為算法結果,算法結束。
c. 基于頻繁k項集,自連接生成候選頻繁k+1項集(自連接步驟)。
算法示例
假定事物數據庫如下所示:
Step 1:將所有的單個項作為候選集,通過掃描數據庫中所有事務,生成一個候選1項集C1;然后計算出每個候選集出現的次數,并根據預先設定的最小支持度閾值 s=2,選擇頻繁1項集L1。
Step 2:通過項集L1產生候選頻繁2項集L2。
Step 3:通過項集L2產生候選頻繁3項集L3。
Step 4:因為L3無法產生候選4項集,所以終止迭代過程。在實際情況中,當數據較多的,一層一層向上尋找,當無法繼續構造時停止處理。
Step 5:根據產生的頻繁項集生成關聯規則,利用L3={ B, C, D }產生關聯規則,確定該頻繁項集中所有非空子集。
Step 6:根據各項子集產生關聯規則,并計算各個表達式的可信度。
支持度大,置信度則越高(如關聯規則2與關聯規則3),關聯規則的實用機會就大,此關聯規則就越重要;一些關聯規則置信度很高,但支持度很低(如關聯規則9, 10, 11),則此關聯規則就不那么重要。
A-priori算法的優缺點
優點
如果使用樸素算法,隨著尋找頻繁k項集中k值的增大,需要遍歷的候選項集數會非常巨大,而A-priori算法可以通過減少候選集的大小來獲得相對良好的性能,并且A-priori算法原理較簡單,易于實現。
缺點
在數據集很大或支持度閾值設置較小時,A-priori算法依然會生成數量龐大的候選項集,并需要對數據進行反復的掃描,造成算法性能的低下。
總結
以上是生活随笔為你收集整理的A-priori算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery可拖拽3D万花筒旋转特效
- 下一篇: vue3.0组合式api语法使用总结