这是我的问题:我基本上有一个对象集合,将它们视为具有多个列的数据库表,如:
和其他类似的专栏。共有约30列。其中任何一个都可能出现异常值。
有时,异常行会批量插入此数据库表中。例如,整个亚群体,例如所有年龄为3(30-39岁)的人,在8月20日插入,其面部类型为95%,仅为" 1" (圆形),而剩下的5%具有其他正常值。
我的问题是,如何自动检测并报告此类异常行为?我的约束是我无法以任何方式预先验证数据。我只能在事件发生后检测到事件(将这些人视为网站上的访问者,如果它有帮助 - 我只是记录它们并稍后丢弃垃圾)。我不期望实现,只是有点详细的想法。我可以使用哪种算法?人工智能算法,遗传算法,更简单(图形)?这通常是怎么做的?
谢谢!
答案 0 :(得分:0)
我建议你看一下关于异常检测的Wikipedia article,因为它提出了很多想法,例如寻找群集。
否则,我能想到的一个简单方法是首先按日期排序数据,然后按年龄排序,然后检查特定特征是经常发生还是很少发生。异常测试可能看起来像这样:
“越界”可能表示与标准的特定距离:
function outOfBounds(trait, index)
norm = 1 / number of distinct traits
ratio = number of people with trait / total number of people
return abs(norm - ratio) > ratio;
end function;