python读取数据构建关联规则

时间:2011-11-08 14:51:00

标签: python associations rules

我在文本文件中有两列。我把它们读成两个单独的列表。我想要做的是计算每对的出现次数并根据它建立关联规则。

示例:

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 :(得分:0)

您可以使用dictionary创建映射:

mapping = {}

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

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

colA.count('a')

请注意,如果colB包含两个具有相同名称的元素,映射将会中断。这是因为你试图在两个非唯一集合之间建立一个双射,这是行不通的。可以把它想象为从x^2恢复输入数字。你只是不知道。

答案 1 :(得分: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])
>>>

所以你必须在字符串列表中构建对,我猜......

希望它可以提供帮助。