[机器学习] Apriori算法
適用場合
Apriori算法包含兩部分內容:1,發現頻繁項集 2,挖掘關聯規則。
通俗地解釋一下,就是這個意思:1.發現哪些項目常常同時出現 2.挖掘這些常常出現的項目是否存在“如果A那么B”的關系。
舉個例子:網店購物訂單常常會出現這樣一種情況:那就是某幾種物品常常一起買。比如鍋和鏟子、手機和手機殼等就會常常出現在同一個訂單中,因此挖掘出哪些項目常常同時出現就是1中的問題。再進一步,對于這些常常出現的頻繁項集,如果能挖掘出“若A則B”的更強關系,那就更好了。比如買了手機的常常會再買個手機殼,但是反過來不成立。
發現頻繁項集
發現頻繁項集最直觀的想法,就是想辦法對所有的項目進行全組合,也就是產生2n種,然后對這些不同的種類挨個計算出現最頻繁的組合。但是這種方法的搜索空間太大,速度非常慢。Apriori定理可以很大程度上縮小搜索空間,其內容是:任一頻繁項集的所有非空子集也必須是頻繁的,也就是說,任何一個非頻繁項集的超集一定也是非頻繁項集。這樣就可以直接刪除所有包含非頻繁項集的集合,很大程度上減少了搜索空間。
轉載了一張圖,非常明晰地說明了其中的道理:
(圖片來源:http://www.jianshu.com/p/00103435ef89)
挖掘關聯規則
挖掘關聯規則是以頻繁項集為基礎的。假設我們已經找到了幾個頻繁項集,現在要找到其中是否蘊含“若A則B”的因果關系。
要想計算是否存在因果關系,很直觀的想法就是計算條件概率P(B|A),看看在A條件下B的概率是否足夠高。
術語
假設項集有A,B。
有了上述的鋪墊,現在引入術語定義:
支持度(support):P(AB),A和B同時出現概率。越大越頻繁。
置信度(confidence):P(B|A),條件概率。越大說明因果越強。
提升度(lift):P(B|A)/P(B),有A這個條件和沒有A這個條件時,B出現的概率之比。
實現
?
轉載于:https://www.cnblogs.com/chengyuanqi/p/7352807.html
總結
以上是生活随笔為你收集整理的[机器学习] Apriori算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript中的内置对象-8--
- 下一篇: 支付宝支付-刷卡支付(条码支付)