關聯規則分析也稱為購物籃分析,最早是為了發現超市銷售資料庫中不同的商品之間的關聯關係。
用於尋找資料集中各項之間的關聯關係。根據所挖掘的關聯關係,可以從乙個屬性的資訊來推斷另乙個屬性的資訊。當置信度達到某一閾值時,可以認為規則成立。
常用的關聯規則演算法
演算法名稱
演算法描述
apriori
關聯規則最常用、最經典的挖掘頻繁項集的演算法,核心思想是通過連線產生候選項及其支援度,然後通過剪枝生成頻繁項集
無法處理連續型數值變數,往往分析之前需要對資料進行離散化。
fp-tree
針對apriori演算法固有的多次掃瞄事務資料集的缺陷,提出的不產生候選頻繁項集的方法。
apriori和fp-tree都是尋找頻繁項集的演算法
eclat演算法
一種深度優先演算法,採用垂直資料表示形式,在概念格理論的基礎上利用基於字首的等價關係將搜尋空間劃分為較小的子空間
灰色關聯法
分析和確定各因素之間的影響程度,或是若干個子因素(子串行)對主因素(母序列)的貢獻度而進行的一種分析方法
本文介紹最常用的apriori演算法。
項集:項的集合。包含k個項的項集成為k項集,如集合是乙個3項集
頻繁項集:如果項集i的相對支援度滿足預定義的最小支援度閾值,則i是頻繁項集
支援度(相對支援度):項集a、b同時發生的概率。
置信度:項集a發生,則項集b發生的概率。
最小支援度:使用者或專家定義的衡量支援度的乙個閾值,表示項集在統計意義上的最低重要性。
最小置信度:使用者或專家定義的衡量置信度的乙個閾值,表示關聯規則的最低可靠性。同時滿足最小支援度閾值和最小置信度閾值的規則成為強規則。
目前,設定最小支援度和最小置信度,大部分根據業務經驗設定初始值,然後經過多次調整,獲取與業務相符的關聯規則結果。
舉例1:
r語言實現:
1、建立稀疏矩陣
tr
#format=c("basket", "single")用於註明源資料的格式。如果源資料每行內容就是一條交易購買的商品列表(類似於一行就是乙個購物籃)那麼使用basket;如果每行內容是交易號+單個商品,那麼使用single。
summary(tr) #檢視資料集相關的統計彙總資訊
inspect(tr) #檢視稀疏矩陣的內容
輸出如下:
2、採用apriori演算法建模
rule0 = apriori(tr,parameter = list(support=0.2,confidence = 0.5)) #設定支援度為0.2,置信度為0.5
3、輸出模型結果
inspect(rule0)
輸出結果如下:
結果分析(以結果第12條為例):
a、b同時發生的概率是50%。
a發生,則b發生的概率是71.42857%。
這樣就可以進行智慧型推薦了。
舉例2:
trans = as(a,"transactions") #將資料轉換成transactions屬性
inspect(trans[1:5]) #觀察前五行的資料
rules = apriori(trans,parameter = list(support=0.06,confidence = 0.75)) #呼叫apriori演算法,最小支援度為0.06,最小置信度為0.75
rules #顯示rules中關聯規則條數
inspect(rules) #觀測rules中的關聯規則
輸出結果如下:
結果分析(以結果第2條為例):
a4、f3~h4的支援度最大,為7.85%,置信度為87.96%。說明當a4、f3的條件滿足時,h4的可能性為87.96%,而這種情況發生的可能性為7.85%。
python實現:
import pandas as pd
from apriori import * 匯入自己編寫的apriori函式
data = pd.read_excel("menu_orders.xls",header=none)
print(u'\n轉換原始資料為0-1矩陣')
ct = lambda x:pd.series(1,index=x[pd.notnull(x)]) #轉換0-1矩陣的過渡函式
b = map(ct,data.as_matrix()) #用map方式執行
data = pd.dataframe(list(b)).fillna(0) #實現矩陣轉換,空值用0填充
print(u'\n轉換完畢。')
del b #刪除中間變數b,節省記憶體
support = 0.2 #最小支援度
confidence = 0.5 #最小置信度
ms = '---' #連線符
find_rule(data,support,confidence,ms).to_excel('1.xls')
輸出結果如下:
資料探勘之關聯規則
在資料探勘的知識模式中,關聯規則模式是比較重要的一種。屬於描述性模式,發現關聯規則的演算法屬於無監督學習的方法。關聯規則通過量化的數字描述物品甲的出現對物品乙的出現有多大的影響。一般用4個引數來描述關聯規則的屬性 1.可信度 子集 可信度是指出現了物品集a的事務t中,物品集b也同時出現的概率有多大。...
資料探勘 關聯規則挖掘
關聯規則 association rule 是資料中所蘊含的一類重要規律。關聯規則挖掘的目標是在資料專案中找出所有的併發關係 cooccurrence relationships 這種關係也稱為關聯 association 關聯規則挖掘的經典應用是購物籃 market basket 關聯規則挖掘並沒...
資料探勘之關聯分析三(規則的產生)
忽略那些前件和後件為空的規則,每個頻繁k項集能夠產生 2 2 k 1 個關聯規則。將頻繁項集y劃分為兩個非空子集x和y x,使得 x to y x 能滿足置信度閾值,就可以得到滿足條件的規則。在計算規則的置信度時並不需要再次掃瞄事務資料集,因為產生規則的頻繁項集和它們的子集也都是頻繁項集,我們在提取...