异常检测的验证方法?

又是一个关于数据科学的普遍问题!假设我有一堆样本,并且需要在每个样本上检测异常值。我的数据是单变量的,所以我可以使用简单的标准差或中位绝对偏差方法。

我的问题是:如何进行任何形式的验证来检查结果是否一致,尤其是当数据量太大无法通过肉眼观察时?例如,如何选择使用多少个标准差来定义异常值。迄今为止,我还没有看到任何定量方法。这种方法真的存在吗?

谢谢


回答:

有趣的是,你没有定义“数据量大小”的维度。我认为这在这里很重要。例如,对于高维数据,你可以绘制Q-Q图,但对于大量数据点就不那么容易了。

然而,在寻找一般方法时,我会从概率的角度来解决这个问题。这永远不会告诉你哪个数据点是异常值,但是,它会告诉你你有异常值的概率(在数据的某些区域)。我需要做两个假设:(a)你知道你的数据来源的分布家族,例如,正态分布或泊松分布;(b)你可以根据给定的数据集估计这个家族的参数。

现在你可以定义你的数据来自这个分布的假设,以及数据不来自这个分布的替代假设(H0)。如果你从你估计的分布中抽取一个随机样本,这个抽取的分布平均来说应该与你观察到的样本一样可能来自该分布。如果情况并非如此,

然而,更有趣的可能是找到包含异常值的子空间。这可以通过以下经验程序来完成。如果你现在根据你的数据估计分布的参数。你可以将估计的分布与看到的数据的直方图进行比较。这为直方图的每个区间提供了一个包含异常值的概率。对于高维数据,这可以用程序进行检查。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注