分类数据中的异常值?

3
我无法找到处理分类数据离群值的解决方案。我的数据由行组合而成。我希望标记在某些组合中不同于其他行的离群值。
如上所述,我不能将数据聚类为非离群值行和具有相同频率的离群值行。
我的数据看起来像这样:
请提供一个有效的逻辑来解决这个问题。我也试图基于频率分布数据,但我无法指定阈值,因为我无法找到一个值来考虑数据作为离群值。提供一种寻找阈值的方法也可以帮助。
2个回答

1
没有适用于分类数据的异常值检测方法。在这种情况下,这个概念毫无意义。你可能会这样想:
你有一个由9个女性和1个男性组成的样本。你可能认为男性是异常值,但这只是你样本的构成,不是异常值。
要存在异常值,必须有一种衡量项之间距离的方法。请参阅this以获取更多信息。
请提供一个有效的逻辑来解决此问题。我还尝试根据频率分配数据,但我无法分配一个阈值,因为我找不到一个值来将数据视为异常值。提供一种查找阈值的方法也可以帮助。
一种解决方案是只需对列进行value_counts,然后您就可以得到每个元素的频率。

谢谢。您能否建议一下,针对这种情况,词嵌入会如何工作?(我对词嵌入非常陌生,只是渴望知道它是否适用于这种情况?) - JUGAL KISHORE
不,我的意思是词嵌入旨在提供单词含义的密集向量表示,但是单独的A、B、C并没有太多意义。你可以使用 df['c1'].value_counts() 进行解释性说明,但是你的问题非常不清晰,我无法根据你提供的信息做更多的事情。 - A. Traoré
很抱歉我没有表达清楚。不管怎样,我已经找到了解决方案:)。你们的回答真的很有帮助。 - JUGAL KISHORE
顺便说一下,我正在寻找一种自动分组“罕见”类别的方法,这些类别属于单变量分类变量。例如,如果我有A、B、C、D、E五个类别,其中D和E的贡献仅为0.02和0.01,那么将它们分组为“其他”类别将是有益的。现在,手动选择一个像<0.05这样的阈值并不适用于所有情况。我的问题是是否有一种方法可以从给定的分布中自动获取阈值或某种动态阈值来检测“罕见”的类别。请帮忙,谢谢。 - Aayush Shah

0
根据您分配的标签,我猜测您想在后续步骤中执行一种独热编码。在这种情况下,您可以使用sklearnOneHotEncoder并指定min_frequency参数。如果您指定了min_frequency参数,则罕见的分类值将被分配为'infrequend_sklearn'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接