Algorithm 我如何找到异常亚群体

Algorithm 我如何找到异常亚群体,algorithm,artificial-intelligence,Algorithm,Artificial Intelligence,我的问题是:我基本上有一个对象集合,可以将它们看作是一个包含多列的数据库表,类似于: 表名:人 柱: 身份证件 插入日期 0-9岁为1岁,10-19岁为2岁,依此类推, 面类型1表示圆形,2表示椭圆形等, 小号手码1,中号手码2等, 患有慢性病1是2否, 有精神问题史1是2否, 和其他类似的专栏。总共有30列。其中任何一个都可能出现异常值 有时,异常行会大量插入到该数据库表中。例如,在8月20日插入的整个亚群体中,例如所有年龄在30-39岁之间的人,95%的人只有一轮,而其余5%的人有其他正常值

我的问题是:我基本上有一个对象集合,可以将它们看作是一个包含多列的数据库表,类似于:

表名:人 柱: 身份证件 插入日期 0-9岁为1岁,10-19岁为2岁,依此类推, 面类型1表示圆形,2表示椭圆形等, 小号手码1,中号手码2等, 患有慢性病1是2否, 有精神问题史1是2否, 和其他类似的专栏。总共有30列。其中任何一个都可能出现异常值

有时,异常行会大量插入到该数据库表中。例如,在8月20日插入的整个亚群体中,例如所有年龄在30-39岁之间的人,95%的人只有一轮,而其余5%的人有其他正常值

我的问题是,我如何能够自动检测并报告这种异常行为?我的限制是我不能以任何方式预先验证数据。我只能在事件发生后才发现,如果有帮助的话,把这些人想象成网站上的访问者——我只是把他们记录下来,然后扔掉垃圾。我不期望实现,只是一些详细的想法。我可以使用什么样的算法?人工智能算法,遗传算法,更简单的图形?这通常是怎么做的


谢谢

我建议看一下关于异常检测的,因为它提供了很多想法,例如寻找集群

除此之外,我能想到的一个简单方法是,首先按日期,然后按年龄对数据进行排序,然后检查特定特征是否经常或很少可疑地出现。异常测试可能如下所示:

获取当前特征的比率 检查比率是否足够超出范围 越界可能表示与标准的特定距离:

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;