GMM 用于无监督异常检测(成分和分数)

问题描述 投票:0回答:1

我必须对由 50 个特征组成的大型数据集执行无监督异常检测,并且我对高斯混合模型 (GMM) 有一些疑问。

网格搜索后,我能够找到最佳的分量数量和协方差类型;选择这些值是因为它们生成 BIC 分数的最低值。

我的第一个疑问是发现的组件数量很高(n_components = 19)。

第二个问题是模型返回的集群仅由具有正分数的单个组件组成,因此不应被视为异常。

这些问题你遇到过吗?我的想法是,该模型不能很好地估计某些集群的分布(也是由于组件数量较多,根据 sklearn 中存在的 BIC 标准进行选择)

python scikit-learn unsupervised-learning anomaly-detection gmm
1个回答
0
投票

BIC 基于启发式。虽然受到信息论的启发,但它绝不是衡量模型复杂性/性能权衡的理想方法。 您可以自己计算 BIC,如果您喜欢更少的集群,则可以通过添加比例因子来提高复杂性的损失。但是,使用带标签的验证数据集和针对您的问题量身定制的适当评估指标来调整超参数的最佳方法。

另一个常见问题是估计高斯混合模型的标准方法(例如在 scikit-learn 中实现的方法)对异常值非常敏感。已经提出了几种方法来解决这个问题。一种方法是还添加一个均匀分量,以捕获非高斯数据点并避免它们干扰高斯。 以下论文对此进行了描述:

pomegranate
库支持GeneralMixtureModel,理论上它应该能够结合均匀和高斯分量。 库 pygmmis 还实现了统一背景组件。

© www.soinside.com 2019 - 2024. All rights reserved.