c語(yǔ)言實(shí)現(xiàn)apriori算法:快速挖掘頻繁項(xiàng)集

各位老鐵們,大家好,今天由我來(lái)為大家分享c語(yǔ)言實(shí)現(xiàn)apriori算法:快速挖掘頻繁項(xiàng)集,以及用apriori算法找出頻繁項(xiàng)集的相關(guān)問(wèn)題知識(shí),希望對(duì)大家有所幫助。如果可以...
各位老鐵們,大家好,今天由我來(lái)為大家分享c語(yǔ)言實(shí)現(xiàn)apriori算法:快速挖掘頻繁項(xiàng)集,以及用apriori算法找出頻繁項(xiàng)集的相關(guān)問(wèn)題知識(shí),希望對(duì)大家有所幫助。如果可以幫助到大家,還望關(guān)注收藏下本站,您的支持是我們最大的動(dòng)力,謝謝大家了哈,下面我們開(kāi)始吧!
文章目錄:
- 1、關(guān)聯(lián)規(guī)則挖掘:Apriori算法的深度探討
- 2、頻繁子圖挖掘算法兩種經(jīng)典頻繁子圖挖掘算法
- 3、apriori算法流程
- 4、Apriori算法如何定義頻繁項(xiàng)集?
- 5、Apriori算法大概流程(例題說(shuō)明)
關(guān)聯(lián)規(guī)則挖掘:Apriori算法的深度探討
Apriori算法是一種用于挖掘數(shù)據(jù)集中頻繁項(xiàng)集的算法,進(jìn)而用于生成關(guān)聯(lián)規(guī)則。這種算法在數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)、市場(chǎng)籃子分析等多個(gè)領(lǐng)域都有廣泛的應(yīng)用。關(guān)聯(lián)規(guī)則挖掘是數(shù)據(jù)挖掘中的一個(gè)重要分支,其目標(biāo)是發(fā)現(xiàn)在一個(gè)數(shù)據(jù)集中變量間存在的有趣的關(guān)聯(lián)或模式。
理解關(guān)聯(lián)規(guī)則apriori算法:Apriori算法是第一個(gè)關(guān)聯(lián)規(guī)則挖掘算法,也是最經(jīng)典的算法,它利用逐層搜索的迭代方法找出數(shù)據(jù)庫(kù)中項(xiàng)集的關(guān)系,以形成規(guī)則,其過(guò)程由連接【類矩陣運(yùn)算】與剪枝【去掉那些沒(méi)必要的中間結(jié)果】組成。
Apriori算法作為關(guān)聯(lián)規(guī)則挖掘的基石,其名稱源于算法利用頻繁項(xiàng)集的先驗(yàn)知識(shí)。1993年,Rakesh Agrawal等人首次提出如何在顧客交易數(shù)據(jù)庫(kù)中發(fā)現(xiàn)項(xiàng)集間的關(guān)聯(lián)規(guī)則問(wèn)題,自此,Apriori算法備受關(guān)注。在數(shù)據(jù)挖掘中,基礎(chǔ)概念至關(guān)重要。事務(wù)通常表示為包含多個(gè)項(xiàng)目的,每個(gè)項(xiàng)目(item)是事務(wù)的組成部分。
Apriori算法的主要思想是找出存在于事物數(shù)據(jù)集中的最大頻繁項(xiàng)集,再利用得到的最大頻繁項(xiàng)集與預(yù)先設(shè)定的最小置信度閾值生成強(qiáng)關(guān)聯(lián)規(guī)則。項(xiàng)集是項(xiàng)的。包含k個(gè)項(xiàng)的項(xiàng)集成為k項(xiàng)集。項(xiàng)集的出現(xiàn)頻率是所有包含項(xiàng)集的事務(wù)計(jì)數(shù),又稱為絕對(duì)支持度或支持度計(jì)數(shù)。
頻繁子圖挖掘算法兩種經(jīng)典頻繁子圖挖掘算法
1、針對(duì)子圖挖掘,兩種常見(jiàn)算法是AGM和FSG。AGM算法的特點(diǎn)是每次增加一個(gè)頂點(diǎn),而FSG算法則每次添加一條邊,兩者在擴(kuò)展子集時(shí)采取了不同的策略。另一種流行的算法是FP-growth,其核心在于將頻繁子集的數(shù)據(jù)壓縮到FP-tree(頻繁模式樹(shù))中,這是一種高效的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)項(xiàng)的關(guān)聯(lián)信息。
2、在模式挖掘領(lǐng)域,根據(jù)輸入數(shù)據(jù)類型的不同,可以將頻繁子圖挖掘算法分為兩種主要類別:graph-transaction型:這種類型的算法處理的數(shù)據(jù)集由眾多規(guī)模較小的圖組成,每個(gè)圖包含幾十到幾百個(gè)頂點(diǎn)。其計(jì)算策略是僅關(guān)注候選子圖在圖中是否出現(xiàn),無(wú)論在同一個(gè)圖中出現(xiàn)多少次,都只計(jì)數(shù)一次。
3、頻繁子圖挖掘算法的原理相對(duì)直觀,主要依賴遞歸計(jì)數(shù)法來(lái)找出所有頻繁出現(xiàn)的子圖。然而,這種方法在處理大型圖集時(shí)效率較低,主要問(wèn)題在于生成候選子圖時(shí)需要頻繁地檢查是否存在k-1子圖的重復(fù),當(dāng)圖的數(shù)量龐大時(shí),這會(huì)消耗大量時(shí)間。
4、在進(jìn)行子圖比較之前,通常使用節(jié)點(diǎn)錨點(diǎn)來(lái)獲取錨點(diǎn)的n跳鄰域信息。這種方法可以看作是GNN思想的應(yīng)用,即通過(guò)計(jì)算兩個(gè)錨點(diǎn)的embedding來(lái)斷鄰域是否同構(gòu),并得到兩個(gè)錨點(diǎn)的對(duì)應(yīng)關(guān)系。圖$G_T$的分解過(guò)程實(shí)際上就是獲取每個(gè)節(jié)點(diǎn)的領(lǐng)域表示。深度越深,模型的成本越高。
apriori算法流程
1、算法流程 初始化階段:設(shè)定一個(gè)最小支持度閾值,這個(gè)閾值用于確定哪些項(xiàng)組合是頻繁的。 單項(xiàng)集生成:掃描數(shù)據(jù)集,計(jì)算每個(gè)單獨(dú)項(xiàng)的頻數(shù),找出那些達(dá)到最小支持度的單項(xiàng)集。 項(xiàng)集擴(kuò)展:通過(guò)組合現(xiàn)有的頻繁項(xiàng)集來(lái)生成更大的候選項(xiàng)集,并計(jì)算它們的支持度。
2、首先,從數(shù)據(jù)庫(kù)的整體交易記錄開(kāi)始([公式]),計(jì)算每個(gè)商品的絕對(duì)支持度,即其出現(xiàn)次數(shù)。例如,假設(shè)我們得到的初始列表為{A:3, B:4, C:3, D:4, E:3}。然后,通過(guò)設(shè)定最小絕對(duì)支持度閾值([公式]),例如3,篩選出頻繁項(xiàng)集。
3、Apriori算法思想主要包括找出頻集和生成強(qiáng)關(guān)聯(lián)規(guī)則兩部分。頻集是指出現(xiàn)次數(shù)至少與預(yù)設(shè)最小支持度相等的項(xiàng)集。強(qiáng)關(guān)聯(lián)規(guī)則則需滿足最小支持度和最小可信度。舉例說(shuō)明,求所有頻繁項(xiàng)集,設(shè)最小支持度為50%,則支持度*項(xiàng)數(shù)=4*0.5=2,即出現(xiàn)次數(shù)為2的項(xiàng)集為頻繁項(xiàng)集。
4、Apriori算法的工作原理基于頻繁項(xiàng)集的查找。首先,計(jì)算單個(gè)商品的支持度,篩選出滿足最小支持度閾值的項(xiàng)集。隨后,將商品兩兩組合,計(jì)算K=2項(xiàng)集的支持度,進(jìn)一步篩選出頻繁項(xiàng)集。此過(guò)程遞歸進(jìn)行,直至無(wú)法形成新的頻繁項(xiàng)集,最終得到頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則。
5、Apriori算法的流程主要包含兩個(gè)步驟:頻繁項(xiàng)集生成和關(guān)聯(lián)規(guī)則生成。例子:假設(shè)有一個(gè)購(gòu)物交易數(shù)據(jù)集,其中包括5筆交易。第一步是計(jì)算所有單一商品(如“牛奶”,“面包”等)在這5筆交易中的出現(xiàn)次數(shù),并篩選出那些出現(xiàn)次數(shù)達(dá)到最小支持度的商品。
6、算法步驟: Apriori算法的目標(biāo)是找到最大的K項(xiàng)頻繁集。這里有兩層意思,首先,我們要找到符合支持度標(biāo)準(zhǔn)的頻繁集。但是這樣的頻繁集可能有很多。第二層意思就是我們要找到最大個(gè)數(shù)的頻繁集。Apriori算法采用了迭代的方法,先搜索出候選1項(xiàng)集及對(duì)應(yīng)的支持度,剪枝去掉低于支持度的1項(xiàng)集,得到頻繁1項(xiàng)集。
Apriori算法如何定義頻繁項(xiàng)集?
1、頻繁項(xiàng)集主要定理是Apriori算法 最基本的模式是項(xiàng)集,它是指若干個(gè)項(xiàng)的。頻繁模式是指數(shù)據(jù)集中頻繁出現(xiàn)的項(xiàng)集、序列或子結(jié)構(gòu)。頻繁項(xiàng)集是指支持度大于等于最小支持度(min_sup)的。其中支持度是指某個(gè)在所有事務(wù)中出現(xiàn)的頻率。頻繁項(xiàng)集的經(jīng)典應(yīng)用是購(gòu)物籃模型。
2、在Apriori算法中,一個(gè)關(guān)鍵概念是“頻繁項(xiàng)集”或簡(jiǎn)稱“頻集”。它指的是所有支持度超過(guò)設(shè)定的最小閾值的項(xiàng)目組合。換句話說(shuō),如果一個(gè)項(xiàng)目組合在大量數(shù)據(jù)中出現(xiàn)的頻率超過(guò)預(yù)設(shè)的最低標(biāo)準(zhǔn),那么它就被認(rèn)為是一個(gè)頻繁項(xiàng)集。
3、頻繁項(xiàng)集是指經(jīng)常出現(xiàn)在一起的物品,它們被稱為頻繁項(xiàng)集,它是由數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)中的Apriori算法來(lái)計(jì)算的。Apriori算法通過(guò)計(jì)算一組物品在一個(gè)數(shù)據(jù)集中的頻繁程度來(lái)計(jì)算出頻繁項(xiàng)集。它的工作原理是,首先檢查所有單個(gè)物品,然后檢查兩個(gè)物品的組合,以此類推,直到發(fā)現(xiàn)所有的頻繁項(xiàng)集。
4、包含K個(gè)項(xiàng)的為k項(xiàng)集。項(xiàng)集出現(xiàn)的頻率是包含項(xiàng)集的事務(wù)數(shù),稱為項(xiàng)集的頻率。如果某項(xiàng)集滿足最小支持度,則稱它為頻繁項(xiàng)集。Apriori算法是第一個(gè)關(guān)聯(lián)規(guī)則挖掘算法,也是最經(jīng)典的算法。關(guān)聯(lián)規(guī)則挖掘是數(shù)據(jù)挖掘中最活躍的研究方法之一 。
5、算法基本原理 Apriori算法基于一個(gè)關(guān)鍵觀察:在某些交易數(shù)據(jù)集中,頻繁出現(xiàn)的項(xiàng)組合往往具有某些共同屬性或項(xiàng)。例如,如果一個(gè)商品被頻繁購(gòu)買,那么與該商品經(jīng)常一起被購(gòu)買的其他商品也可能頻繁出現(xiàn)。算法通過(guò)迭代搜索,找出所有頻繁項(xiàng)集,即那些出現(xiàn)頻率超過(guò)預(yù)設(shè)閾值的項(xiàng)組合。
Apriori算法大概流程(例題說(shuō)明)
Apriori算法思想主要包括找出頻集和生成強(qiáng)關(guān)聯(lián)規(guī)則兩部分。頻集是指出現(xiàn)次數(shù)至少與預(yù)設(shè)最小支持度相等的項(xiàng)集。強(qiáng)關(guān)聯(lián)規(guī)則則需滿足最小支持度和最小可信度。舉例說(shuō)明,求所有頻繁項(xiàng)集,設(shè)最小支持度為50%,則支持度*項(xiàng)數(shù)=4*0.5=2,即出現(xiàn)次數(shù)為2的項(xiàng)集為頻繁項(xiàng)集。
首先,從數(shù)據(jù)庫(kù)的整體交易記錄開(kāi)始([公式]),計(jì)算每個(gè)商品的絕對(duì)支持度,即其出現(xiàn)次數(shù)。例如,假設(shè)我們得到的初始列表為{A:3, B:4, C:3, D:4, E:3}。然后,通過(guò)設(shè)定最小絕對(duì)支持度閾值([公式]),例如3,篩選出頻繁項(xiàng)集。
首先,使用`plot(last.rules,control = list(jitter=2,col=rev(brewer.pal(9,Greens)[4:9]),shading = lift)`繪制散點(diǎn)圖,此處`last.rules`是通過(guò)Apriori算法對(duì)Groceries數(shù)據(jù)庫(kù)進(jìn)行分析后得到的關(guān)聯(lián)規(guī)則。
Apriori算法基于一個(gè)關(guān)鍵觀察:在某些交易數(shù)據(jù)集中,頻繁出現(xiàn)的項(xiàng)組合往往具有某些共同屬性或項(xiàng)。例如,如果一個(gè)商品被頻繁購(gòu)買,那么與該商品經(jīng)常一起被購(gòu)買的其他商品也可能頻繁出現(xiàn)。算法通過(guò)迭代搜索,找出所有頻繁項(xiàng)集,即那些出現(xiàn)頻率超過(guò)預(yù)設(shè)閾值的項(xiàng)組合。
Apriori算法的工作原理基于頻繁項(xiàng)集的查找。首先,計(jì)算單個(gè)商品的支持度,篩選出滿足最小支持度閾值的項(xiàng)集。隨后,將商品兩兩組合,計(jì)算K=2項(xiàng)集的支持度,進(jìn)一步篩選出頻繁項(xiàng)集。此過(guò)程遞歸進(jìn)行,直至無(wú)法形成新的頻繁項(xiàng)集,最終得到頻繁項(xiàng)集和關(guān)聯(lián)規(guī)則。
關(guān)于c語(yǔ)言實(shí)現(xiàn)apriori算法:快速挖掘頻繁項(xiàng)集和用apriori算法找出頻繁項(xiàng)集的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
本文鏈接:http://tiantaijiaoyu.cn/bian/226260.html