处理不平衡数据集需要在往机器学习算法输入数据之前,制定诸如提升分类算法或平衡训练数据的类(数据预处理)的策略。后者因为应用范围广泛而更常使用。 平衡分类的主要目标不是增加少数类的的频率就是降低多数类的频率。这样做是为了获得大概相同数量的两个类的实例。让我们一起看看几个重采样(resampling)技术: 2.1.1 随机欠采样(Random Under-Sampling) 随机欠采样的目标是通过随机地消除占多数的类的样本来平衡类分布;直到多数类和少数类的实例实现平衡,目标才算达成。 总观测= 1000 欺诈性观察 = 20 非欺诈性观察 = 980 事件发生率 = 2% 这种情况下我们不重复地从非欺诈实例中取 10% 的样本,并将其与欺诈性实例相结合。 随机欠采样之后的非欺诈性观察 = 980 x 10% = 98 结合欺诈性与非欺诈性观察之后的全体观察 = 20+98 = 118 欠采样之后新数据集的事件发生率 = 20/118 = 17% 优点 它可以提升运行时间;并且当训练数据集很大时,可以通过减少样本数量来解决存储问题。 缺点 它会丢弃对构建规则分类器很重要的有价值的潜在信息。 被随机欠采样选取的样本可能具有偏差。它不能准确代表大多数。从而在实际的测试数据集上得到不精确的结果。 2.1.2 随机过采样(Random Over-Sampling) 过采样(Over-Sampling)通过随机复制少数类来增加其中的实例数量,从而可增加样本中少数类的代表性。 总观测= 1000 欺诈性观察 = 20 非欺诈性观察 = 980 事件发生率 = 2% 这种情况下我们复制 20 个欺诈性观察 20 次。 非欺诈性观察 = 980 复制少数类观察之后的欺诈性观察 = 400 过采样之后新数据集中的总体观察 = 1380 欠采样之后新数据集的事件发生率 = 400/1380 = 29% 优点 与欠采样不同,这种方法不会带来信息损失。 表现优于欠采样。 缺点 由于复制少数类事件,它加大了过拟合的可能性。 2.1.3 基于聚类的过采样(Cluster-Based Over Sampling) 在这种情况下,K-均值聚类算法独立地被用于少数和多数类实例。这是为了识别数据集中的聚类。随后,每一个聚类都被过采样以至于相同类的所有聚类有着同样的实例数量,且所有的类有着相同的大小。 总观测= 1000 欺诈性观察 = 20 非欺诈性观察 = 980 事件发生率 = 2% 多数类聚类 1. 聚类 1:150 个观察 2. 聚类 2:120 个观察 3. 聚类 3:230 个观察 4. 聚类 4:200 个观察 5. 聚类 5:150 个观察 6. 聚类 6:130 个观察 少数类聚类 1. 聚类 1:8 个观察 2. 聚类 2:12 个观察 每个聚类过采样之后,相同类的所有聚类包含相同数量的观察。 多数类聚类 1. 聚类 1:170 个观察 2. 聚类 2:170 个观察 3. 聚类 3:170 个观察 4. 聚类 4:170 个观察 5. 聚类 5:170 个观察 6. 聚类 6:170 个观察 少数类聚类 1. 聚类 1:250 个观察 2. 聚类 2:250 个观察 基于聚类的过采样之后的事件率 = 500/ (1020+500) = 33 % 优点 这种聚类技术有助于克服类之间不平衡的挑战。表示正例的样本数量不同于表示反例的样本数量。 有助于克服由不同子聚类组成的类之间的不平衡的挑战。每一个子聚类不包含相同数量的实例。 缺点 正如大多数过采样技术,这一算法的主要缺点是有可能过拟合训练集。 2.1.4 信息性过采样:合成少数类过采样技术(SMOTE) (责任编辑:本港台直播) |