本人python小白。學習資料探勘中。。現在貼出python實現apriori演算法
#建立c1
def createc1(data):
c1 = set()
for item in data:
temp = frozenset(item);
for tempitem in temp:
tempitem = (int)(tempitem)
c1.add(tempitem)
return c1
#計算支援度
def countsupport(item,data):
s = 0.0
count = 0;
countsum = 0;
a =
if isinstance(item,int):
else: a.extend(item)
item1 = frozenset(a)
for temp in data:
temp = frozenset(temp)
if item1.issubset(temp):
count = count+1
countsum = countsum+1
s = count/countsum
return s
#根據ck求lk
def createlkbyck(ck,data,minsupport):
lk =
support =
for item in ck:
temp = countsupport(item,data)
if temp>minsupport:
return lk,support
#判斷先驗
def judge(item,lk):
#c = set(item)
flag = false
temp = len(item)
for i in range(0,temp):
#c.remove(item[i])
value = item[i]
item.remove(item[i])
item.sort()
flag = false
#print("-----",item)
for item1 in lk:
item1.sort()
if item[0:temp-1]==item1[0:temp-1]:
#print("可以加入",item[0:temp-1])
flag = true
if flag<0:
#print("false")
return false
#print("加入成功")
return true
#根據lk求ck+1
def createckbylk(k,lk):
#連線操作
ck =
len1 = len(lk)
#l1連線c2的時候
if k==1:
for i in range(0,len1-1):
for j in range(i+1,len1):
else:
for i in range(0,len1-1):
lk[i].sort()#排序
for j in range(i+1,len1):
lk[j].sort()#排序
if lk[i][0:k-1]==lk[j][0:k-1] and lk[i][-1]!=lk[j][-1]:
temp =
temp.extend(lk[i])
if judge(temp,lk):
return ck
def createl(data,minsupport):
l =
support =
#建立c1
ck = createc1(data)
#求出最長的購買長度
maxlen = -1
for item in data:
temp = len(item)
if maxlenmaxlen = temp
for i in range(1,maxlen):
lktemp,supporttemp = createlkbyck(ck,data,minsupport)
#將lktemp加入
ck = createckbylk(i,lktemp)
if len(ck)==0:
return l,support
資料探勘演算法之 apriori
關聯規則之 apriori演算法 實現 2006年5月 include include typedef struct d node 資料庫d typedef struct c node 候選集 typedef struct l node 頻繁集 c node c 100 100 l node l 1...
資料探勘之關聯規則挖掘之Apriori演算法實現
演算法細節見 fast algorithm for mining association rules 控制台版本c 如下 include include include include include include include using namespace std 讀取檔案獲取整個資料庫儲存...
資料探勘之關聯規則挖掘(Apriori演算法)
一 概述 本篇博文主要闡述資料探勘相關的關聯規則挖掘的演算法 apriori演算法 主要介紹關聯規則的基本概念 apriori演算法原理和apriori演算法例項,文章末尾處附加apriori演算法源程式。二 關聯規則挖掘的基本概念 關聯規則挖掘發現大量資料中項集之間有趣的關聯關係。如果兩項或者多項...