Apriori算法
優點:易編碼實現。
缺點:在大數據集上可能較慢。
適用數據:數值型、標稱型。
1、關聯分析
關聯分析尋找的關系可以有兩種形式:頻繁項集或者關聯規則。
頻繁項集:經常出現在一塊的物品的集合;
關聯規則:暗示兩種物品之間可能存在很強的關系。
支持度:數據集中包含該項集的記錄所占的比例。(針對項集)
可信度/置信度:一條關聯規則{A}-->{B},支持度({A,B})/支持度({A})的比值為可信度。(針對關聯規則)
2、Apriori原理
對於包含N種物品的數據集共有2N-1種項集組合。
目的:為了降低所需的計算時間。減少可能感興趣的項集
原理:如果某個項集是頻繁的,那么它的所有子集也是頻繁的;如果一個項集是非頻繁集,那么它的所有超集也是非頻繁的。
3、使用Apriori算法來發現頻繁集
關聯分析的目標:發現頻繁集和發現關聯規則。
頻繁項集的量化指標:滿足最小支持度
算法過程(輸入為最小支持度和數據集):首先會生成所有單個物品的項集列表;接着掃描交易記錄來查看哪些項集滿足最小支持度要求,那些不滿足最小支持度的集合會被去掉;然后對剩下的集合進行組合以生成包含兩個元素的項集;接下來,再重新掃描交易記錄,去掉不滿足最小支持度的項集。該過程重復進行直到所有項集都被去掉。
python實現如下:
4、從頻繁項集中挖掘關聯規則
關聯規則箭頭左邊的集合稱作前件,箭頭右邊的集合稱為后件。
關聯規則的量化指標:滿足最小可信度
一條規則P->H的可信度:support(P|H)/support(P)
性質屬性:如果某條規則並不滿足最小可信度要求,那么該規則的所有子集(左件的子集)也不會滿足最小可信度要求。
算法過程(分級法):首先從一個頻繁項集開始,接着創建一個規則列表,其中規則右部只包含一個元素,然后對這些規則進行測試;接下來合並所有剩余規則來創建一個新的規則列表,其中規則右部包含兩個元素。
python實現如下: