数据挖掘原理与算法_技术分享|大数据挖掘算法之FPGrowth算法
程一艦
數(shù)據(jù)技術(shù)處
? ? ? 我們常說(shuō)我們生活在信息時(shí)代,實(shí)際上,我們更多的還是生活在數(shù)據(jù)時(shí)代。因?yàn)閺倪^(guò)去到現(xiàn)在累積了大量的數(shù)據(jù),對(duì)數(shù)據(jù)的挖掘和分析也僅是從最近幾年大數(shù)據(jù)和人工智能技術(shù)的發(fā)展而興起。我們對(duì)現(xiàn)有數(shù)據(jù)價(jià)值的利用還遠(yuǎn)低于數(shù)據(jù)本身?yè)碛械膬r(jià)值。隨著數(shù)據(jù)在黨的十九屆四中全會(huì)中與勞動(dòng)、資本、土地、知識(shí)、技術(shù)、管理等一起被列為生產(chǎn)要素,數(shù)據(jù)價(jià)值的挖掘?qū)?huì)越來(lái)越深入。數(shù)據(jù)挖掘在《Data Mining》一書(shū)中的解釋就是從大量數(shù)據(jù)中挖掘有趣模式和知識(shí)的過(guò)程。既然未來(lái)已來(lái),我們就要順應(yīng)時(shí)代發(fā)展,掌握必備技能。
? ? 在前面我們介紹了一種簡(jiǎn)單的挖掘商品關(guān)聯(lián)性算法。今天要介紹的是更高效的FP-Growth算法(FP指的是Frequent Pattern),它可以用到搜索詞提醒,常用詞,挖掘強(qiáng)關(guān)聯(lián)性商品,商品推薦等領(lǐng)域上。挖掘商品關(guān)聯(lián)系或者詞語(yǔ)之間的關(guān)聯(lián)性,需要做的事是構(gòu)造各種商品組合然后分析出這種組合是否是高頻率出現(xiàn)。Apriori算法每產(chǎn)生一種組合都要遍歷一次數(shù)據(jù)庫(kù)來(lái)判斷當(dāng)前組合是否是高頻記錄,這個(gè)在大量數(shù)據(jù)面前是很耗時(shí)間。
一、原理介紹
與Apriori算法相比,FP-Growth算法更進(jìn)一步,通過(guò)將交易數(shù)據(jù)巧妙的構(gòu)建出一顆FP樹(shù),然后在FP樹(shù)中遞歸的對(duì)頻繁項(xiàng)進(jìn)行挖掘。FP-Growth算法僅僅需要兩次掃描數(shù)據(jù)庫(kù),第一次是統(tǒng)計(jì)每個(gè)商品的頻次,用于剔除不滿足最低支持度的商品,然后排序得到FreqItems。第二次,掃描數(shù)據(jù)庫(kù)構(gòu)建FP樹(shù)。還是以之前Apriori的例子來(lái)一步步的詳細(xì)分析FP樹(shù)的構(gòu)建,和頻繁項(xiàng)的遞歸挖掘。
首先,找出頻繁1項(xiàng)集,支持度為50%
ID集合{1,2,3,5},所以在剔除ID=4和6后,對(duì)每條訂單的商品序列按照商品出現(xiàn)的頻率進(jìn)行重新排序,得到如下:
然后,構(gòu)建FP-Tree
如果我們想獲取誰(shuí)的頻繁模式,只需要找到該節(jié)點(diǎn)并上溯尋找到所有節(jié)點(diǎn)即可,舉個(gè)例子,找到2的頻繁項(xiàng)集候選集,可以得到兩個(gè)個(gè)路徑;根據(jù)這個(gè)FP-Tree,挖掘頻繁模式就是通過(guò)遞歸的獲取節(jié)點(diǎn)的子樹(shù)的過(guò)程。子樹(shù)構(gòu)建方式如下:新建一個(gè)新的FP樹(shù),然后遍歷樹(shù)中所有的待挖掘節(jié)點(diǎn),往上找,直到root節(jié)點(diǎn),然后把當(dāng)前路徑上的非根節(jié)點(diǎn)添加到subTree中,每個(gè)節(jié)點(diǎn)的頻次為當(dāng)前遍歷節(jié)點(diǎn)的頻次。
我們以2節(jié)點(diǎn)為例,找到2節(jié)點(diǎn)的路徑{2,1,3}和{2,3},每個(gè)路徑的頻率等于該路徑中2節(jié)點(diǎn)的頻率,因此
2-1-3=>3
2-3=>1
然后我們構(gòu)建新的subTree:
所以根據(jù)指出度為50%,我們可以得到{2},{2,3},{2,3,1}都是頻繁模式,例如{2,1,3}總共出現(xiàn)3次,3/5=0.6 = 60% 大于我們要求的支持度50%;{2}和{2,3}都出現(xiàn)4次,其他的依次類推;
二、驗(yàn)證
我們通過(guò)Spark的MLlib中提供的數(shù)據(jù)挖掘算法FP-Growth來(lái)驗(yàn)證一下我們的結(jié)果
通過(guò)結(jié)果可以看出我們的計(jì)算是對(duì)的
三、適用場(chǎng)景
除了跟Apriori算法一樣,用來(lái)進(jìn)行一些關(guān)聯(lián)商品推薦,FP-Tree還可以用于這樣的場(chǎng)景:輸入一個(gè)單詞或者單詞的一部分,推斷出你可能要搜索的查詢?cè)~項(xiàng),比如在百度輸入“xxx大學(xué)”開(kāi)始查詢時(shí),會(huì)出現(xiàn)諸如“xxx大學(xué)為什么還不放假”之類的推薦結(jié)果。
FP-Growth又稱為FP-增長(zhǎng)算法,它比Apriori算法要快,它基于Apriori構(gòu)建,但在完成相同任務(wù)時(shí)采用了一些不同的技術(shù)。不同于Apriori算法的”產(chǎn)生-測(cè)試”,這里的任務(wù)是將數(shù)據(jù)集存儲(chǔ)在一個(gè)特定的稱做FP樹(shù)的結(jié)構(gòu)之后發(fā)現(xiàn)頻繁項(xiàng)集或者頻繁項(xiàng)對(duì),即常在一塊出現(xiàn)的元素項(xiàng)的集合FP樹(shù),這種做法是的算法的執(zhí)行速度要快于Apriori,通常性能要好兩個(gè)數(shù)量級(jí)以上。
四、總結(jié)
數(shù)據(jù)挖掘中關(guān)于關(guān)聯(lián)規(guī)則或者頻繁模式挖掘類的算法,也是我們?nèi)粘I钪薪?jīng)常用到的算法。數(shù)據(jù)挖掘還有很多有趣的算法,?這些算法能讓我們更好的從數(shù)據(jù)從挖掘價(jià)值信息。同時(shí),大數(shù)據(jù)平臺(tái)也將一如既往的為各種數(shù)據(jù)挖掘類應(yīng)用提供算力支持,為我行金融科技發(fā)展打造堅(jiān)持的大數(shù)據(jù)平臺(tái)支撐。
總結(jié)
以上是生活随笔為你收集整理的数据挖掘原理与算法_技术分享|大数据挖掘算法之FPGrowth算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小喽啰啥意思
- 下一篇: mfc中怎么集成文件_怎么把几个pdf合