受特征中大量异常值影响的分类?你如何处理异常值?

数据挖掘 多类分类 离群值 正常化
2022-02-22 12:30:07

我正在研究一个分类问题,我发现我的数据有很多异常值,这导致我的识别率降低。我尝试过重新缩放、标准化技术,如 min max、box cox 甚至对数转换。我正在考虑从箱形图中消除异常值,但恐怕我可能会消除定义模型所需的有用特征/数据。

有没有关于如何处理此类案件的建议。进一步的数据分析表明,我的数据构成的特征属于不同的过程,如 Web 应用程序、应用程序。我根据流程分离了数据,我确实看到流程的巨大变化导致了不同的准确度,范围为 60-95%

有关如何处理此类情况的任何提示?最后,我希望我的分类器进行分类,而与流程类型无关。那么对于我当前的问题,这是否意味着我定义的功能不够好,或者我还能做些什么?

2个回答

如果异常值的数量很少并且您担心它们会破坏您的解决方案,您可以尝试使用随机森林分类器。RF 将树拟合到数据和变量的随机选择中,并从每个中收集“投票”,从而减少异常值评估者的影响。

另一方面,如果异常值的数量相当大,您可能需要创建一个名为“异常值”的新类。在训练集中,将此标签应用于您认为是异常值的那些值,然后使用增强类拟合模型。检查模型是否正确识别测试集中的异常值。

这相当于去除异常值,只是它创建了一种可重复的机器学习方式。

我会尝试使用基于树的模型(随机森林简短解释)进行分类,因为它们对异常值的敏感性低于线性模型。
可以通过创建描述数据源的分类特征来解决不同的数据源。
使用此功能并训练一棵树,分析树是否在第一步中使用此功能(在Sklearn 中它很简单)。
如果它很高,请查看每次拆分后的子树,如果每个子树中使用的特征不同,则应考虑为每个数据源训练不同的模型。

希望这可以帮助