A-priori算法
A-priori算法
- A-priori算法
- 相關(guān)概念
- A-priori算法流程
- 算法示例
- A-priori算法的優(yōu)缺點(diǎn)
- 優(yōu)點(diǎn)
- 缺點(diǎn)
A-priori算法
關(guān)聯(lián)規(guī)則是一種有效且很重要的數(shù)據(jù)挖掘方法,它可以從海量數(shù)據(jù)中挖掘出數(shù)據(jù)之間有意義的關(guān)聯(lián)規(guī)則及它們之間的相關(guān)聯(lián)系,幫助相關(guān)人員分析數(shù)據(jù)并做出合適的決策;其最典型的應(yīng)用例子是購(gòu)物車分析,即通過分析顧客放入購(gòu)物車中的商品來分析顧客的購(gòu)買習(xí)慣,從而指導(dǎo)零售商制定更好的營(yíng)銷策略。
購(gòu)物籃模型:描述兩類對(duì)象之間多對(duì)多的關(guān)系。
目前常用的關(guān)聯(lián)規(guī)則方法有很多,如貝葉斯網(wǎng)絡(luò)、決策樹、A-priori 算法等。其中 A-priori 算法是關(guān)聯(lián)規(guī)則挖掘頻繁項(xiàng)集的經(jīng)典算法,最早由 R.Agrawal 等人在 1993 年提出來的,是一種挖掘單維布爾型的關(guān)聯(lián)規(guī)則算法,很多算法也是以其為核心進(jìn)行改進(jìn)的。
A-priori算法的目的:
A-priori算法的中心思想:
相關(guān)概念
項(xiàng)(Item):是關(guān)聯(lián)規(guī)則最基礎(chǔ)的元素,用 in(n= 1, 2, 3…)表示某一項(xiàng)
項(xiàng)集:是項(xiàng)的集合,假設(shè)項(xiàng)集 I = {i1, i2, …, in},包括 n 項(xiàng)的項(xiàng)集成為 n 項(xiàng)集
頻繁項(xiàng)集:在多個(gè)購(gòu)物籃中出現(xiàn)的項(xiàng)集
事務(wù)(TID):是由一個(gè)唯一的事務(wù)標(biāo)識(shí)號(hào)和一個(gè)組成事務(wù)的項(xiàng)的列表構(gòu)成的
事務(wù)集:是所有事務(wù)構(gòu)成的集合。假設(shè)事務(wù)數(shù)據(jù)集 T = {t1, t2, …, tn}
關(guān)聯(lián)規(guī)則:可以表示為如 X=>Y 所示的蘊(yùn)涵式。其中,X?I,Y?I 且 X∩Y=?。該關(guān)系式表示如果項(xiàng)集X在某一事物中出現(xiàn)時(shí),那么項(xiàng)集Y也可能以某一概率出現(xiàn)在該事務(wù)中。
支持度:是某一項(xiàng)集的頻繁程度,是關(guān)聯(lián)規(guī)則重要性的衡量準(zhǔn)則,用于表示該項(xiàng)集的重要性。假設(shè)包含項(xiàng)集 X、Y 的事務(wù)數(shù)量與事務(wù)集總數(shù) countAll 的比值,反映了 X、Y 項(xiàng)集同時(shí)出現(xiàn)的頻率:
支持度閾值s:設(shè) I 是一個(gè)項(xiàng)集,I 的支持度就是包含 I 的購(gòu)物籃的數(shù)量,當(dāng)其大于等于 s 時(shí),稱 I 為頻繁項(xiàng)集
置信度:用來確定 Y 在包含 X 的事務(wù)中出現(xiàn)的頻繁程度,即 Y 在 X 條件下的條件概率,是對(duì)關(guān)聯(lián)規(guī)則準(zhǔn)確度的衡量準(zhǔn)則,表示規(guī)則的可靠程度。假設(shè)包含項(xiàng)集 X、Y 的事務(wù)數(shù)量與項(xiàng)集X事務(wù)數(shù)量的比值:
頻繁項(xiàng)集與最小支持度:最小支持度是預(yù)先設(shè)置好的項(xiàng)集滿足支持度的下限,用 Min_sup 表示,反映了所關(guān)注的項(xiàng)集的最低重要性。當(dāng)項(xiàng)集 X 的支持度不小于最小支持度閾值時(shí),X 為頻繁項(xiàng)集:
強(qiáng)關(guān)聯(lián)規(guī)則與最小置信度:最小置信度是預(yù)先設(shè)置好的項(xiàng)集滿足置信度的下限,用Min_conf表示,反映了所關(guān)注的項(xiàng)集的最低可靠程度。當(dāng)關(guān)聯(lián)規(guī)則R同時(shí)滿足支持度與置信度不小于最小閾值,則稱其為強(qiáng)關(guān)聯(lián)規(guī)則:
項(xiàng)集單調(diào)性:如果項(xiàng)集 I 是頻繁項(xiàng)集,那么其所有的子集都是頻繁項(xiàng)集;反之,如果項(xiàng)集 I 不是頻繁項(xiàng)集,那么其所有的超集都不是頻繁項(xiàng)集
挖掘關(guān)聯(lián)規(guī)則的主要任務(wù)就是為了找出滿足條件的各種強(qiáng)關(guān)聯(lián)規(guī)則。
A-priori算法流程
輸入:數(shù)據(jù)集合 D ,支持度閾值 α(支持度閾值一般為經(jīng)驗(yàn)值或?qū)嶒?yàn)值)
輸出:最大的頻繁k項(xiàng)集
相關(guān)定義:
- 自連接步驟:頻繁k-1項(xiàng)集Lk-1的自身連接產(chǎn)生候選k項(xiàng)集Ck。
- 剪枝策略:由于存在先驗(yàn)性質(zhì):任何非頻繁的k-1項(xiàng)集都不是頻繁k項(xiàng)集的子集。因此,如果一個(gè)候選k項(xiàng)集Ck的k-1項(xiàng)子集不在Lk-1中,則該候選也不可能是頻繁的,從而可以從Ck中刪除,獲得壓縮后的Ck。
- 刪除策略:基于壓縮后的Ck,掃描所有事務(wù),對(duì)Ck中的每個(gè)項(xiàng)進(jìn)行計(jì)數(shù),然后刪除不滿足支持度閾值s的項(xiàng),從而獲得頻繁k項(xiàng)集。
算法步驟:
a. 掃描數(shù)據(jù)計(jì)算候選頻繁k項(xiàng)集的支持度
b. 去除候選頻繁k項(xiàng)集中支持度低于閾值的數(shù)據(jù)集,得到頻繁k項(xiàng)集(使用剪枝策略和刪除策略)。如果得到的頻繁k項(xiàng)集為空,則直接返回頻繁k-1項(xiàng)集的集合作為算法結(jié)果,算法結(jié)束。如果得到的頻繁k項(xiàng)集只有一項(xiàng),則直接返回頻繁k項(xiàng)集的集合作為算法結(jié)果,算法結(jié)束。
c. 基于頻繁k項(xiàng)集,自連接生成候選頻繁k+1項(xiàng)集(自連接步驟)。
算法示例
假定事物數(shù)據(jù)庫(kù)如下所示:
Step 1:將所有的單個(gè)項(xiàng)作為候選集,通過掃描數(shù)據(jù)庫(kù)中所有事務(wù),生成一個(gè)候選1項(xiàng)集C1;然后計(jì)算出每個(gè)候選集出現(xiàn)的次數(shù),并根據(jù)預(yù)先設(shè)定的最小支持度閾值 s=2,選擇頻繁1項(xiàng)集L1。
Step 2:通過項(xiàng)集L1產(chǎn)生候選頻繁2項(xiàng)集L2。
Step 3:通過項(xiàng)集L2產(chǎn)生候選頻繁3項(xiàng)集L3。
Step 4:因?yàn)長(zhǎng)3無法產(chǎn)生候選4項(xiàng)集,所以終止迭代過程。在實(shí)際情況中,當(dāng)數(shù)據(jù)較多的,一層一層向上尋找,當(dāng)無法繼續(xù)構(gòu)造時(shí)停止處理。
Step 5:根據(jù)產(chǎn)生的頻繁項(xiàng)集生成關(guān)聯(lián)規(guī)則,利用L3={ B, C, D }產(chǎn)生關(guān)聯(lián)規(guī)則,確定該頻繁項(xiàng)集中所有非空子集。
Step 6:根據(jù)各項(xiàng)子集產(chǎn)生關(guān)聯(lián)規(guī)則,并計(jì)算各個(gè)表達(dá)式的可信度。
支持度大,置信度則越高(如關(guān)聯(lián)規(guī)則2與關(guān)聯(lián)規(guī)則3),關(guān)聯(lián)規(guī)則的實(shí)用機(jī)會(huì)就大,此關(guān)聯(lián)規(guī)則就越重要;一些關(guān)聯(lián)規(guī)則置信度很高,但支持度很低(如關(guān)聯(lián)規(guī)則9, 10, 11),則此關(guān)聯(lián)規(guī)則就不那么重要。
A-priori算法的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
如果使用樸素算法,隨著尋找頻繁k項(xiàng)集中k值的增大,需要遍歷的候選項(xiàng)集數(shù)會(huì)非常巨大,而A-priori算法可以通過減少候選集的大小來獲得相對(duì)良好的性能,并且A-priori算法原理較簡(jiǎn)單,易于實(shí)現(xiàn)。
缺點(diǎn)
在數(shù)據(jù)集很大或支持度閾值設(shè)置較小時(shí),A-priori算法依然會(huì)生成數(shù)量龐大的候選項(xiàng)集,并需要對(duì)數(shù)據(jù)進(jìn)行反復(fù)的掃描,造成算法性能的低下。
總結(jié)
以上是生活随笔為你收集整理的A-priori算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jQuery可拖拽3D万花筒旋转特效
- 下一篇: vue3.0组合式api语法使用总结