首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用库mlxtend进行关联规则挖掘

使用库mlxtend进行关联规则挖掘
EN

Stack Overflow用户
提问于 2020-06-01 22:27:01
回答 2查看 799关注 0票数 1

我在维度为(23144, 32)的临床数据集上使用库mlxtend运行关联规则挖掘。

不幸的是,大约50分钟后,我收到了一条消息“内核死了……”,所以在检查之后,我意识到它耗尽了内存。

我也尝试过Google Cloud (试用版300美元免费,最大使用15 up ),但问题是一样的。

问题:

1)以上数据量是否可以作为关联规则算法的大数据?我觉得它还很小,为什么会消耗很多内存呢?

2)我也尝试了FPGrowth算法,它比Apriori 5x更快,但是问题仍然是一样的,有什么方法可以克服这个问题吗?

3)我认为当前的关联规则算法的python库对相对较大的数据没有很好的支持?我说的对吗?

Python代码

代码语言:javascript
复制
dataset01 = pd.read_csv('dataset_origin.csv')

transaction = TransactionEncoder()

transaction_fit = transaction.fit(dataset01.to_numpy().tolist()).transform(dataset01.to_numpy().tolist())
# transaction_fit
array([[False,  True,  True, ...,  True, False,  True],
       [ True, False,  True, ...,  True, False,  True],
       [ True, False,  True, ...,  True, False,  True],
        ...,
       [ True, False,  True, ...,  True, False,  True],
       [ True, False,  True, ...,  True, False,  True],
       [False,  True,  True, ...,  True, False,  True]])

df_rf = pd.DataFrame(transaction_fit, columns=transaction.columns_)

frequent_itemsets = fpgrowth(df_rf, min_support=0.3, use_colnames=True)

程序被卡在下面的代码行上

EN

回答 2

Stack Overflow用户

发布于 2020-06-12 22:00:02

我刚刚用apriori()函数解决了完全相同的问题。

1)当您尝试从具有太多列和太少行的稀疏数据帧(在您的示例中为df_rf)中获取频繁项集时,您可能遇到了高维问题。在我的例子中,我的稀疏数据帧只有很少的行,但是有很多列((3, 72)(27, 500))。如果你对这个主题感兴趣,你可以找到许多关于关联规则挖掘应用于高维数据的论文。

2)我猜当你有高维数据时,在两种算法之间的选择没有什么帮助。

3)通过查看mlxtend文档,我找不到任何与此问题相关的支持。但是,如果您将min_support设置为高于0.3 (尝试不同的值),您的代码将完成运行。

票数 0
EN

Stack Overflow用户

发布于 2020-06-18 21:34:20

非常感谢您的评论

对不起,我在问题上犯了一个错误。我的数据集是23144行32列。我认为它仍然涉及到高维数据集的关联规则挖掘。

我也尝试过的另一种方法是找到闭合/最大频繁项目集,最后,我得到了同样的问题。

然后,我逐渐将最小支持度增加到0.6,然后算法运行得很好,但我认为它并不好,因为我们可能会错过有价值的规则(信息丢失)。

仍在寻找解决方案

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

https://stackoverflow.com/questions/62134429

复制
相关文章

相似问题

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