首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将先验对象转换为列表需要花费更多时间,即使对于少量数据也是如此。

将先验对象转换为列表需要花费更多时间,即使对于少量数据也是如此。
EN

Stack Overflow用户
提问于 2018-03-27 16:35:36
回答 1查看 1.2K关注 0票数 2

我正在研究一套超过22,000条记录的数据集,当我用apriori模型尝试它时,它所花费的时间太长了,即使是对像20这样的少量记录来说也是如此。我的代码中有问题吗?还是有更快的方法可以快速地将分析人员转换成一个列表呢?我使用的代码如下。

代码语言:javascript
复制
for i in range(0, 20):
    transactions.append([str(dataset.values[i,j]) for j in range(0, 543)])

from apyori import apriori
associations = apriori(transactions, min_support=0.004, min_confidence=0.3, min_lift=3, min_length=2)
result = list(associations)
EN

回答 1

Stack Overflow用户

发布于 2018-07-08 23:10:33

没有数据是很难评估的,但Apriori的复杂性取决于许多因素,包括支持阈值、事务数、项数、平均/最大事务长度等。

在即使是少量事务都需要很长时间才能运行的情况下,这通常是最低支持度太低的问题。当支持度很低(接近0)时,该算法仍然有效地强制执行,因为它必须查看每个长度的所有可能的项组合。这相当于数学功率集,它是指数的。对于仅仅41个项目,您实际上正在尝试2^41-1可能的组合,即略高于1.1万亿种可能性

我建议从“高”的min_support开始(比如0.20),然后慢慢地往下走。测试一开始需要几秒钟的东西比花很长时间的测试要容易。

其他重要注意事项:在Apyori中没有min_length参数。我不知道每个人都是从哪里得到的(你并不是唯一认为有这样的人的),除非这是我发现的一篇随机的博客文章。参数如下(直接取自代码):

代码语言:javascript
复制
Keyword arguments:
    min_support -- The minimum support of relations (float).
    min_confidence -- The minimum confidence of relations (float).
    min_lift -- The minimum lift of relations (float).
    max_length -- The maximum length of the relation (integer).

至于它的价值,我为Apyori编写了非官方的文档,可以找到这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49518187

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档