不平衡分类的欠采样算法2025年6月25日 | 12分钟阅读 当数据集存在高度类别不平衡时,一个类别主导其他类别,尤其是在罕见事件的情况下,这是很正常的。类别不平衡通常会损害常规分类器,因为它们会倾向于多数类。解决此问题的一种方法称为欠采样。 什么是欠采样?欠采样是一种通过删除从多数类中提取的实例来调整不平衡数据集的策略。欠采样可能是一种有用的数据集平衡技术,尤其是在使用大型数据集进行训练以及/或在资源受限的环境中。如果操作得当,它是一种在不严重损害模型性能的情况下简化训练的有效方法。 欠采样的重要性它减少了多数类的影响,并使模型能够专注于从少数类中学习。欠采样通过随机选择来强调删除多数类中的实例,从而实现更好的类别平衡。通过这样做,模型不太可能产生偏差,少数类的整体性能得到改善,并且由于数据量,训练时间会缩短。但是,人们担心在欠采样过程中可能会丢失关键信息,并且如果欠采样效率不高,模型的准确性可能会下降。 现在,我们将实现随机欠采样,旨在平衡类别分布。为此,我们将生成合成数据。 代码 输出 ![]() 根据上述结果,我们可以解释:
选择要保留的样本的方法Near-miss 系列方法和众所周知的 Condensed Nearest Neighbor Rule 是两种确定要保留哪些多数类样本的技术。在本节中,我们将更详细地探讨这两种技术。 1. Near Miss 欠采样NearMiss 是一种欠采样方法,它通过只保留最接近少数类样本的样本来改进多数类。其思想是通过关注“近失”——即最接近少数类样本的多数类样本——来提高模型区分类别对的能力。 该方法有三种实例化:
现在让我们实现 Near-miss 欠采样。 代码 输出 ![]() 根据上述结果,我们可以解释:
02. 用于欠采样的最近邻居规则(Condensed Nearest Neighbor Rule)Condensed Nearest Neighbors 是一种智能欠采样技术,旨在收集最接近决策边界的优秀多数类实例。目标是创建一个模型可以轻松理解而不会被不必要的数据淹没的训练集。 整个过程从选择少数且随机的多数类子集开始。接下来查看每个幸存的多数类样本(来自两个类别)的最近邻居。如果样本被错误分类,这意味着其邻居表明它属于少数类,则将其包含在子集中。在没有更多多数类样本满足包含要求之前,都会进行此迭代过程。
现在让我们应用 Condensed Nearest Neighbor Rule。 代码 输出 ![]() 根据上述结果,我们可以解释:
选择要删除的样本的方法本节将探讨选择要从多数类中删除哪些样本的方法,例如 Edited Nearest Neighbors Rule 和众所周知的 Tomek Links 方法。 1. 用于欠采样的 Tomek LinksTomek Links 是一种欠采样方法,它通过识别和删除导致分类混淆的边界数据点来净化数据集。如果两个样本,一个来自多数类,一个来自少数类,是彼此最接近的邻居并且属于不同的类别,那么它们之间就存在 Tomek Link。 现在让我们应用 Tomek Links。 代码 输出 ![]() 根据上述结果,我们可以解释:
02. 用于欠采样的 Edited Nearest Neighbors RuleEdited Nearest Neighbors 是一种数据清理技术,它通过删除嘈杂的多数类样本来专门解决类别不平衡问题。在这里,对于多数类的每个实例,我们将获得其周围的邻居。然后我们需要找到k 个最近邻居。我们必须从整个数据集中找到 k 个最近邻居。 我们需要删除多数类,如果其邻居主要是少数类样本,因为我们认为它们是嘈杂的或不必要的。删除此后,此过程将继续进行,直到我们找不到具有少数类邻居的多数类样本为止。 现在让我们应用 Edited Nearest Neighbors。 代码 输出 ![]() 根据上述结果,我们可以解释:
保留和删除方法的组合在本节中,我们将探讨 One-Sided Selection 和 Neighborhood Cleaning Rule 等方法,这些方法结合了我们已经研究过的保留和删除多数类样本的方法。 01. 用于欠采样的 One-Sided SelectionOne-sided selection 是一种欠采样方法,旨在消除无助于区分决策边界的样本。One-sided selection 结合了 Condensed Nearest Neighbors 和 Tomek Links 的概念。 OSS 的工作原理如下:
现在让我们实现 One-Sided Selection。 代码 输出 ![]() 根据上述结果,我们可以解释:
02. 用于欠采样的 Neighborhood Cleaning RuleNeighborhood Cleaning Rule 是一种复杂的欠采样方法,它将智能实例删除与清理策略相结合。与随机欠采样不同,NCR 通过检查样本附近结构的拓扑结构来消除数据集中可能引起噪声和/或混淆的多数类样本。 现在让我们实现 Neighborhood Cleaning Rule。 代码 输出 ![]() 根据上述结果,我们可以解释:
下一主题机器学习预测 |
我们请求您订阅我们的新闻通讯以获取最新更新。