1. 程式人生 > >Apriori算法的初步分析

Apriori算法的初步分析

bus mir res wdf emd ugo ++ pcf ati

一、簡介 Apriori算法是一種挖掘關聯規則的頻繁項集算法,其核心思想是通過候選集生成和情節的向下封閉檢測兩個階段來挖掘頻繁項集。而且算法已經被廣泛的應用到商業、網絡安全等各個領域。例如著名的購物籃問題。 二、結合應用分析 1、購物籃問題:顧客在買了某種商品時也會買另一種商品。例如下面這些關聯:
TID Iterms
1 {Bread, Milk}
2 {Bread, Diapers, Beer, Eggs}
3 {Milk, Diapers, Beer, Cola}
4 {Bread, Milk, Diapers, Beer}
5 {Bread, Milk, Beer, Cola}
例如Diaper<->Beer,即顧客在買完尿布之後通常會買啤酒。後來通過調查分析,原來妻子囑咐丈夫給孩子買尿布時,丈夫在買完尿布後通常會買自己喜歡的啤酒。 但是這個關聯是否可靠呢?需要有一個度量標準:支持度和置信度 2、支持度和置信度 關聯規則描述為下面這樣的映射: 項集->項集 項集X出現事務次數定義為: σ(X)=|ti|X?ti,ti∈T|ti表示某個事務,T為事務集合 關聯規則X->Y的支持度定義為: s(X?Y)=σ(X∪Y)/|T|,定義了X∪Y的出現頻次 置信度定義為: s(X?Y)=σ(X∪Y)/σ(X),可見置信度可以理解為條件概率p(Y|X),表示X下Y的概率 由此可見,一個關聯規則是否合適,支持度和置信度應大於某個閾值,支持度大於閾值的項集稱為頻繁項集 所以關聯分析主要分兩步: 1. 生成頻繁項集 2. 在頻繁項集F中,找出所有置信度大於最小置信度的關聯規則X->Y 3、Apriori算法 定理1:如果一個項集是頻繁的,那麽其所有的子集(subsets)也一定是頻繁的。這個比較容易證明,因為某項集的子集的支持度一定不小於該項集。 定理2:如果一個項集是非頻繁的,那麽其所有的超集(supersets)也一定是非頻繁的。定理2是上一條定理的逆反定理。根據定理2,可以對項集樹進行如下剪枝: 技術分享 項集樹共有子項:技術分享
,由此可見窮舉法的暴力破解復雜度會很高,Apriori算法基於上面兩個定理給出了 兩種策略: Fk=Fk?1×F1,如圖頻繁項集F1和F2生成候選集C3 技術分享 Fk=Fk?1×Fk?1Fk=Fk?1×Fk?1

Apriori算法的初步分析