1. 程式人生 > >【機器學習】--關聯規則算法從初識到應用

【機器學習】--關聯規則算法從初識到應用

掃描 去掉 要求 ini con imu 時也 暗示 width

一、前述

  關聯規則的目的在於在一個數據集中找出項之間的關系,也稱之為購物藍分析 (market basket analysis)。例如,購買鞋的顧客,有10%的可能也會買襪子,60%的買面包的顧客,也會買牛奶。這其中最有名的例子就是"尿布和啤酒"的故事了。

二、相關概念

關聯分析在大規模數據集中尋找有趣關系的任務。這些關系可以有兩種形式:頻繁項集或者關聯規則。 頻繁項集:(frequent item sets)是指經常出現在一起的物品的集合, 關聯關系:(association rules)暗示兩種物品之間可能存在很強的關系。 項與項集: 技術分享圖片

比如上面的{尿布,葡萄酒}就頻繁出現,他們之間可能存在一些關系,辣麽,如何來確定是否是頻繁項集呢?主要是依靠支持度和可信度。

首先我們來看,什麽是規則?規則形如"如果…那麽…(If…Then…)",前者為條件,後者為結果。例如一個顧客,如果買了可樂,那麽他也會購買果汁。

如何來度量一個規則是否夠好?有兩個量,置信度(Confidence)和支持度(Support)

假設有如下表的購買記錄。

技術分享圖片

整理後如圖:

技術分享圖片

上表中橫欄和縱欄的數字表示同時購買這兩種商品的交易條數。如購買有Orange的交易數為4,而同時購買Orange和Coke的交易數為2。

置信度表示了這條規則有多大程度上值得可信設條件的項的集合為A,結果的集合為B。置信度計算在A中,同時也含有B的概率。即Confidence(A==>B)=P(B|A)。例 如計算"如果Orange則Coke"的置信度。由於在含有Orange的4條交易中,僅有2條交易含有Coke.其置信度為0.5。

支持度計算在所有的交易集中,既有A又有B的概率。例如在5條記錄中,既有Orange又有Coke的記錄有2條。則此條規則的支持度為2/5=0.4。現在這條規則可表述為,如果一個顧客購買了Orange,則有50%的可能購買Coke。而這樣的情況(即買了Orange會再買Coke)會有40%的可能發生。支持度是針對項集來說的,因此可以定義一個最小支持度,而只保留滿足最小支持度的項集

關聯規則要求項集必須滿足的最小支持閾值,稱為項集的最小支持度(Minimum Support),記為supmin支持度大於或等於supmin的項集稱為頻繁項集,簡稱頻繁集,反之則稱為非頻繁集。通常k-項集如果滿足supmin,稱為k-頻繁集,記作Lk。關聯規則的最小置信度(Minimum Confidence)記為confmin

,它表示關聯規則需要滿足的最低可靠性。

三、Apriori算法

1、原理

如果某個項集是頻繁的,那麽它的所有子集也是頻繁的。該定理的逆反定理為:如果某一個項集是非頻繁的,那麽它的所有超集(包含該集合的集合)也是非頻繁的。Apriori原理的出現,可以在得知某些項集是非頻繁之後,不需要計算該集合的超集,有效地避免項集數目的指數增長,從而在合理時間內計算出頻繁項集。 2、實現 Apriori算法是發現頻繁項集的一種方法。Apriori算法的兩個輸入參數分別是最小支持度和數據集。該算法首先會生成所有單個物品的項集列表->接著掃描交易記錄來查看哪些項集滿足最小支持度要求,其中不滿足最小支持度的集合會被去掉->然後對剩下的集合進行組合以生成包含兩個數據集的項集->接著重新掃描交易記錄,去掉不滿足最小支持度的項集->該過程重復進行直到所有項集都被濾掉。



【機器學習】--關聯規則算法從初識到應用