❶ 第九章 數據關聯規則分析演算法——基於Apriori演算法的關聯項分析
9.1 基於Apriori演算法的關聯分析
Aprior演算法是關聯規則分析中較為經典的頻繁項集演算法。關聯規則反映的是兩個或多個事物相互之間的依存性和關聯性。如果兩個或者多個事物相互之間存在一定的關聯關系,則它們之間存在一種關聯規則使得它們之間可以進行搭配。
9.1.1 基本概要
Apriori演算法利用頻繁項集的先驗知識,不斷地按照層次進行迭代,計算數據集中的所有可能的頻繁項集,它的分析主要包括兩個核心部分。
1、根據支持度找出頻繁項集;
2、根據置信度產生關聯規則。
9.1.2 Apriori演算法原理
基本流程:
1、掃描歷史數據,並對每項數據進行頻率次數統計。
2、構建候選集 ,並計算其支持度,即數據出現頻率次數與總數的比。
3、對候選項集進行篩選,篩選的數據項支持度應當不小於最小支持度,從而形成頻繁項集 .
4、對頻繁項集 進行連接生成候選集 ,重復上述步驟,最終形成頻繁K項集或者最大頻繁項集。
Apriori演算法存在兩大定理:
1、如果一個集合是頻繁項集,那麼它的所有子集都是頻繁集合。
2、如果一個集合它不是頻繁集合,那麼它的所有超集都不是頻繁項集。
9.1.3 Apriori演算法優缺點
優:運算過程非常簡單,理論方法也比較容易理解,對數據特徵的要求也相對較低。
缺:
1、產生候選集是產生較多的組合,沒有考慮將一些無關的元素排除後再進行組合。
2、每次計算項集的過程中都會掃描元素的數據表。
針對不足推出不斷改進的Apriori演算法:
1、將數據表(事務表)進行壓縮。
2、利用哈希表的快速查找特性對項集進行計數統計。
3、合理選樣。
❷ 關聯規則是什麼
關聯規則是形如X→Y的蘊涵式,其中, X和Y分別稱為關聯規則的先導(antecedent或left-hand-side, LHS)和後繼(consequent或right-hand-side, RHS) 。其中,關聯規則XY,存在支持度和信任度。
關聯規則最初提出的動機是針對購物籃分析(Market Basket Analysis)問題提出的。假設分店經理想更多的了解顧客的購物習慣。特別是,想知道哪些商品顧客可能會在一次購物時同時購買;
為回答該問題,可以對商店的顧客事物零售數量進行購物籃分析。該過程通過發現顧客放入「購物籃」中的不同商品之間的關聯,分析顧客的購物習慣。這種關聯的發現可以幫助零售商了解哪些商品頻繁的被顧客同時購買,從而幫助他們開發更好的營銷策略。
關聯規則研究
由於許多應用問題往往比超市購買問題更復雜,大量研究從不同的角度對關聯規則做了擴展,將更多的因素集成到關聯規則挖掘方法之中,以此豐富關聯規則的應用領域,拓寬支持管理決策的范圍。
如考慮屬性之間的類別層次關系,時態關系,多表挖掘等。圍繞關聯規則的研究主要集中於兩個方面,即擴展經典關聯規則能夠解決問題的范圍,改善經典關聯規則挖掘演算法效率和規則興趣性。
❸ 常見的關聯規則挖掘演算法包括
典的關聯規則挖掘演算法包括Apriori演算法和FP-growth演算法。
apriori演算法多次掃描交易資料庫,每次利用候選頻繁集產生頻繁集;而FP-growth則利用樹形結構,無需產生候選頻繁集而是直接得到頻繁集,大大減少掃描交易資料庫的次數,從而提高了演算法的效率。但是apriori的演算法擴展性較好,可以用於並行計算等領域。
2、
Logistic回歸,LR有很多方法來對模型正則化。比起NB的條件獨立性假設,LR不需要考慮樣本是否是相關的。
與決策樹與支持向量機不同,NB有很好的概率解釋,且很容易利用新的訓練數據來更新模型。如果你想要一些概率信息或者希望將來有更多數據時能方便的更新改進模型,LR是值得使用的。
3、決策樹,DT容易理解與解釋。DT是非參數的,所以你不需要擔心野點(或離群點)和數據是否線性可分的問題,DT的主要缺點是容易過擬合,這也正是隨機森林等集成學習演算法被提出來的原因。
4、支持向量機,很高的分類正確率,對過擬合有很好的理論保證,選取合適的核函數,面對特徵線性不可分的問題也可以表現得很好。SVM在維數通常很高的文本分類中非常的流行。
❹ 關聯規則演算法(The Apriori algorithm)
關聯規則的目的在於在一個數據集中找出項之間的關系,也稱之為購物籃分析 (market basket analysis)。例如,購買鞋的顧客,有10%的可能也會買襪子,60%的買麵包的顧客,也會買牛奶。這其中最有名的例子就是"尿布和啤酒"的故事了。
本篇的Apriori演算法主要是基於頻繁集的關聯分析。其主要目的就是為了尋找強關聯規則。
要理解頻繁集、強關聯規則,要先藉助下面的一個情境,來介紹幾個重要概念。
下表是一些購買記錄:
將購買記錄整理,可得到下表,橫欄和縱欄的數字表示同時購買這兩種商品的交易條數。如購買有Orange的交易數為4,而同時購買Orange和Coke的交易數為2。
置信度,表示這條規則有多大程度上值得可信。
設條件的項的集合為A,結果的集合為B。置信度計算在A中,同時也含有B的概率。即Confidence(A->B)=P(B|A)。例 如計算"如果Orange則Coke"的置信度。由於在含有Orange的4條交易中,僅有2條交易含有Coke。其置信度為0.5。
支持度,計算在所有的交易集中,既有A又有B的概率。
例如在5條記錄中,既有Orange又有Coke的記錄有2條。則此條規則的支持度為2/5=0.4。現在這條規則可表述為,如果一個顧客購買了Orange,則有50%的可能購買Coke。而這樣的情況(即買了Orange會再買Coke)會有40%的可能發生。
支持度大於預先定好的最小支持度的項集。
關聯規則:令項集I={i1,i2,...in},且有一個數據集合D,它其中的每一條記錄T,都是I的子集。那麼關聯規則是形如A->B的表達式,A、B均為I的子集,且A與B的交集為空。這條關聯規則的支持度:support = P(A並B)。這條關聯規則的置信度:confidence = support(A並B)/suport(A)。
強關聯規則:如果存在一條關聯規則,它的支持度和置信度都大於預先定義好的最小支持度與置信度,我們就稱它為強關聯規則。
下面用一個例子說明演算法的過程:
項目集合 I={1,2,3,4,5};
事務集 T:
設定最小支持度(minsup)=3/7,最小置信度(misconf)=5/7。
假設:n-頻繁項目集為包含n個元素的項目集,例如1-頻繁項目集為包含1個元素的項目集
則這里,1-頻繁項目集有:{1},{2},{3},{4},{5}
生成2-頻繁項目集的過程如下:
首先列出所有可能的2-項目集,如下:
{1,2},{1,3},{1,4},{1,5}
{2,3},{2,4},{2,5}
{3,4},{3,5}
{4,5}
計算它們的支持度,發現只有{1,2},{1,3},{1,4},{2,3},{2,4},{2,5}的支持度 滿足要求,因此求得2-頻繁項目集:
{1,2},{1,3},{1,4},{2,3},{2,4}
生成3-頻繁項目集:
對於現有的2-頻繁項目集,兩兩取並集,並確保第三個二元組也在2-頻繁項目集內,把得到的所有3-項目集分別計算支持度,剔除不滿足最小支持度的項目集;
例如,
{1,2},{1,3}的並集得到{1,2,3};
{1,2},{1,4}的並集得到{1,2,4};
{1,3},{1,4}的並集得到{1,3,4};
{2,3},{2,4}的並集得到{2,3,4};
但是由於{1,3,4}的子集{3,4}不在2-頻繁項目集中,所以需要把{1,3,4}剔除掉。{2,3,4} 同理剔除。
然後再來計算{1,2,3}和{1,2,4}的支持度,發現{1,2,3}的支持度為3/7 ,{1,2,4}的支持度為2/7,所以需要把{1,2,4}剔除。因此得到3-頻繁項目集:{1,2,3}。
重復上面步驟繼續尋找n-頻繁項目集,直到不能發現更大的頻繁項目集。所以,到此,頻繁項目集生成過程結束。
這里只說明3-頻繁項目集生成關聯規則的過程,即以集合{1,2,3}為例:
回顧事物集,先生成1-後件的關聯規則:
(1,2)—>3,置信度=3/4(出現(1,2)的記錄共4條,其中有3條包含3,所以3/4);
(1,3)—>2,置信度=3/5;
(2,3)—>1,置信度=3/3;
第二條置信度<5/7,未達到最小置信度,所以剔除掉。所以對於3-頻繁項目集生成的強關聯規則為:(1,2)—>3和(2,3)—>1。
這表示,如果1、2出現了,則極有可能出現3;2、3出現,則極有可能有1。
http://www.cnblogs.com/junyuhuang/p/5572364.html
❺ 關聯演算法
關聯, 指的是關聯分析, 這里引用網路的定義.
通過關聯分析, 可以挖掘出"由於某些事件的發生而引起另外一些事件的發生"之類的規則, 比如說"麵包=>牛奶", 其中麵包被稱為規則的前項, 而牛奶則被稱為規則的後項.
常用於關聯分析的演算法有Apriori演算法, FP-growth演算法, Eclat演算法, 灰色關聯法等, 下面將著重介紹Apriori演算法.
在介紹Apriori演算法之前, 我們先來了解幾個概念:
1.事務: 一條交易記錄稱為一個事務
2.項: 交易中的每一個物品稱為一個項
3.項集: 包含0個或多個項的集合
4.支持度計數: 項集在所有事務中出現的次數.
5.支持度: 支持度計數除於總的事務數.
6.頻繁項集: 支持度大於等於某個閥值的項集.
關聯規則的挖掘通常分為兩步: 第一步, 找出所有的頻繁項集; 第二步, 由頻繁項集產沒判答生強關聯規則. 而Apriori演算法則是挖掘頻繁項集的基本演算法.
可以看到以上每個過程均需要掃描一次數據, 為了提高頻繁項集逐層迭代產生的效率, 需要利用一條重要性質, 其稱為先驗性質:
當然, 非頻繁項集的所有超集也一定是非頻繁的.
將先驗性質應用到Apriori演算法中就是將之枯慧前的過程分為兩大部分, 連接步和剪枝步.
連接步: 連接步的目的是產生候選項集.
剪枝步: 應用先驗性質對候選項集進行篩選, 將不滿足先驗性質的候選項集剔除, 再進而根據最小支持度找出頻繁項集, 這樣可以有效縮短計算量.
關聯分析的目標是找出強關聯規則, 因此這里的關聯規則是指強關聯規則, 我們把滿足最小支持度和最小置信度的規則稱為強關聯規則.
對於規則A=>沖敏B, 置信度的計算公式就是項集{A, B}的支持度計數除於項集{A}的支持度計數.
優點: 簡單, 易理解, 對數據要求低
缺點: 容易產生過多的候選項集, I/O負載大.