当一个类具有不成比例的多个条目时使用神经网络进行分类

机器算法验证 分类 神经网络 不平衡类
2022-03-06 18:03:48

我尝试使用具有多个类的数据集来训练神经网络。在训练集中的条目比其他类多得多,这使我的神经网络将大多数测试集条目分类为c1,c2,,c10c1c1

我应该进行哪些预处理?

2个回答

您正在处理不平衡的数据集。幸运的是,你并不孤单。这是一个常见的问题。

有关该主题的调查,请参阅社论:关于从不平衡数据集中学习的特刊(6 页)从不平衡数据中学习(22 页)

我最喜欢的方法如下: 该方法基于 Robert E. Schapire 在“弱可学习性的强度”(Machine Learning, 5(2):197–227, 1990. The Strength of Weak Learnability )。

在本文中,Schapire 提出了一种基于递归组合 3 个弱学习器的三元组的 boosting 算法。顺便说一句,这是第一个提升算法。

我们可以使用算法的第一步(即使没有递归)来应对缺乏平衡。

该算法训练第一个学习器 L1,一个原始数据集。第二个学习器 L2 在一组 L1 有 50% 的机会正确(通过从原始分布中采样)的集合上进行训练。第三个学习者 L3 接受 L1 和 L2 不一致的情况的训练。作为输出,返回大多数分类器。请参阅论文以了解它改进分类的原因。

现在,对于不平衡集方法的应用:假设概念是二元的,并且大多数样本被分类为真。

让 L1 始终返回 true。L2 正在接受训练,L1 有 50% 的机会是正确的。由于 L1 是正确的,因此 L2 正在平衡数据集上进行训练。当 L1 和 L2 不一致时,即 L2 预测为假时,正在训练 L3。整体以多数票进行预测;因此,只有当 L2 和 L3 都预测为假时,它才会预测为假。

我在实践中多次使用这种方法,非常有用。它也有理论依据,因此涵盖了所有方面。

这里要说明的重要一点是,从统计决策理论的角度来看,将所有模式分类为可能是正确的答案。如果误分类成本相等,我们希望根据具有最高后验概率的类对模式进行分类,即,这取决于先验概率。因此,少数类别的先验概率可能足够低,并且每个类别的模式分布足够广泛,因此真正的c1p(C=ci|x)多数类的后验概率总是最高的。如果这对您的应用程序来说是不可接受的,那么这可能意味着您的错误分类成本不相等,因此您需要考虑每种错误分类的实际成本是多少,并将其构建到用于训练网络的成本函数中.

请注意,如果您的网络输出类成员概率的估计值,那么通常可以对训练网络的输出进行后处理,而不是预处理和重新训练 - 请参阅 Chris Bishop 的优秀书籍(“Neural Networks for Pattern Recognition ”)。

根据我的经验,这本身并不是一个“类不平衡问题”,而是少数类的模式太少,无法准确估计它们的分布,如果你增加数据集的大小(但保持比率相同)问题通常会消失。