該模型原理比較簡單,網上有很多資料,但作為乙個計算機外行,需要把這個模型用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 由頻繁項集產生強關聯規則 這些規則必須滿足最小...