xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

西電數(shù)據(jù)挖掘作業(yè)——關(guān)聯(lián)規(guī)則aprior算法python實(shí)現(xiàn),我自己在python3.6已經(jīng)能夠成功實(shí)現(xiàn),沒有問題

資源截圖

代碼片段和文件信息



def?loadDataSet():
???
????‘‘‘‘‘創(chuàng)建一個(gè)用于測(cè)試的簡(jiǎn)單的數(shù)據(jù)集‘‘‘
????return?[[1?3?4?5]?[2?3?5]?[1?2?3?4?5]?[2?3?4?5]]


def?createC1(dataSet):
????‘‘‘‘‘
????????構(gòu)建初始候選項(xiàng)集的列表,即所有候選項(xiàng)集只包含一個(gè)元素,
????????C1是大小為1的所有候選項(xiàng)集的集合
????‘‘‘
????C1?=?[]
????for?transaction?in?dataSet:
????????for?item?in?transaction:
????????????if?[item]?not?in?C1:
????????????????C1.append([item])
????C1.sort()
????#?return?map(?frozenset?C1?)
????#?return?[var?for?var?in?map(frozensetC1)]
????return?[frozenset(var)?for?var?in?C1]


def?scanD(D?Ck?minSupport):
????‘‘‘‘‘
????????計(jì)算Ck中的項(xiàng)集在數(shù)據(jù)集合D(記錄或者transactions)中的支持度
????????返回滿足最小支持度的項(xiàng)集的集合,和所有項(xiàng)集支持度信息的字典。
????‘‘‘
????ssCnt?=?{}
????for?tid?in?D:??#?對(duì)于每一條transaction
????????for?can?in?Ck:??#?對(duì)于每一個(gè)候選項(xiàng)集can,檢查是否是transaction的一部分?#?即該候選can是否得到transaction的支持
????????????if?can.issubset(tid):
????????????????ssCnt[can]?=?ssCnt.get(can?0)?+?1
????numItems?=?float(len(D))
????retList?=?[]
????supportData?=?{}
????for?key?in?ssCnt:
????????support?=?ssCnt[key]?/?numItems??#?每個(gè)項(xiàng)集的支持度
????????if?support?>=?minSupport:??#?將滿足最小支持度的項(xiàng)集,加入retList
????????????retList.insert(0?key)
????????supportData[key]?=?support??#?匯總支持度數(shù)據(jù)
????return?retList?supportData


def?aprioriGen(Lk?k):??#?Aprior算法
????‘‘‘‘‘
????????由初始候選項(xiàng)集的集合Lk生成新的生成候選項(xiàng)集,
????????k表示生成的新項(xiàng)集中所含有的元素個(gè)數(shù)
????‘‘‘
????retList?=?[]
????lenLk?=?len(Lk)
????for?i?in?range(lenLk):
????????for?j?in?range(i?+?1?lenLk):
????????????L1?=?list(Lk[i])[:?k?-?2];
????????????L2?=?list(Lk[j])[:?k?-?2];
????????????L1.sort();
????????????L2.sort()
????????????if?L1?==?L2:
????????????????retList.append(Lk[i]?|?Lk[j])
????return?retList


def?apriori(dataSet?minSupport=0.5):
????C1?=?createC1(dataSet)??#?構(gòu)建初始候選項(xiàng)集C1
????#?D?=?map(?set?dataSet?)?????????????????????????????????#?將dataSet集合化,以滿足scanD的格式要求
????#?D=[var?for?var?in?map(setdataSet)]
????D?=?[set(var)?for?var?in?dataSet]
????L1?suppData?=?scanD(D?C1?minSupport)??#?構(gòu)建初始的頻繁項(xiàng)集,即所有項(xiàng)集只有一個(gè)元素
????L?=?[L1]??#?最初的L1中的每個(gè)項(xiàng)集含有一個(gè)元素,新生成的
????k?=?2??#?項(xiàng)集應(yīng)該含有2個(gè)元素,所以?k=2

????while?(len(L[k?-?2])?>?0):
????????Ck?=?aprioriGen(L[k?-?2]?k)
????????Lk?supK?=?scanD(D?Ck?minSupport)
????????suppData.update(supK)??#?將新的項(xiàng)集的支持度數(shù)據(jù)加入原來的總支持度字典中
????????L.append(Lk)??#?將符合最小支持度要求的項(xiàng)集加入L
????????k?+=?1??#?新生成的項(xiàng)集中的元素個(gè)數(shù)應(yīng)不斷增加
????return?L?suppData??#?返回所有滿足條件的頻繁項(xiàng)集的列表,和所有候選項(xiàng)集的支持度信息


def?calcConf(freqSet?H?supportData?brl?minConf=0.7):??#?規(guī)則生成與評(píng)價(jià)
????‘‘‘‘‘
????????計(jì)算規(guī)則的可信度,返回滿足最小可信度的規(guī)則。
????????freqSet(frozenset):頻繁項(xiàng)集
????????H(frozenset):頻繁項(xiàng)集中所有的元素
????????supportData(dic):頻繁項(xiàng)集中所有元素的支持度
?????

評(píng)論

共有 條評(píng)論