关联规则挖掘的橙色性能

时间:2018-01-30 03:08:49

标签: associations orange

我正在使用orangecontrib.associate.fpgrowth进行关联规则挖掘。基于几个实验,似乎产品数量增加到1000以上,然后运行时间呈指数增长。但是,我不确定它是否属实。对性能影响最大的算法和/或参数的复杂性是否有任何近似值(如产品数量?总交易数量?还是别的什么?

1 个答案:

答案 0 :(得分:-1)

关联规则生成算法一般"爆炸"蛮快。特别是规则从项目集操作,我认为类似于枚举powerset(2 n )。我自己无法进一步阐述理论上的复杂性,但我认为给定支持/置信度/平均值的运行时间。交易规模阈值与其他地方的阈值相当:

let pages = urls.reduce(
  (page,url)=>
    page.src(url,size),
  ,new Pageres({})
);
return pages
  .dest(dest)
  .run()
  .then((result) => {
      console.log("done");
      return result
  })
  .catch((error) => {
      console.log("error", error);
      throw error;
  });

输出:

import time

import numpy as np
from orangecontrib.associate.fpgrowth import frequent_itemsets,\
                                             association_rules

for n_trans in (100, 1000, 10000):
    for n_items in (10, 100, 1000):
        X = np.random.random((n_trans, n_items)) > .8

        t_start = time.clock()
        itemsets = dict(frequent_itemsets(X, .05))
        n_itemsets = len(itemsets)
        t_itemsets = time.clock() - t_start

        t_start = time.clock()
        rules = list(association_rules(itemsets, .01))
        n_rules = len(rules)
        t_rules = time.clock() - t_start

        print('{:5d} {:4d}   {:5.1f} ({:7d})   {:4.1f} ({:7d})'.format(
            n_trans, n_items, t_itemsets, n_itemsets, t_rules, n_rules))