首页 > 解决方案 > 如何有效地在二进制数据框中找到模式?

问题描述

假设我有一个像这样的二进制数据框:

[1,1,0,0,1,0
 1,1,1,0,1,1
 0,0,1,0,0,1
 1,1,1,0,1,1
 0,1,0,1,0,0
 1,1,0,1,1,0]

我想提取在行之间重复最多的 1 的模式。在这个例子中,我想知道 [1,1,x,x,1,x] 经常出现,即有很多行这些特征一起出现。

执行此操作的最有效算法是什么?我实际上有一个包含约 4000 列和约 1M 行的数据框,因此任何蛮力方法都太低效了。

为简单起见,假设我只对行中最多 4 个这样的 1 的模式感兴趣。对 0 的模式不感兴趣,我的矩阵也很稀疏。

编辑:

多么稀疏 - 大约 1% 是 1。

这些模式会多久出现一次?- 我不知道......假设我只对至少出现一千次的模式感兴趣......这大约是我行数的 0.1%......

标签: algorithmtime-complexity

解决方案



推荐阅读