利用關聯規則模型挖掘連鎖餐廳交易記錄python

2021-09-25 23:44:15 字數 1754 閱讀 5874

該模型原理比較簡單,網上有很多資料,但作為乙個計算機外行,需要把這個模型用python建立起來,還是踩了不少坑。最大的乙個坑是:資料庫匯出的資料以dataframe匯入後分組轉化為list;(因為資料庫匯出的資料是按單號和某個菜品,需要把菜品合併在乙個list中)

挖掘顧客消費交易記錄,來對選單、營銷活動、門店話術等,進行規劃;

(由於沒有程式設計基礎,所以過多的使用了for語句,期望各位大佬幫忙優化一下;)

data=[[1,3,2,4,5,6],[2,4,6,3],[2,5,7,4],[5,7,4]]#這裡我用我任意寫的資料來做測試(最後資料庫中匯出的資料也會轉化為這種模式)

i=#構建專案集

for i in data :

for x in i:

if x not in i :

print('專案集為:',i)

supmin=0.5 #設定最小支援度

confmin=0.5 #設定最小置信度

print('supmin:',supmin)

print('confmin:',confmin)

fqe=#建立候選頻繁集

s=#建立候選頻繁集對應的支援度

d=len(data)

print('交易筆數:',d)

for item in i :

x=0for tid in data:

if item in tid:

x+=1

if x/d>supmin:#supmin

print('頻繁子項fqe:',fqe)

print('頻繁子項支援度s:',s)

t2=#生成所有2項集

d2=#收集頻繁2項集

sup=

lenfqe=len(fqe)

for i in range(lenfqe):

for y in range(i+1,lenfqe) :

print('所有二項子集t2:',t2)

print('-------求出》supmin時的二項子集--------')

for i in t2:

x=0for y in data:

if i[0] in y and i[1] in y:

x+=1

if (x/d)>supmin:#supmin

print('所有頻繁二項子集d2',d2)

for i in range(len(d2)) :

print(d2[i],'支援度:',sup[i])

#還需要求置信度、提公升度lift

print('------置信度為:p(x->y)/p(x)------')

for i in d2:

a=s[fqe.index(i[0])]

b=s[fqe.index(i[1])]

if a>b:

print(i[0],'->',i[1],'的置信度為:',sup[d2.index(i)]/a)

print(i[0],'->',i[1],'的提公升度為:',sup[d2.index(i)]/(a*b))

else:

print(i[1],'->',i[0],'的置信度為:',sup[d2.index(i)]/b)

print(i[1],'->',i[0],'的提公升度為:',sup[d2.index(i)]/(b*a))

結果:

關聯規則挖掘

關聯規則反映事物之間的相互依存性和關聯性。如果事物之間存在一定的關聯,那麼我們就可以通過乙個事物去 另乙個事物。我們要挖掘大量資料中人們感興趣的,有價值的資訊,包括概念,規則,規律等。關聯規則 發現資料中的規律 超市中什麼產品會 起購買?組合推薦 顧客在買了 臺pc之後下 步會購買?搭配推薦 哪種d...

關聯規則挖掘

直接用例項來解釋概念更清楚一些,加入資料庫中存在10條交易記錄 transaction 具體如下表所示 交易id tid 購買商品 items b bread c cream m milk t tea t01b c m t t02b c m t03c m t04m t t05b c m t06b t...

關聯規則挖掘

1.基本概念 關聯規則挖掘是指尋找給定資料集中項之間的有趣關聯或相關聯絡。可以幫助許多決策的制定,如分類設計 交叉購物和賤賣分析。典型的例子就是購物籃分析。2.關聯規則的步驟 1 找出所有的頻繁項集 這些項集出現的頻繁性至少和預定義的最小支援數一樣 2 由頻繁項集產生強關聯規則 這些規則必須滿足最小...