likes
comments
collection
share

机器学习基础-监督学习-有监督标签之标签平衡处理

作者站长头像
站长
· 阅读数 4

标签平衡处理是针对不平衡的数据集,通过对标签进行处理来平衡不同类别样本的数量。常见的标签平衡处理方法包括欠采样和过采样两种。

欠采样:欠采样是从多数类样本中删除一些样本,使得多数类样本数量与少数类样本数量相近。常见的欠采样方法有:随机欠采样、近邻欠采样、聚类欠采样等。

过采样:过采样是向少数类样本中添加一些样本,使得多数类样本数量与少数类样本数量相近。常见的过采样方法有:随机过采样、SMOTE(Synthetic Minority Over-sampling Technique)过采样等。

下面是一些欠采样和过采样的示例代码:

  1. 随机欠采样
from imblearn.under_sampling import RandomUnderSampler

# 使用随机欠采样方法进行标签平衡处理
rus = RandomUnderSampler()
X_resampled, y_resampled = rus.fit_resample(X, y)
  1. SMOTE 过采样
from imblearn.over_sampling import SMOTE

# 使用 SMOTE 过采样方法进行标签平衡处理
smote = SMOTE()
X_resampled, y_resampled = smote.fit_resample(X, y)

其中,X 表示特征矩阵,y 表示标签向量。可以使用 imbalanced-learn 库来实现标签平衡处理。在使用标签平衡处理方法时,需要根据具体问题和数据集选择合适的方法,避免对模型性能产生负面影响。

欠采样

欠采样是通过删除多数类样本来平衡不同类别的样本数量,以避免训练模型时出现多数类样本过多的问题。常见的欠采样方法包括:

  1. 随机欠采样(Random Under-Sampling):从多数类样本中随机删除一些样本,使得多数类样本数量与少数类样本数量相近。

  2. Tomek links 欠采样:Tomek links 指的是不同类别之间距离比较近的样本对。Tomek links 欠采样是指删除在 Tomek links 中较多的多数类样本,以使得多数类样本数量与少数类样本数量相近。

  3. 重心欠采样(Centroid Under-Sampling):在多数类样本中,找到聚类中心,然后删除多数类样本中距离聚类中心最近的一些样本,以使得多数类样本数量与少数类样本数量相近。

  4. One-Sided Selection:该方法是结合了 Tomek links 欠采样和 KNN 欠采样的思想,先通过 Tomek links 方法删除一些多数类样本,然后在剩余的多数类样本中,选择 KNN 中离少数类最近的样本,保留这些样本。

  5. Neighborhood Cleaning Rule 欠采样:该方法也是结合了 Tomek links 欠采样和 KNN 欠采样的思想,首先使用 KNN 方法找出多数类样本中与少数类样本比较近的样本,然后在这些样本中删除与多数类样本比较远的一些样本。

  6. Edited Nearest Neighbors 欠采样:该方法是基于 KNN 方法,首先在所有的样本中找到少数类样本,然后对每个少数类样本找到 K 个与其最近的多数类样本,如果这 K 个多数类样本中有超过一半的样本判定为异常点,则删除这个少数类样本。

在实际应用中,需要根据具体问题和数据集选择合适的欠采样方法,以避免对模型性能产生负面影响。

过采样

过采样是一种常用的标签平衡处理方法,它通过增加少数类样本的数量,从而缓解数据集不平衡问题。下面列举一些常用的过采样方法:

  1. 随机过采样(Random Over Sampling):该方法是最简单的过采样方法之一,它从少数类样本中随机选择样本进行复制。这种方法存在一个问题,即容易产生过拟合。

  2. SMOTE(Synthetic Minority Over-sampling Technique):SMOTE 是一种基于 KNN(K-Nearest Neighbors)的过采样方法,它根据少数类样本之间的距离,产生一些新的少数类样本。SMOTE 方法可以有效地避免过拟合问题。

  3. ADASYN(Adaptive Synthetic Sampling):ADASYN 是 SMOTE 的一种改进版本,它通过计算每个少数类样本周围的多数类样本比例,决定需要产生的新样本数量。这种方法可以更好地适应不同的数据集。

  4. Borderline-SMOTE:Borderline-SMOTE 是基于 SMOTE 的一种改进版本,它只对那些靠近多数类的少数类样本进行过采样。这种方法可以有效地提高分类器的性能。

  5. Safe-Level-SMOTE:Safe-Level-SMOTE 是基于 SMOTE 的一种改进版本,它不仅考虑了少数类样本之间的距离,还考虑了多数类样本之间的距离。这种方法可以更好地避免产生噪声样本。

  6. ROSE(Random Over-Sampling Examples):ROSE 是一种基于样本生成的过采样方法,它通过对少数类样本进行样本生成,以增加数据集中的少数类样本数量。

这些过采样方法各有特点,需要根据具体问题和数据集选择合适的方法。同时,在使用过采样方法时,也需要注意过度过采样会产生过拟合问题,需要谨慎使用。