小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Apriori算法原理總結(jié)

 icecity1306 2017-01-19

Apriori算法是常用的用于挖掘出數(shù)據(jù)關(guān)聯(lián)規(guī)則的算法,它用來找出數(shù)據(jù)值中頻繁出現(xiàn)的數(shù)據(jù)集合,找出這些集合的模式有助于我們做一些決策。比如在常見的超市購物數(shù)據(jù)集,或者電商的網(wǎng)購數(shù)據(jù)集中,如果我們找到了頻繁出現(xiàn)的數(shù)據(jù)集,那么對于超市,我們可以優(yōu)化產(chǎn)品的位置擺放,對于電商,我們可以優(yōu)化商品所在的倉庫位置,達(dá)到節(jié)約成本,增加經(jīng)濟(jì)效益的目的。下面我們就對Apriori算法做一個總結(jié)。

1. 頻繁項集的評估標(biāo)準(zhǔn)

什么樣的數(shù)據(jù)才是頻繁項集呢?也許你會說,這還不簡單,肉眼一掃,一起出現(xiàn)次數(shù)多的數(shù)據(jù)集就是頻繁項集嗎!的確,這也沒有說錯,但是有兩個問題,第一是當(dāng)數(shù)據(jù)量非常大的時候,我們沒法直接肉眼發(fā)現(xiàn)頻繁項集,這催生了關(guān)聯(lián)規(guī)則挖掘的算法,比如Apriori, PrefixSpan, CBA。第二是我們?nèi)狈σ粋€頻繁項集的標(biāo)準(zhǔn)。比如10條記錄,里面A和B同時出現(xiàn)了三次,那么我們能不能說A和B一起構(gòu)成頻繁項集呢?因此我們需要一個評估頻繁項集的標(biāo)準(zhǔn)。

常用的頻繁項集的評估標(biāo)準(zhǔn)有支持度,置信度和提升度三個。

支持度就是幾個關(guān)聯(lián)的數(shù)據(jù)在數(shù)據(jù)集中出現(xiàn)的次數(shù)占總數(shù)據(jù)集的比重?;蛘哒f幾個數(shù)據(jù)關(guān)聯(lián)出現(xiàn)的概率。如果我們有兩個想分析關(guān)聯(lián)性的數(shù)據(jù)X和Y,則對應(yīng)的支持度為:$$Support(X,Y) = P(XY) = \frac{number(XY)}{num(All Samples)}$$

以此類推,如果我們有三個想分析關(guān)聯(lián)性的數(shù)據(jù)X,Y和Z,則對應(yīng)的支持度為:$$Support(X,Y,Z) = P(XYZ) = \frac{number(XYZ)}{num(All Samples)}$$

一般來說,支持度高的數(shù)據(jù)不一定構(gòu)成頻繁項集,但是支持度太低的數(shù)據(jù)肯定不構(gòu)成頻繁項集。

置信度體現(xiàn)了一個數(shù)據(jù)出現(xiàn)后,另一個數(shù)據(jù)出現(xiàn)的概率,或者說數(shù)據(jù)的條件概率。如果我們有兩個想分析關(guān)聯(lián)性的數(shù)據(jù)X和Y,X對Y的置信度為$$Confidence(X \Leftarrow Y) = P(X|Y)=P(XY)/P(Y)$$

也可以以此類推到多個數(shù)據(jù)的關(guān)聯(lián)置信度,比如對于三個數(shù)據(jù)X,Y,Z,則X對于Y和Z的置信度為:$$Confidence(X \Leftarrow YZ) = P(X|YZ)=P(XYZ)/P(YZ)$$

舉個例子,在購物數(shù)據(jù)中,紙巾對應(yīng)雞爪的置信度為40%,支持度為1%。則意味著在購物數(shù)據(jù)中,總共有1%的用戶既買雞爪又買紙巾;同時買雞爪的用戶中有40%的用戶購買紙巾。

提升度表示含有Y的條件下,同時含有X的概率,與X總體發(fā)生的概率之比,即:$$Lift(X \Leftarrow Y) = P(X|Y)/P(X) = Confidence(X \Leftarrow Y) / P(X)$$

提升度體先了X和Y之間的關(guān)聯(lián)關(guān)系, 關(guān)聯(lián)度高則提升度小,一個特殊的情況,如果X和Y獨(dú)立,則有$Lift(X \Leftarrow Y) = 1$, 達(dá)到最大,因為此時$P(X|Y) = P(X)$。

一般來說,要選擇一個數(shù)據(jù)集合中的頻繁數(shù)據(jù)集,則需要自定義評估標(biāo)準(zhǔn)。最常用的評估標(biāo)準(zhǔn)是用自定義的支持度,或者是自定義支持度和置信度的一個組合。

2. Apriori算法思想

對于Apriori算法,我們使用支持度來作為我們判斷頻繁項集的標(biāo)準(zhǔn)。Apriori算法的目標(biāo)是找到最大的K項頻繁集。這里有兩層意思,首先,我們要找到符合支持度標(biāo)準(zhǔn)的頻繁集。但是這樣的頻繁集可能有很多。第二層意思就是我們要找到最大個數(shù)的頻繁集。比如我們找到符合支持度的頻繁集AB和ABE,那么我們會拋棄AB,只保留ABE,因為AB是2項頻繁集,而ABE是3項頻繁集。那么具體的,Apriori算法是如何做到挖掘K項頻繁集的呢?

Apriori算法采用了迭代的方法,先搜索出候選1項集及對應(yīng)的支持度,剪枝去掉低于支持度的1項集,得到頻繁1項集。然后對剩下的頻繁1項集進(jìn)行連接,得到候選的頻繁2項集,篩選去掉低于支持度的候選頻繁2項集,得到真正的頻繁二項集,以此類推,迭代下去,直到無法找到頻繁k+1項集為止,對應(yīng)的頻繁k項集的集合即為算法的輸出結(jié)果。

可見這個算法還是很簡潔的,第i次的迭代過程包括掃描計算候選頻繁i項集的支持度,剪枝得到真正頻繁i項集和連接生成候選頻繁i+1項集三步。

我們下面這個簡單的例子看看:

Apriori算法原理總結(jié)

我們的數(shù)據(jù)集D有4條記錄,分別是134,235,1235和25。現(xiàn)在我們用Apriori算法來尋找頻繁k項集,最小支持度設(shè)置為50%。首先我們生成候選頻繁1項集,包括我們所有的5個數(shù)據(jù)并計算5個數(shù)據(jù)的支持度,計算完畢后我們進(jìn)行剪枝,數(shù)據(jù)4由于支持度只有25%被剪掉。我們最終的頻繁1項集為1235,現(xiàn)在我們鏈接生成候選頻繁2項集,包括12,13,15,23,25,35共6組。此時我們的第一輪迭代結(jié)束。

進(jìn)入第二輪迭代,我們掃描數(shù)據(jù)集計算候選頻繁2項集的支持度,接著進(jìn)行剪枝,由于12和15的支持度只有25%而被篩除,得到真正的頻繁2項集,包括13,23,25,35?,F(xiàn)在我們鏈接生成候選頻繁3項集,123, 125,135和235共4組,這部分圖中沒有畫出。通過計算候選頻繁3項集的支持度,我們發(fā)現(xiàn)123,125和135的支持度均為25%,因此接著被剪枝,最終得到的真正頻繁3項集為235一組。由于此時我們無法再進(jìn)行數(shù)據(jù)連接,進(jìn)而得到候選頻繁4項集,最終的結(jié)果即為頻繁3三項集235。

3. Aprior算法流程

下面我們對Aprior算法流程做一個總結(jié)。

輸入:數(shù)據(jù)集合D,支持度閾值$\alpha$

輸出:最大的頻繁k項集

1)掃描整個數(shù)據(jù)集,得到所有出現(xiàn)過的數(shù)據(jù),作為候選頻繁1項集。k=1,頻繁0項集為空集。

2)挖掘頻繁k項集

a) 掃描數(shù)據(jù)計算候選頻繁k項集的支持度

b) 去除候選頻繁k項集中支持度低于閾值的數(shù)據(jù)集,得到頻繁k項集。如果得到的頻繁k項集為空,則直接返回頻繁k-1項集的集合作為算法結(jié)果,算法結(jié)束。如果得到的頻繁k項集只有一項,則直接返回頻繁k項集的集合作為算法結(jié)果,算法結(jié)束。

c) 基于頻繁k項集,連接生成候選頻繁k+1項集。

3) 令k=k+1,轉(zhuǎn)入步驟2。

從算法的步驟可以看出,Aprior算法每輪迭代都要掃描數(shù)據(jù)集,因此在數(shù)據(jù)集很大,數(shù)據(jù)種類很多的時候,算法效率很低。

4. Aprior算法總結(jié)

Aprior算法是一個非常經(jīng)典的頻繁項集的挖掘算法,很多算法都是基于Aprior算法而產(chǎn)生的,包括FP-Tree,GSP, CBA等。這些算法利用了Aprior算法的思想,但是對算法做了改進(jìn),數(shù)據(jù)挖掘效率更好一些,因此現(xiàn)在一般很少直接用Aprior算法來挖掘數(shù)據(jù)了,但是理解Aprior算法是理解其它Aprior類算法的前提,同時算法本身也不復(fù)雜,因此值得好好研究一番。

不過scikit-learn中并沒有頻繁集挖掘相關(guān)的算法類庫,這不得不說是一個遺憾,不知道后面的版本會不會加上。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多