createC1(创建集合 C1) Args: dataSet 原始数据集 Returns: frozenset 返回一个 frozenset 格式的 list
(dataSet)
| 17 | |
| 18 | # 创建集合 C1。即对 dataSet 进行去重,排序,放入 list 中,然后转换所有的元素为 frozenset |
| 19 | def createC1(dataSet): |
| 20 | """createC1(创建集合 C1) |
| 21 | |
| 22 | Args: |
| 23 | dataSet 原始数据集 |
| 24 | Returns: |
| 25 | frozenset 返回一个 frozenset 格式的 list |
| 26 | """ |
| 27 | |
| 28 | C1 = [] |
| 29 | for transaction in dataSet: |
| 30 | for item in transaction: |
| 31 | if not [item] in C1: |
| 32 | # 遍历所有的元素,如果不在 C1 出现过,那么就 append |
| 33 | C1.append([item]) |
| 34 | # 对数组进行 `从小到大` 的排序 |
| 35 | # print 'sort 前=', C1 |
| 36 | C1.sort() |
| 37 | # frozenset 表示冻结的 set 集合,元素无改变;可以把它当字典的 key 来使用 |
| 38 | # print 'sort 后=', C1 |
| 39 | # print 'frozenset=', map(frozenset, C1) |
| 40 | return map(frozenset, C1) |
| 41 | |
| 42 | # 计算候选数据集 CK 在数据集 D 中的支持度,并返回支持度大于最小支持度(minSupport)的数据 |
| 43 | def scanD(D, Ck, minSupport): |