本篇的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。
blogs.com/junyuhuang/p/5572364.html