检测多维数据中的共同特征
Detect common features in multidimensional data
我正在设计一个异常检测系统。
构建此类系统有多种方法。我选择通过检测大多数样本共享的特征来实现此类系统的一个方面。我承认这种方法可能存在不足,但对于我的特定用例:(1) 知道一个新样本包含(或缺少)大多数过去数据共享的特征就足以做出快速决定。(2)我' 对这种方法将提供给数据的见解感兴趣。
那么,问题来了:
考虑一个包含 M 个数据点的大型数据集,其中每个数据点可能包含任意数量的 {key:value} 特征。我选择通过对数据中观察到的所有特征(所有唯一键的集合)进行分组并将其设置为模型的特征 space 来对训练数据集进行建模。我通过为现有键设置其值和 None 为其不包含的功能中的值来定义每个示例。
给定这个训练数据集,我想确定哪些特征在数据中重复出现;对于这些重复出现的特征,它们是否主要共享一个值。
我的问题:
一个简单的解决方案是计算所有内容 - 对于每个 N 特征计算值的分布。然而,由于 M 和 N 可能很大,我想知道是否有更紧凑的方式来表示数据或更复杂的方法来声明特征的频率。
我是在重新发明现有的轮子吗?如果有一种在线方法可以完成这样的任务,那就更好了。
如果我理解正确你的问题,
无论如何你都需要遍历所有数据,那么为什么不使用散列呢?
实际上是两个散列 tables:
- 用于特征值分布的内部散列table。
- 用于特征存在的外部哈希 table。
这样,内部散列的大小 table 将表明该特征在您的数据中有多普遍,而实际值将表明它们之间的差异。另一件需要注意的事情是,您只检查一次数据,并且哈希 tables 上的每个操作(几乎)的时间复杂度(如果您从一开始就分配了足够的 space)是 O(1)
.
希望对您有所帮助
我正在设计一个异常检测系统。
构建此类系统有多种方法。我选择通过检测大多数样本共享的特征来实现此类系统的一个方面。我承认这种方法可能存在不足,但对于我的特定用例:(1) 知道一个新样本包含(或缺少)大多数过去数据共享的特征就足以做出快速决定。(2)我' 对这种方法将提供给数据的见解感兴趣。
那么,问题来了:
考虑一个包含 M 个数据点的大型数据集,其中每个数据点可能包含任意数量的 {key:value} 特征。我选择通过对数据中观察到的所有特征(所有唯一键的集合)进行分组并将其设置为模型的特征 space 来对训练数据集进行建模。我通过为现有键设置其值和 None 为其不包含的功能中的值来定义每个示例。
给定这个训练数据集,我想确定哪些特征在数据中重复出现;对于这些重复出现的特征,它们是否主要共享一个值。
我的问题:
一个简单的解决方案是计算所有内容 - 对于每个 N 特征计算值的分布。然而,由于 M 和 N 可能很大,我想知道是否有更紧凑的方式来表示数据或更复杂的方法来声明特征的频率。
我是在重新发明现有的轮子吗?如果有一种在线方法可以完成这样的任务,那就更好了。
如果我理解正确你的问题, 无论如何你都需要遍历所有数据,那么为什么不使用散列呢? 实际上是两个散列 tables:
- 用于特征值分布的内部散列table。
- 用于特征存在的外部哈希 table。
这样,内部散列的大小 table 将表明该特征在您的数据中有多普遍,而实际值将表明它们之间的差异。另一件需要注意的事情是,您只检查一次数据,并且哈希 tables 上的每个操作(几乎)的时间复杂度(如果您从一开始就分配了足够的 space)是 O(1)
.
希望对您有所帮助