异常检测的验证方法?

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

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

谢谢


回答:

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

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

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

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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