加速先验算法

问题描述

我是 stackflow 的新手,我尝试使用 apyori 包来解决关联问题,但是,我的数据很大。(交易约 1500,产品类别高达 900)。我看到一些网站说自己写函数会更好。但是我有疑问,我尝试取消嵌套循环以获得支持,下面是我的方法,但我认为这仍然需要很长时间。有没有人有建议。非常感谢!

def create_Ck_to_Lk(dataset,min_support,L1,k):
    Ck = list(combinations(L1,2))
    print(len(Ck))
    support=[]
    max_length = max([len(d) for d in dataset])
    rows_num = len(dataset)
    new_dataset = np.zeros((rows_num,max_length),dtype='int64')
    for i,d in enumerate(dataset):
        new_dataset[i,:len(d)]= d
    for ck in Ck:
        ck=list(ck)
        bool_subset=[]
        for c in ck:
            bool_subset.append((np.isin(new_dataset,c)).any(axis = 1))
        bool_result=[True]*len(bool_subset[0])
        for b in bool_subset:
            bool_result = np.array(bool_result) & np.array(b)
        support.append(sum(bool_result))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)