правила ассоциации чтения данных Python - PullRequest
1 голос
/ 08 ноября 2011

У меня есть два столбца в текстовом файле.Я прочитал их в 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 голосов
/ 08 ноября 2011

Посмотрите на наборы:

 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])
>>>

Так что вам нужно будет построить пары в списке строк, я думаю ...

Надеюсь, это поможет.

0 голосов
/ 08 ноября 2011

Вы можете использовать dictionary для создания сопоставления:

mapping = {}

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

Для подсчета вхождений просто используйте .count():

colA.count('a')

Обратите внимание, что сопоставление будет нарушеноесли colB имеет два элемента с одинаковым именем.Это потому, что вы пытаетесь построить биекцию между двумя неуникальными наборами, которая не будет работать.Думайте об этом как о восстановлении входного числа из x^2.Вы просто не знаете.

...