資料探勘之apriori

2021-08-31 07:13:39 字數 2267 閱讀 6809

本人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演算法源程式。二 關聯規則挖掘的基本概念 關聯規則挖掘發現大量資料中項集之間有趣的關聯關係。如果兩項或者多項...