从分类数据记录中查找异常

人工智能 机器学习 数据集 异常检测
2021-10-28 07:41:55

我有一个数据集m观察和p分类变量(名义),每个变量X1,X2,,Xp有几个不同的可能值。

最终,我正在寻找一种发现异常的方法,即识别相对于我目前看到的数据而言值组合似乎不正确的行。

到目前为止,我正在考虑构建一个模型来预测每一列的值,然后构建一些度量来评估实际行与预测行的差异。

我将不胜感激任何帮助!

1个回答

首先,您提到您有分类数据。我看不出如何定义相似性,以便您还可以定义预测值与基本事实(错误)之间的距离。只有当数据是ordinal时,您才能这样做

如果您只想在正常点和异常点之间进行分类(二进制分类),而不关心异常类型本身的进一步分类,最常见的算法之一是一类支持向量机(OC-SVM)

异常在本质上是不可预测的,有时难以复制和记录。因此,通常缺乏异常数据,监督学习方法会受到影响,因为如果你牺牲一些“宝贵的”异常点来训练算法,你就不能用它们来测试它。

OC-SVM 的主要优点是它是半监督学习,这意味着您只使用正常数据对其进行训练,然后它可以检测在测试期间偏离训练行为的样本并将其分类为异常。因此,您“保存”了所有罕见的异常点以用于测试目的!

看看这个简短的Python 示例,它有你需要的一切:)