資源簡介
python實現apriori 算法并進行關聯規則挖掘,內涵詳細注釋,幫助理解
代碼片段和文件信息
#?coding=utf8
#?python3.5
#?http://www.cnblogs.com/90zeng/p/apriori.html
def?loadDataSet():
????‘‘‘‘‘創建一個用于測試的簡單的數據集‘‘‘
????return?[[1?3?4?5]?[2?3?5]?[1?2?3?4?5]?[2?3?4?5]]
def?createC1(dataSet):
????‘‘‘‘‘
????????構建初始候選項集的列表,即所有候選項集只包含一個元素,
????????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中的項集在數據集合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?
評論
共有 條評論