背景信息:我正在开发一个分析临床数据的系统,以过滤掉可能是错别字的难以置信的数据。
到目前为止,我做了什么:
为了量化真实性,到目前为止,我的尝试是对数据进行归一化,然后根据点p与集合D中已知数据点的距离(=训练集合)计算点p的真实性值:
通过这种量化,我可以选择一个阈值,将合理的数据与不可信的数据分开。我正在使用python / numpy。
我的问题:
- 该算法无法检测独立的维度。理想情况下,我可以将关于记录的所有信息放入算法中,让它自己发现维度X不会影响记录的合理性。
- 该算法不适用于布尔值或选择输入等离散值。它们可以映射到连续值上,但是与Select 3相比,Select 1与Select 2更接近Select 2是违反直觉的。
题:
我应该为该任务寻找哪种算法?似乎有很多选择,包括基于最近邻居,基于聚类和统计方法。另外,我很难找到有关这种复杂性异常检测的论文。
任何建议都受到高度赞赏。
[编辑]示例:
假设数据由一个人的身高,一个人的体重和时间戳组成-因此它是3D数据。体重和身高是相关的,但时间戳是完全独立的。如果仅考虑欧几里德距离,则必须选择一个小的阈值以适合我的大多数交叉验证数据。理想情况下,该算法将只忽略时间戳记维度,因为确定记录是否合理是无关紧要的,因为时间戳记与任何其他维度都不相关。任何时间戳都是合理的。
另一方面,可以组成一些示例,其中时间戳确实很重要。例如,特征X的值Y在某个日期之前而不是某个日期之后测量时可能是合理的。