代码之家  ›  专栏  ›  技术社区  ›  phoebus

无标签机器学习异常检测

  •  0
  • phoebus  · 技术社区  · 7 年前

    t0 1 10 2 0 1 0 ...
    t1 1 10 2 0 1 0 ...
    t2 3  0 9 7 1 1 ... // pressed a button to change the mode
    t3 3  0 9 7 1 1 ...
    t4 3  0 8 7 1 1 ... // pressed button to adjust a certain characterstic like temperature (signal 3)
    

    在该特定时间段内捕获的数据应视为正常情况。现在,应该从正常情况中检测到显著的衍生。有了显著的推导,我并不是说一个信号值只是变为一个在跟踪阶段没有看到的值,而是说许多值的变化还没有相互关联。我不想硬编码规则,因为未来可能会添加或删除更多信号,并且可能会实现具有其他信号值的其他“modi”。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Florian H    7 年前

    您可以只计算特征空间中的最近邻,并设置一个阈值,将其与测试点的距离设置为非异常。

    因此,您使用100维特征空间和训练数据(其中不包含异常)

    如果您获得了一个要测试的新数据集,则计算(k)个最近邻,并计算特征空间中的(例如欧几里得)距离。

    如果该距离大于某个阈值,则为异常。 为了优化,你必须做的是找到一个好的k和一个好阈值。E、 g.通过网格搜索。

    (2) 注意,应该为您在问题中提到的每个“模式”创建一个自己的检测器。