歡迎關(guān)注本人的微信公眾號AI_Engine
先驗算法(Apriori Algorithm)是關(guān)聯(lián)規(guī)則學習的經(jīng)典算法之一,且應用在商業(yè)等諸多領(lǐng)域梭依。本文會對Apriori算法的應用場景以及相關(guān)的基本術(shù)語加以介紹竹勉,之后對算法原理進行分析暂论,其中包括核心原理阵子、流程步驟亿蒸、優(yōu)缺點等示辈。
關(guān)聯(lián)規(guī)則算法是一種基于規(guī)則的機器學習算法寥茫,該算法可以在大數(shù)據(jù)中發(fā)現(xiàn)彼此之間的關(guān)系。它的目的是利用一些度量指標來分辨數(shù)據(jù)庫中存在的強規(guī)則矾麻。也即是說關(guān)聯(lián)規(guī)則挖掘是用于知識發(fā)現(xiàn)纱耻,而非預測,所以是屬于無監(jiān)督的機器學習方法险耀。
應用場景:Apriori 算法廣泛應用于各種領(lǐng)域弄喘,通過對數(shù)據(jù)的關(guān)聯(lián)性進行了分析和挖掘惩激,下面舉幾個例子逛艰。
Apriori算法廣泛應用于消費市場價格分析中
它能夠很快的求出各種產(chǎn)品之間的價格關(guān)系和它們之間的影響。通過數(shù)據(jù)挖掘摩梧,市場商人可以瞄準目標客戶柴灯,采用個人股票行市卖漫、最新信息、特殊的市場推廣活動或其他一些特殊的信息手段赠群,從而極大地減少廣告預算和增加收入羊始。百貨商場、超市和一些老字型大小的零售店也在進行數(shù)據(jù)挖掘查描,以便猜測這些年來顧客的消費習慣突委。
Apriori算法應用于網(wǎng)絡(luò)安全領(lǐng)域柏卤,比如網(wǎng)絡(luò)入侵檢測技術(shù)中。
早期中大型的電腦系統(tǒng)中都收集審計信息來建立跟蹤檔匀油,這些審計跟蹤的目的多是為了性能測試或計費缘缚,因此對攻擊檢測提供的有用信息比較少。它通過模式的學習和訓練可以發(fā)現(xiàn)網(wǎng)絡(luò)用戶的異常行為模式敌蚜。采用作用度的Apriori算法削弱了Apriori算法的挖掘結(jié)果規(guī)則桥滨,是網(wǎng)絡(luò)入侵檢測系統(tǒng)可以快速的發(fā)現(xiàn)用戶的行為模式,能夠快速的鎖定攻擊者弛车,提高了基于關(guān)聯(lián)規(guī)則的入侵檢測系統(tǒng)的檢測性齐媒。
Apriori算法被廣泛應用于移動通信領(lǐng)域。
移動增值業(yè)務逐漸成為移動通信市場上最有活力纷跛、最具潛力喻括、最受矚目的業(yè)務。隨著產(chǎn)業(yè)的復蘇贫奠,越來越多的增值業(yè)務表現(xiàn)出強勁的發(fā)展勢頭唬血,呈現(xiàn)出應用多元化、營銷品牌化唤崭、管理集中化拷恨、合作縱深化的特點。針對這種趨勢浩姥,在關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘中廣泛應用的Apriori算法被很多公司應用。依托某電信運營商正在建設(shè)的增值業(yè)務Web數(shù)據(jù)倉庫平臺状您,對來自移動增值業(yè)務方面的調(diào)查數(shù)據(jù)進行了相關(guān)的挖掘處理勒叠,從而獲得了關(guān)于用戶行為特征和需求的間接反映市場動態(tài)的有用信息,這些信息在指導運營商的業(yè)務運營和輔助業(yè)務提供商的決策制定等方面具有十分重要的參考價值膏孟。
基本術(shù)語:
1.項集:項集是項的集合眯分。包含k個項的項集稱為k項集,如集合{面包}柒桑,{牛奶}都是一個單項集(一般人們買了面包都會買一些牛奶)弊决。
2.支持度:項集A和B同時發(fā)生的概率(聯(lián)合概率),反應出某種規(guī)則出現(xiàn)的是否重要魁淳。
3.置信度:當項集A發(fā)生的情況下飘诗,項集B發(fā)生的概率(條件概率),反應出某種規(guī)則是否可靠界逛。
?? ?等價于:
4.最小支持度和最小置信度:最小支持度是用戶或?qū)<叶x的衡量支持度的一個閾值昆稿,表示項目集在統(tǒng)計意義上的最低重要性;最小置信度是用戶或?qū)<叶x的衡量置信度的一個閾值息拜,表示關(guān)聯(lián)規(guī)則的最低可靠性溉潭。同時滿足最小支持度閾值和最小置信度閾值的規(guī)則稱作強規(guī)則净响。
核心思想與步驟:
支持度和置信度越高,說明規(guī)則越強喳瓣,關(guān)聯(lián)規(guī)則算法就是挖掘出滿足一定強度的規(guī)則馋贤。在執(zhí)行算法之前,我們需要先給定最小的支持度和最小的置信度畏陕,生成關(guān)聯(lián)規(guī)則一般被劃分為如下兩個步驟:
1配乓、利用最小支持度從所有事物中找到頻繁項集。給定一個事物 D 蹭秋,尋找頻繁項集流程如下圖所示(盜的):
C1 中 {1} 的支持度為 2/4 = 0.5 表示在 D 中的 4 條事務中扰付,{1} 出現(xiàn)在其中的兩條事務中,以后幾個步驟的支持度計算方式也是類似的仁讨。假定給定的最小支持度為 0.5羽莺,那么最后我們可以得到一個包含 3 個項的頻繁項集 {2 3 5}。這里沒有出現(xiàn){1 2 3}和{1 3 5}的原因就是{1 2}和{1 5}在C2中不是頻繁項集洞豁。這樣我們可以引申出一條定律:如果一個集合不是頻繁項集盐固,則它的所有超集都不是頻繁項集。舉例:假設(shè)集合{A}不是頻繁項集丈挟,即A出現(xiàn)的次數(shù)小于min_support刁卜,則它的任何超集如{A,B}出現(xiàn)的次數(shù)必定小于min_support,因此其超集必定也不是頻繁項集曙咽。同樣可推理另一條定律是:如果一個集合是頻繁項集蛔趴,則它的所有子集都是頻繁項集。舉例:假設(shè)一個集合{A,B}是頻繁項集例朱,即A孝情、B同時出現(xiàn)在一條記錄的次數(shù)大于等于最小支持度min_support,則它的子集{A},{B}出現(xiàn)次數(shù)必定大于等于min_support洒嗤,即它的子集都是頻繁項集箫荡。
另外,從圖中我們可以看到 itemset 中所包含的 item 是從1增長到3的渔隶。并且每次增長都是利用上一個itemset 中滿足支持度的 item 來生成的羔挡,這個過程稱之為候選集生成(candidate generation)。譬如說C2里就不包含C1中的4 间唉。
2绞灼、利用最小置信度從頻繁項集中找到關(guān)聯(lián)規(guī)則。
同樣假定最小的置信度為0.5呈野,從頻繁項集 {2 3 5} 中我們可以發(fā)現(xiàn)規(guī)則 {2 3} ? {5} 的置信度為 1 > 0.5 镀赌,所以我們可以說 {2 3} ? {5} 是一個可能感興趣的規(guī)則。
優(yōu)缺點:
優(yōu)點:易編碼實現(xiàn)
缺點:在大數(shù)據(jù)集上可能較慢
適用數(shù)據(jù)類型:數(shù)值型 或者 標稱型數(shù)據(jù)际跪。
以上這就是Apriori算法的入門教程了商佛,今天太晚了喉钢,附上一下代碼。早點休息良姆,各位~