關聯分析(二)--Apriori演算法
Apriori演算法
其名字是因為演算法基於先驗知識(prior knowledge).根據前一次找到的頻繁項來生成本次的頻繁項。Apriori是關聯分析中核心的演算法。
Apriori演算法的特點
只能處理分類變數,無法處理數值型變數;
資料儲存可以是交易資料格式(事務表),或者是事實表方式(表格資料);
演算法核心在於提升關聯規則產生的效率而設計的。
Apriori的思想
正如我們之前所提到的,我們希望置信度和支援度要滿足我們的閾值範圍才算是有效的規則,實際過程中我們往往會面臨大量的資料,如果只是簡單的搜尋,會出現很多的規則,相當大的一部分是無效的規則,效率很低,那麼Apriori就是通過產生頻繁項集,然後再依據頻繁項集產生規則,進而提升效率。
以上所說的代表了Apriori演算法的兩個步驟:產生頻繁項集和依據頻繁項集產生規則。
那麼什麼是頻繁項集?
頻繁項集就是對包含專案A的專案集C,其支援度大於等於指定的支援度,則C(A)為頻繁項集,包含一個專案的頻繁項集稱為頻繁1-項集,即L1。
為什麼確定頻繁項集?
剛才說了,必須支援度大於我們指定的支援度,這也就是說能夠確定後面生成的規則是在普遍代表性上的專案集生成的,因為支援度本身的高低就代表了我們關聯分析結果是否具有普遍性。
怎麼尋找頻繁項集?
這裡不再講述,直接說一個例子大家就都明白了。例子來源於Fast Algorithms for Mining Association Rules
Apriori尋找頻繁項集的過程是一個不斷迭代的過程,每次都是兩個步驟,產生候選集Ck(可能成為頻繁項集的專案組合);基於候選集Ck計算支援度,確定Lk。
Apriori的尋找策略就是從包含少量的專案開始逐漸向多個專案的專案集搜尋。
資料如下:
我們看到,資料庫儲存的資料格式,會員100購買了 1 3 4三種商品,那麼對應的集合形式如右邊的圖所示。那麼基於候選集C1,我們得到頻繁項集L1,如下圖所示,在此表格中{4}的支援度為1,而我們設定的支援度為2。支援度大於或者等於指定的支援度的最小閾值就成為L1了,這裡{4}沒有成為L1的一員。因此,我們認定包含4的其他項集都不可能是頻繁項集,後續就不再對其進行判斷了。
此時我們看到L1是符合最低支援度的標準的,那麼下一次迭代我們依據L1產生C2(4就不再被考慮了),此時的候選集如右圖所示C2(依據L1*L1的組合方式)確立。C2的每個集合得到的支援度對應在我們原始資料組合的計數,如下圖左所示。
此時,第二次迭代發現了{1 2} {1 5}的支援度只有1,低於閾值,故而捨棄,那麼在隨後的迭代中,如果出現{1 2} {1 5}的組合形式將不被考慮。
如上圖,由L2得到候選集C3,那麼這次迭代中的{1 2 3} { 1 3 5}哪去了?如剛才所言,{1 2} {1 5}的組合形式將不被考慮,因為這兩個項集不可能成為頻繁項集L3,此時L4不能構成候選集L4,即停止。
如果用一句化解釋上述的過程,就是不斷通過Lk的自身連線,形成候選集,然後在進行剪枝,除掉無用的部分。
根據頻繁項集產生簡單關聯規則
Apriori的關聯規則是在頻繁項集基礎上產生的,進而這可以保證這些規則的支援度達到指定的水平,具有普遍性和令人信服的水平。
以上就是Apriori的演算法基本原理,留了兩個例子,可以加深理解。
例子1:
例子2:
相關文章
- 關聯分析Apriori演算法和FP-growth演算法初探演算法
- 關聯規則分析 Apriori 演算法 簡介與入門演算法
- 關聯規則方法之apriori演算法演算法
- Apriori 演算法-如何進行關聯規則挖掘演算法
- 關聯規則挖掘:Apriori演算法的深度探討演算法
- 機器學習系列文章:Apriori關聯規則分析演算法原理分析與程式碼實現機器學習演算法
- 關聯分析(一)--FP-Growth演算法演算法
- 菜市場價格分析 python pandas Apriori演算法 資料預處理Python演算法
- 模式識別中的Apriori演算法和FPGrowth演算法模式演算法
- 基於Apriori關聯規則的電影推薦系統(附python程式碼)Python
- 深入理解HashMap(二): 關鍵原始碼逐行分析之hash演算法HashMap原始碼演算法
- SQL隱碼攻擊關聯分析SQL
- 分析函式改寫自關聯函式
- 排名演算法(二)--淘寶搜尋排序演算法分析演算法排序
- 除法與GCD演算法的相關分析GC演算法
- UserService 新增使用者關聯索引 addUserPermission 分析索引
- 物聯網協議之MQTT原始碼分析(二)協議MQQT原始碼
- PHP二維關聯陣列的遍歷方式PHP陣列
- Binding(二):控制元件關聯和程式碼提升控制元件
- HanLP 關鍵詞提取演算法分析詳解HanLP演算法
- 乘聯會:關於我國智慧網聯汽車發展現狀及其相關政策的分析
- PHP 手冊中的匿名函式關聯用法分析PHP函式
- 基於ossec logstash es大資料安全關聯分析大資料
- vcf2gwas:簡化全基因組關聯分析
- Frequent Pattern 資料探勘關聯規則演算法(Aprior演算法) FT-Tree演算法
- 直播系統,利用關聯規則實現推薦演算法演算法
- dblink的關聯與本地關聯差異
- 關於模型關聯 獲取不到關聯資訊 求教模型
- Join關聯聯絡案例
- Eloquent: 關聯
- 演算法分析演算法
- 表的關聯關係
- python 類關聯關係Python
- 關於圖演算法 & 圖分析的基礎知識概覽演算法
- BiLSTM演算法(二)演算法
- 數學建模 資料處理模型之變數相關性類(灰色相關聯、相關性分析)模型變數
- Squeak 語言和員工電腦監控軟體的關聯分析
- 【機器學習】--關聯規則演算法從初識到應用機器學習演算法