日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

机器学习(十八)——关联规则挖掘

發(fā)布時間:2023/12/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习(十八)——关联规则挖掘 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

關(guān)聯(lián)規(guī)則挖掘

基本概念(續(xù))

定義一:設I={i1,i2,,im},是m個不同的項目的集合,每個ik稱為一個項目。項目的集合I稱為項集。其元素的個數(shù)稱為項集的長度,長度為k的項集稱為k-項集。引例中每個商品就是一個項目,項集為I={bread,beer,cake,cream,milk,tea},I的長度為6。

定義二:每筆交易T是項集I的一個子集。對應每一個交易有一個唯一標識交易號,記作TID。交易全體構(gòu)成了交易數(shù)據(jù)庫D|D|等于D中交易的個數(shù)。引例中包含10筆交易,因此|D|=10。

定義三:對于項集X,設定count(X?T)為交易集D中包含X的交易的數(shù)量,則項集X的支持度為:

support(X)=count(X?T)|D|

引例中X={bread,milk}出現(xiàn)在T1,T2,T5,T9和T10中,所以支持度為0.5。

定義四最小支持度是項集的最小支持閥值,記為SUPmin,代表了用戶關(guān)心的關(guān)聯(lián)規(guī)則的最低重要性。支持度不小于SUPmin的項集稱為頻繁集,長度為k的頻繁集稱為k-頻繁集。如果設定SUPmin為0.3,引例中{bread,milk}的支持度是0.5,所以是2-頻繁集。

定義五關(guān)聯(lián)規(guī)則是一個蘊含式:

RX?Y

其中X?IY?I,并且XY=?。表示項集X在某一交易中出現(xiàn),則導致Y以某一概率也會出現(xiàn)。用戶關(guān)心的關(guān)聯(lián)規(guī)則,可以用兩個標準來衡量:支持度和可信度。

定義六:關(guān)聯(lián)規(guī)則R的支持度是交易集同時包含X和Y的交易數(shù)與|D|之比。即:

support(X?Y)=count(XY)|D|

支持度反映了X、Y同時出現(xiàn)的概率。關(guān)聯(lián)規(guī)則的支持度等于頻繁集的支持度。

定義七:對于關(guān)聯(lián)規(guī)則R,可信度是指包含X和Y的交易數(shù)與包含X的交易數(shù)之比。即:

confidence(X?Y)=support(X?Y)support(X)

可信度反映了如果交易中包含X,則交易包含Y的概率。一般來說,只有支持度和可信度較高的關(guān)聯(lián)規(guī)則才是用戶感興趣的。

定義八:設定關(guān)聯(lián)規(guī)則的最小支持度和最小可信度為SUPminCONFmin。規(guī)則R的支持度和可信度均不小于SUPminCONFmin,則稱為強關(guān)聯(lián)規(guī)則。關(guān)聯(lián)規(guī)則挖掘的目的就是找出強關(guān)聯(lián)規(guī)則,從而指導商家的決策。

這八個定義包含了關(guān)聯(lián)規(guī)則相關(guān)的幾個重要基本概念,關(guān)聯(lián)規(guī)則挖掘主要有兩個問題:

1.找出交易數(shù)據(jù)庫中所有大于或等于用戶指定的最小支持度的頻繁項集。

2.利用頻繁項集生成所需要的關(guān)聯(lián)規(guī)則,根據(jù)用戶設定的最小可信度篩選出強關(guān)聯(lián)規(guī)則。

其中,步驟1是關(guān)聯(lián)規(guī)則挖掘算法的難點,下文介紹的Apriori算法和FP-growth算法,都是解決步驟1問題的算法。

參考:

http://blog.csdn.net/OpenNaive/article/details/7047823

Apriori算法

Apriori算法的思路如下:

1.第一次掃描交易數(shù)據(jù)庫D時,產(chǎn)生1-頻繁集。在此基礎上經(jīng)過連接、修剪產(chǎn)生2-頻繁集。以此類推,直到無法產(chǎn)生更高階的頻繁集為止。

2.在第k次循環(huán)中,也就是產(chǎn)生k-頻繁集的時候,首先產(chǎn)生k-候選集,k-候選集中每一個項集都是對兩個只有一個項不同的屬于k-1頻繁集的項集連接產(chǎn)生的。

3.k-候選集經(jīng)過篩選后產(chǎn)生k-頻繁集。

從頻繁集的定義,我們可以很容易的推導出如下結(jié)論:

如果項目集X是頻繁集,那么它的非空子集都是頻繁集。

如果k-候選集中的項集Y,包含有某個k-1階子集不屬于k-1頻繁集,那么Y就不可能是頻繁集,應該從候選集中裁剪掉。Apriori算法就是利用了頻繁集的這個性質(zhì)。

參考:

http://zhan.renren.com/dmeryuyang?gid=3602888498023976650&checked=true

http://blog.csdn.net/lizhengnanhua/article/details/9061755

FP-growth算法

Aprori算法利用頻繁集的兩個特性,過濾了很多無關(guān)的集合,效率提高不少,但是我們發(fā)現(xiàn)Apriori算法是一個候選消除算法,每一次消除都需要掃描一次所有數(shù)據(jù)記錄,造成整個算法在面臨大數(shù)據(jù)集時顯得無能為力。

FP-Growth算法是韓家煒等人在2000年提出的關(guān)聯(lián)分析算法。它通過構(gòu)造一個樹結(jié)構(gòu)來壓縮數(shù)據(jù)記錄,使得挖掘頻繁項集只需要掃描兩次數(shù)據(jù)記錄,而且該算法不需要生成候選集合,所以效率會比較高。

注:韓家煒,中國科學技術(shù)大學本科(1979)+中科院碩士+威斯康辛大學博士(1985)。美國伊利諾伊大學香檳分校計算機系教授,IEEE和ACM院士。

FpGrowth算法的平均效率遠高于Apriori算法,但是它并不能保證高效率,它的效率依賴于數(shù)據(jù)集,當數(shù)據(jù)集中的頻繁項集的沒有公共項時,所有的項集都掛在根結(jié)點上,不能實現(xiàn)壓縮存儲,而且Fptree還需要其他的開銷,需要存儲空間更大,使用FpGrowth算法前,對數(shù)據(jù)分析一下,看是否適合用FpGrowth算法。

參考:

http://www.cnblogs.com/fengfenggirl/p/associate_fpgowth.html

幸存者偏差

二戰(zhàn)期間,盟軍需要對戰(zhàn)斗機進行裝甲加厚,以提高生還率,但由于軍費有限,只能進行局部升級。那么問題來了,究竟哪個部位最關(guān)鍵,最值得把裝甲加厚來抵御敵方炮火呢?人們眾口不一,最后一致決定采用統(tǒng)計調(diào)查的方式來解決,即:仔細檢查每一駕戰(zhàn)斗機返回時受到的損傷程度,計算出飛機整體的受彈狀況,然后根據(jù)大數(shù)據(jù)分析決定。

不久,統(tǒng)計數(shù)據(jù)很快出爐:盟軍飛機普遍受彈最嚴重的地方是機翼,有的幾乎被打成了篩子;相反,受彈最輕的地方是駕駛艙及尾部發(fā)動機,許多飛機的駕駛艙甚至連擦傷都沒有。

正當所有人拿著這份確鑿無疑的報告準備給機翼加厚裝甲時,統(tǒng)計學家Abraham Wald阻攔了他們,同時提出了一個完全相反的方案:加厚駕駛艙與尾部。理由非常簡單:這兩個位置中彈的飛機,都沒有回來。換言之,它們是一份沉默的數(shù)據(jù)——“死人不會說話”。

最后,盟軍高層紛紛聽取了這個建議,加固了駕駛艙與尾部,果然空中戰(zhàn)場局勢得以好轉(zhuǎn),駕駛員生還率也大大提高。事實證明,這是一個無比英明的措施。

這個事例也被稱作“幸存者偏差”(Survivorship bias)。它是一種典型的由于模型不當,導致的“數(shù)據(jù)說謊”。

注:Abraham Wald,1902~1950,生于奧匈帝國,維也納大學博士。1938年為躲避納粹,移民美國,哥倫比亞大學教授。Herman Chernoff的導師。其子Robert M. Wald,為著名理論物理學家,芝加哥大學教授,黑洞理論的提出者之一。

關(guān)聯(lián)規(guī)則評價

“數(shù)據(jù)說謊”的問題很普遍。再看這樣一個例子,我們分析一個購物籃數(shù)據(jù)中購買游戲光碟和購買影片光碟之間的關(guān)聯(lián)關(guān)系。交易數(shù)據(jù)集共有10,000條記錄,如表1所示:

表1買游戲不買游戲行總計
買影片400035007500
不買影片20005002500
列總計6000400010000

假設我們設置得最小支持度為30%,最小自信度為60%。從上面的表中,可以得到:

support()=4000/10000=40%

confidence()=4000/6000=66%

這條規(guī)則的支持度和自信度都滿足要求,因此我們很興奮,我們找到了一條強規(guī)則,于是我們建議超市把影片光碟和游戲光碟放在一起,可以提高銷量。

可是我們想想,一個喜歡的玩游戲的人會有時間看影片么,這個規(guī)則是不是有問題,事實上這條規(guī)則誤導了我們。在整個數(shù)據(jù)集中買影片光碟的概率p(買影片)=7500/10000=75%,而買游戲的人也買影片的概率只有66%,66%<75%恰恰說明了買游戲光碟抑制了影片光碟的購買,也就是說買了游戲光碟的人更傾向于不買影片光碟,這才是符合現(xiàn)實的。

從上面的例子我們看到,支持度和自信度并不總能成功濾掉那些我們不感興趣的規(guī)則,因此我們需要一些新的評價標準,下面介紹幾種評價標準:

相關(guān)性系數(shù)

相關(guān)性系數(shù)的英文名是Lift,這就是一個單詞,而不是縮寫。

lift(X?Y)=supp(XY)supp(X)×supp(Y)

lift(X?Y)???>1,=1,<1,關(guān)關(guān)

實際運用中,正相關(guān)和負相關(guān)都是我們需要關(guān)注的,而獨立往往是我們不需要的。顯然:

lift(X?Y)=lift(Y?X)

確信度

Conviction的定義如下:

conv(X?Y)=1?supp(Y)1?conf(X?Y)

它的值越大,表明X、Y的獨立性越小。

卡方系數(shù)

卡方系數(shù)是與卡方分布有關(guān)的一個指標。參見:

https://en.wikipedia.org/wiki/Chi-squared_distribution

χ2=i=1n(Oi?Ei)2Ei

注:上式最早是Pearson給出的。

公式中的Oi表示數(shù)據(jù)的實際值,Ei表示期望值,不理解沒關(guān)系,我們看一個例子就明白了。

表2買游戲不買游戲行總計
買影片4000(4500)3500(3000)7500
不買影片2000(1500)500(1000)2500
列總計6000400010000

表2的括號中表示的是期望值。以第1行第1列的4500為例,其計算方法為:7500×6000/10000。

經(jīng)計算可得表2的卡方系數(shù)為555.6?;谥眯潘胶妥杂啥?span id="ozvdkddzhkzd" class="MathJax_Preview">(r?1)?(c?1)=(數(shù)?1)?(數(shù)?1)=1,查表得到自信度為(1-0.001)的值為6.63。

555.6>6.63,因此拒絕A、B獨立的假設,即認為A、B是相關(guān)的,而

E()=4500>4000 ,因此認為A、B呈負相關(guān)。

全自信度

all_confidence(A,B)=P(AB)max{P(A),P(B)}=min{P(B|A),P(A|B)}=min{confidence(AB),confidence(BA)}

最大自信度

max_confidence(A,B)=max{confidence(AB),confidence(BA)}

Kulc

kulc(A,B)=confidence(AB)+confidence(BA)2

cosine距離

cosine(A,B)=P(AB)sqrt(P(A)?P(B))=sqrt(P(A|B)?P(B|A))=sqrt(confidence(AB)?confidence(BA))

Leverage

Leverage(A,B)=P(AB)?P(A)P(B)

不平衡因子

imbalance ratio的定義:

IR(A,B)=|support(A)?support(B)|(support(A)+support(B)?support(AB))

全自信度、最大自信度、Kulc、cosine,Leverage是不受空值影響的,這在處理大數(shù)據(jù)集是優(yōu)勢更加明顯,因為大數(shù)據(jù)中空記錄更多,根據(jù)分析我們推薦使用kulc準則和不平衡因子結(jié)合的方法。

參考:

http://www.cnblogs.com/fengfenggirl/p/associate_measure.html

總結(jié)

以上是生活随笔為你收集整理的机器学习(十八)——关联规则挖掘的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。