在机器学习中,我们经常会遇到类别数据分布不均衡问题,即某类中含有很多数据,而其他类别中的数据量很少。在这种情况下, 使用传统机器学习算法开发的预测模型可能存在偏差和不准确,造成上述的原因是,传统算法模型通过减少loss来提高准确性,他们并没有考虑到类别的分类不均问题。因此机器学习算法在面对不平衡的数据集时, 往往会产生不理想的分类器。
标准分类器算法 (如决策树和逻辑回归) 倾向于只预测多数类数据。少数群体的特征被视为噪音, 往往被忽略。因此, 与多数类相比, 少数类被错误分类的可能性很大。
常使用混淆矩阵来衡量分类算法性能的评价。
举个例子,不平衡分类数据下模型的危害。
假如我们要过滤1000封邮件,里面有用990封,有10封是广告邮件,这是需要进行过滤的。
这是我们训练得到一个分类器,其精度为99.0,看上去精度很高,但没用,这个分类器可能把所有1000封都认为是有用的,这样情况下并没起到过滤作用。
所以当存在分类数据不均衡时,我们必须要进行处理。
处理不平衡数据集的方法
2.1数据级方法:重采样技术(Data Level approach: Resampling Techniques)
-
随机下采样(Random Under-Sampling):从数据量大的类别中按一定比例抽取样本,与少量数据类别重新构建出一个训练集。
优点:在训练数据集巨大的情况下, 它可以通过减少训练数据样本的数量来帮助改善运行时间和存储问题。
缺点:它可以丢弃可能有用的信息, 这些信息对于构建规则分类器非常重要。同时,在抽样下随机选择的样本可能是有偏置的样本。而这也不是人口的准确代表。从而导致实际测试数据集的结果不准确。
-
随机过采样(Random Over-Sampling):通过随机复制少量数据类别中的样本,以增加少量类别样本数。
优点:与随机下采样不同的是, 这种方法不会导致信息丢失
缺点:它复制了少数族裔类事件, 从而增加了过度拟合的可能性。
-
基于聚类的过度抽样(Cluster-Based Over Sampling)
在这种情况下, k 均值聚类算法独立地应用于少数和多数类实例。这是为了标识数据集中的群集。随后, 对每个群集进行过采样, 以便同一个类的所有群集具有相同数量的实例, 并且所有类具有相同的大小。
优点:这种聚类技术有助于克服类不平衡之间的挑战。其中类由不同的子集群组成。
缺点:与大多数过度采样技术一样, 这种算法的主要缺点是训练数据过度拟合的可能性。
- Informed Over Sampling: Synthetic Minority Over-sampling Technique(smote)
采用此技术是为了避免在将少数实例的精确副本添加到主数据集时发生过度拟合。以少数族裔类的数据子集为例, 然后创建新的合成类似实例。然后将这些合成实例添加到原始数据集。新数据集用作定型分类模型的示例。
优点:减少随机过采样引起的过度拟合问题, 因为生成的是合成示例, 而不是实例的复制,同时不会丢失有用的信息
缺点:在生成合成示例时, smote 没有考虑其他类的相邻示例。这可能会导致类重叠的增加, 并可能带来额外的噪声,smote 对于高维数据不是很有效
- Modified synthetic minority oversampling technique (MSMOTE)
这是SMOTE的修改版本。 SMOTE没有考虑数据集中少数类的潜在分布和潜在噪声。 为了改善SMOTE的性能,使用了改进的方法MSMOTE。
该算法将少数类的样本分为3个不同的组 - 安全/安全样本,边界样本和潜在噪声样本。 这是通过计算少数类样本和训练数据样本之间的距离来完成的。
安全样本是那些可以改善分类器性能的数据点。 另一方面,噪声是可以降低分类器性能的数据点。 难以归类为两者中任何一个的那些被归类为边界样本。
虽然MSOMTE的基本流程与SMOTE的基本流程相同(在上一节中讨论过)。 在MSMOTE中,选择最近邻居的策略与SMOTE不同。 该算法从安全样本的k个最近邻居中随机选择一个数据点,从边界样本中选择最近邻居,对潜在噪声不做任何处理。
上面的5种方法都是属于重采样技术。其他的方法还有集成方法。
2.2 集成算法技术
上面的部分涉及通过重新采样原始数据来处理不平衡数据以提供平衡类。 在本节中,我们将讨论另一种方法,即修改现有的分类算法,使其适用于不平衡的数据集。
集合方法的主要目标是提高单个分类器的性能。 该方法涉及从原始数据构建几个两阶段分类器,然后汇总它们的预测。
- Bagging Based
Bagging是Bootstrap Aggregating的缩写。 传统的装袋算法涉及用替换产生’n’个不同的自举训练样本。 并分别在每个引导算法上训练算法,然后在最后聚合预测。
Bagging用于减少过度拟合,以便创建强大的学习者来生成准确的预测。 与增强不同,套袋允许在自举样品中进行更换。
- Boosting-Based
Boosting是一种集成弱学习者的集合技术,可以创建一个可以做出准确预测的强大学习者。 Boosting从基础分类器/弱分类器开始,该分类器是根据训练数据准备的。
比较有代表性:AdaBoost, Gradient Tree Boosting,XG Boost
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)