資源簡介
python實現(xiàn)apriori 算法并進行關(guān)聯(lián)規(guī)則挖掘,內(nèi)涵詳細注釋,幫助理解
代碼片段和文件信息
#?coding=utf8
#?python3.5
#?http://www.cnblogs.com/90zeng/p/apriori.html
def?loadDataSet():
????‘‘‘‘‘創(chuàng)建一個用于測試的簡單的數(shù)據(jù)集‘‘‘
????return?[[1?3?4?5]?[2?3?5]?[1?2?3?4?5]?[2?3?4?5]]
def?createC1(dataSet):
????‘‘‘‘‘
????????構(gòu)建初始候選項集的列表,即所有候選項集只包含一個元素,
????????C1是大小為1的所有候選項集的集合
????‘‘‘
????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):
????‘‘‘‘‘
????????計算Ck中的項集在數(shù)據(jù)集合D(記錄或者transactions)中的支持度
????????返回滿足最小支持度的項集的集合,和所有項集支持度信息的字典。
????‘‘‘
????ssCnt?=?{}
????for?tid?in?D:??#?對于每一條transaction
????????for?can?in?Ck:??#?對于每一個候選項集can,檢查是否是transaction的一部分?#?即該候選can是否得到transaction的支持
????????????if?can.issubset(tid):
????????????????ssCnt[can]?=?ssCnt.get(can?0)?+?1
????numItems?=?float(len(D))
????retList?=?[]
????supportData?
評論
共有 條評論