ApacheCN 機(jī)器學(xué)習(xí)實(shí)戰(zhàn)講義 十一、使用 Apriori 算法進(jìn)行關(guān)聯(lián)分析

關(guān)聯(lián)分析
關(guān)聯(lián)分析是一種在大規(guī)模數(shù)據(jù)集中尋找有趣關(guān)系的任務(wù)。 這些關(guān)系可以有兩種形式: 頻繁項(xiàng)集(frequent item sets): 經(jīng)常出現(xiàn)在一塊的物品的集合。 關(guān)聯(lián)規(guī)則(associational rules): 暗示兩種物品之間可能存在很強(qiáng)的關(guān)系。
相關(guān)術(shù)語
關(guān)聯(lián)分析(關(guān)聯(lián)規(guī)則學(xué)習(xí)): 從大規(guī)模數(shù)據(jù)集中尋找物品間的隱含關(guān)系被稱作
關(guān)聯(lián)分析(associati analysis)
或者關(guān)聯(lián)規(guī)則學(xué)習(xí)(association rule learning)
。 下面是用一個(gè)雜貨店
例子來說明這兩個(gè)概念,如下圖所示:

頻繁項(xiàng)集: {葡萄酒, 尿布, 豆奶} 就是一個(gè)頻繁項(xiàng)集的例子。
關(guān)聯(lián)規(guī)則: 尿布 -> 葡萄酒 就是一個(gè)關(guān)聯(lián)規(guī)則。這意味著如果顧客買了尿布,那么他很可能會買葡萄酒。
那么 頻繁
的定義是什么呢?怎么樣才算頻繁呢? 度量它們的方法有很多種,這里我們來簡單的介紹下支持度和可信度。 支持度: 數(shù)據(jù)集中包含該項(xiàng)集的記錄所占的比例。例如上圖中,{豆奶} 的支持度為 4/5。{豆奶, 尿布} 的支持度為 3/5。 可信度: 針對一條諸如 {尿布} -> {葡萄酒} 這樣具體的關(guān)聯(lián)規(guī)則來定義的。這條規(guī)則的 可信度
被定義為 支持度({尿布, 葡萄酒})/支持度({尿布})
,從圖中可以看出 支持度({尿布, 葡萄酒}) = 3/5,支持度({尿布}) = 4/5,所以 {尿布} -> {葡萄酒} 的可信度 = 3/5 / 4/5 = 3/4 = 0.75。
支持度
和 可信度
是用來量化 關(guān)聯(lián)分析
是否成功的一個(gè)方法。 假設(shè)想找到支持度大于 0.8 的所有項(xiàng)集,應(yīng)該如何去做呢? 一個(gè)辦法是生成一個(gè)物品所有可能組合的清單,然后對每一種組合統(tǒng)計(jì)它出現(xiàn)的頻繁程度,但是當(dāng)物品成千上萬時(shí),上述做法就非常非常慢了。 我們需要詳細(xì)分析下這種情況并討論下 Apriori 原理,該原理會減少關(guān)聯(lián)規(guī)則學(xué)習(xí)時(shí)所需的計(jì)算量。
閱讀全文:http://ml.apachecn.org/mlia/apriori/