【问题标题】:Unsupervised Outlier detection无监督异常值检测
【发布时间】:2018-11-06 17:47:06
【问题描述】:

我每行有 6 个点,大约有 20k 个这样的行。这些行点中的每一个实际上都是曲线上的点,每一行的曲线性质是相同的(比如 S 形曲线或直线等)。这 6 个点在每一行中可能有不同的 x 值。我还知道该曲线应该通过的每一行的一个点 (a,b)。我应该如何查找可能异常或显示出比其他行意外行为的行?我正在考虑曲线拟合,但每条曲线只有 6 个点,我所知道的是大多数行具有相同的曲线性质,所以我也许可以为所有行制作一条一般曲线,并有一个距离阈值异常值检测。

【问题讨论】:

  • 取两倍的标准差。每个非异常值应介于平均值减去两倍标准差和平均值加上两倍标准差之间。 (最多 3 倍可能效果更好)
  • 每个 x 值的 y 平均值?但是我可能对每个x值只有一个y值,我不明白
  • 尝试使用所有 y 值的平均值及其标准差。然后评估,对于每个 x,如果 y 落在范围之间。看看这是否有效。告诉我
  • 离群值应该被视为离均值相差 5*sigma:2*sigma 绝对不是异常值!我不确定我是否了解您的数据结构。每列是否对应一个 X 值?无论如何,发布一个你正在尝试做的小例子会很有帮助。

标签: python-3.x cluster-analysis curve-fitting outliers lmfit


【解决方案1】:

如果您只是将这 6 个点视为 12 维向量并运行任何常见的异常值检测方法,例如 LOF 和 LoOP,会发生什么?

看12维向量上的欧几里得距离和6个点的6个欧几里得距离之间的关系是微不足道的。所以这将比较这些曲线的相似性。

您当然也可以为 LOF 定义一个复杂的距离函数。

【讨论】:

    猜你喜欢
    • 2020-06-02
    • 2014-06-11
    • 2020-03-10
    • 2021-03-15
    • 1970-01-01
    • 2020-07-14
    • 2015-09-28
    • 2016-09-20
    • 2017-09-04
    相关资源
    最近更新 更多