|
|
1
5
群集数据 是的。
如果你不知道你的数据有多少模式,可以使用高斯混合模型(gmm)和评分函数(bayesian information criterion,bic)来自动检测数据中可能的集群数量。如果你不知道它的价值
如果这听起来有点过于复杂,您将很高兴地知道,在 杰出的 MCLUST 包装 右 是的。我已经用过好几次它来解决这样的问题,取得了巨大的成功。 它不仅允许您识别异常值,而且如果您在某个点上需要此功能(或需要此功能),您还可以将p值放在异常值点上。 |
|
|
2
3
您可以尝试使用 linear regression 看看进展如何,用您选择的语言实现它会相当容易。 在你将一行数据拟合后,你可以计算出平均值 standard deviation 沿着这条线。 如果小说的主题是 trend line +-标准差,不应视为异常。 PCA 是处理此类数据时想到的另一种技术。 你也可以看看 unsuperviced learning 是的。这是一种机器学习技术,可用于检测较大数据集中的差异。 听起来是个有趣的问题!祝你好运 |
|
|
3
3
你提到的所有技巧都没有什么魔力。我相信你应该首先尝试缩小你可能遇到的典型异常,这有助于保持事情简单。 然后,您可能需要计算与这些特征相关的导出量。例如:“我想检测突然改变方向的数字”=>计算u{n+1}-u{n,并期望它有常数符号,或者落在某个范围内。您可能希望保持这种灵活性,并允许代码设计是可扩展的(如果您执行OOP,策略模式可能值得考虑)。 然后,当有一些感兴趣的导出量时,对它们进行统计分析。例如,对于一个导出的量a,你假设它应该有一些分布p(a,b)(均匀的([a,b]),或者beta(a,b),可能更复杂),你把先验定律放在a,b上,然后根据连续的信息调整它们。然后,最后一个点提供的信息的后验可能性应该会让你对它是否正常有一些了解。每一步的后验与先验之间的相对熵也是一个好的监测对象。有关更多信息,请参阅有关贝叶斯方法的书籍。 如果你想检测异常值,我认为在复杂的传统机器学习(感知器层或支持向量机只引用它们)中没有什么意义。这些方法在对已知相当干净的数据进行分类时非常有效。 |