我有一个场景,我有几千个数据实例。数据本身表示为单个整数值。我希望能够检测到实例何时是极端异常值。
例如,使用以下示例数据:
a = 10
b = 14
c = 25
d = 467
e = 12
d
显然是异常,我想基于此执行特定操作。
我很想尝试使用我对特定领域的知识来检测异常。例如,找出有用的平均值的距离,并根据启发式进行检查。但是,我认为如果我研究更通用、更强大的异常检测技术可能会更好,这些技术背后有一些理论。
由于我的数学工作知识有限,我希望找到一种简单的技术,例如使用标准差。希望数据的单维性质将使这成为一个相当普遍的问题,但如果需要有关该场景的更多信息,请发表评论,我将提供更多信息。
编辑:我想我会添加更多关于数据的信息以及我尝试过的内容,以防它使一个答案比另一个答案更正确。
这些值都是正数且非零。我希望这些值将形成正态分布。这种期望是基于对领域的直觉而不是通过分析,如果这不是一件坏事,请告诉我。在聚类方面,除非还有标准算法来选择 k 值,否则我会发现很难将该值提供给 k 均值算法。
我想对异常值/异常采取的措施是将其呈现给用户,并建议将数据点基本上从数据集中删除(我不会讨论他们将如何做到这一点,但这是有道理的对于我的域),因此它不会用作另一个函数的输入。
到目前为止,我已经在我有限的数据集上尝试了三西格玛和 IQR 异常值测试。IQR 标记不够极端的值,三西格玛指出更符合我对域的直觉的实例。
有关用于了解此特定场景的算法、技术或资源链接的信息是有效且受欢迎的答案。
对于简单的一维数据,推荐的异常检测技术是什么?