algorithm - 检测异常值的最佳方法是什么?
问题描述
我有一个数字流进来,如果异常值,我想将它们标记为 1,如果不是异常值,我想将它们标记为 0。我有两种方法:
1)我计算进来的数字的滚动平均值。然后,我计算计算的数字平均值的滚动标准偏差。使用这些值,我创建了 (μ ± 3σ) 的置信区间
2) 我计算了传入数字的滚动平均值和标准差。使用这些值,我创建了 (μ ± 3σ) 的置信区间
哪种方法更好,为什么?
解决方案
这完全取决于您的应用程序。
话虽如此,第二种方法看起来像是一个标准的(有些人会称之为天真的)解决方案。第一种方法似乎很奇怪,而且刚刚结束:
想象只有两个交替的数字进来。假设是 0 和 10。一段时间后,您将有一个非常稳定的平均值 5 +- ε(ε 收敛于 0)。因此,随着您的进步,这些均值的标准差会越来越小。最终,3σ 将小于 5,从那时起所有传入的数字都将是异常值。
推荐阅读
- python - 融合来自不同目录的许多具有相同名称的 csv 文件
- python - 如何找到列 CumSum 等于 X 的 Pandas 数据帧的行索引?
- excel - Excel VBA 数据透视表更改字段在调试中工作,执行时出现错误 1004
- android - 完成活动后如何刷新片段?
- css - 使用 susy 的网格大小
- java - 编写 Java 函数时对输入参数行感到困惑
- python - Keras 多类训练准确率没有提高,没有损失报告
- amazon-web-services - AWS EC2 NTP 服务器 - 用户数据编辑首选 ntp ips
- java - JavaFX:默认情况下按特定列对 TableView 进行排序
- sql-server - 创建两个共享依赖关系的表