Python读取数据构建关联规则

1 投票
2 回答
929 浏览
提问于 2025-04-17 05:52

我有一个文本文件,里面有两列数据。我把它们读进Python,分别放到了两个列表里。我想做的是统计每一对出现的次数,并根据这些次数建立关联规则。

举个例子:

colA = [a,b,c,d,...]

colB = [c,y,d,e,...]

我目前只做到把数据读进两个列表,但接下来怎么统计出现的次数和建立规则呢?

代码:

pred = []
succ = []
for line in open('arsample.txt'):
    lst = line.split('\t')
    pred.append(int(lst[0]))
    succ.append(int(lst[1]))

规则的样子会是这样的,并且是按出现次数从高到低排序的:

P   S   Probability
---------------------
a > c   count(a>c)/n
...     ...

2 个回答

0

你可以用一个 字典 来创建一个映射关系:

mapping = {}

for key in colA:
  mapping[key] = colB.index(key)

要计算出现的次数,只需使用 .count() 方法:

colA.count('a')

注意,如果 colB 中有两个元素名字相同,这个映射关系就会出问题。因为你试图在两个不唯一的集合之间建立一一对应的关系,这样是行不通的。可以想象一下,就像从 x^2 中恢复输入的数字一样,你根本不知道。

0

来看一下 集合:

 http://docs.python.org/library/sets.html

它们允许这样做:

>>> a = [1,2,2,5,4,5,4,2,1,3]
>>> set(a)
set([1, 2, 3, 4, 5])
>>>

所以你可能需要在一个字符串列表中构建这些配对...

希望这能帮到你。

撰写回答