algorithm - 数据集操作

标签 algorithm data-structures language-agnostic dataset

我需要将数据集逆向工程为其原始形式。原始数据集源自具有多个特征的多个用户进入一个房间,一些用户点击一个按钮的过程。列变量采用指示符形式,因此当用户单击按钮或具有特定特征时,这将被记录为 1,而如果没有,则由零表示。然后将此数据集转换为特征类型是由两个特征变量表示的观察值的形式。这个新数据集显示了具有两个特征的用户、他们的数量以及他们的按钮点击次数。这也包括所有用户。我的解释可能不是最清楚的,所以这里有一张图片可能有助于解释

enter image description here

我正在考虑使用某种类型的查找算法来解决这个问题,但这可能不太有效。

最佳答案

不幸的是,一般来说,您将无法明确地对您的数据集进行逆向工程。暂时忽略 action 列,考虑以下两个数据集:

数据集 1:

A B C
1 1 1
1 1 0
0 1 1
1 0 1
1 0 0
1 0 0
0 1 0
0 1 0
0 0 1
0 0 1

数据集 2:

A B C
1 1 0
1 1 0
1 0 1
1 0 1
0 1 1
0 1 1
1 0 0
0 1 0
0 0 1

除非我弄错了,否则这两个数据集在每对特征下会显示相同数量的用户:

A A 5
A B 2
A C 2
B B 5
B C 2
C C 5

现在,您可能会想:“嘿,第一个数据集有 10 个用户,但第二个数据集只有 9 个。如果我能够获得用户总数,这是否可以解决我的问题? “答案大多是否定的。如果您具有三个或更少的特征,那么答案是肯定的(参见:Inclusion-exclusion Principle)。但是,如果您具有三个以上的特征,答案是否定的。您可以构建类似的模棱两可的示例,其中用户总数相同。

关于algorithm - 数据集操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5035677/

相关文章:

java - 检测最后一次 foreach 循环迭代

c - 改进的二分查找数组

algorithm - 加权事件选择

algorithm - 在 M 天内阅读 N 章书籍的最佳方式

language-agnostic - 通用语言中的实数算术?

Java 算法 : comparing each *thing* to every other

java - 在 Java 中循环遍历 List<Map<Integer, Map<Long, Integer>>>

python如何将列表实现为树?

language-agnostic - 以程序方式生成 "blob"二维图形的好方法

language-agnostic - 没有前端的CMS?