팬더에 Apriori 알고리즘을 구현하는 가장 좋은 방법은 무엇입니까? 지금까지 for 루프를 사용하여 패턴을 추출하는 것을 변형하는 데 막혔다. for 루프 이후의 모든 것은 작동하지 않습니다. 팬더에서 벡터화 된 방법이 있습니까?Python 팬더에서 Apriori를 구현하는 가장 좋은 방법
import pandas as pd
import numpy as np
trans=pd.read_table('output.txt', header=None,index_col=0)
def apriori(trans, support=4):
ts=pd.get_dummies(trans.unstack().dropna()).groupby(level=1).sum()
#user input
collen, rowlen =ts.shape
#max length of items
tssum=ts.sum(axis=1)
maxlen=tssum.loc[tssum.idxmax()]
items=list(ts.columns)
results=[]
#loop through items
for c in range(1, maxlen):
#generate patterns
pattern=[]
for n in len(pattern):
#calculate support
pattern=['supp']=pattern.sum/rowlen
#filter by support level
Condit=pattern['supp']> support
pattern=pattern[Condit]
results.append(pattern)
return results
results =apriori(trans)
print results
나는 지원이를 삽입하면 3
a b c d e
0
11 1 1 1 0 0
666 1 0 0 1 1
10101 0 1 1 1 0
1010 1 1 1 1 0
414147 0 1 1 0 0
10101 1 1 0 1 0
1242 0 0 0 1 1
101 1 1 1 1 0
411 0 0 1 1 1
444 1 1 1 0 0
이해야
Pattern support
a 6
b 7
c 7
d 7
e 3
a,b 5
a,c 4
a,d 4
수익이 잘못된 위치에와 렌 (패턴)에서 N입니다 잘못도 .... 내가 패턴 길이는하지 않는 손으로 그 일을 할 때 첫 번째 오류를 붙여 출신 @AndyHayden –
입니다 나는 a, b와 같은 패턴 조합을 생성하는 방법을 알아 내지 못했기 때문에 작동합니다. a, c; 또는 a, b, c – user3084006
지원은 어떻게 정의됩니까? 나는 짐작할 만하다. 그러나 그것은 네 d 값으로는 정사각형이 아니다. (나는 4가 될 것이라고 생각했지만, 3이라고 말한다.) – DSM