使用遗传交叉算子进行过采样处理数据不平衡(一)

简介: 使用遗传交叉算子进行过采样处理数据不平衡

除了随机过采样,SMOTE及其变体之外,还有许多方法可以对不平衡数据进行过采样。 在使用scikit-learn的make_classification默认设置生成的分类数据集中,使用交叉操作生成的样本在最相关的指标上胜过SMOTE和随机过采样。

本篇文章的目录如下

  • 介绍
  • 数据准备
  • 随机过采样和SMOTE
  • 交叉过采样
  • 绩效指标评估
  • 结论

介绍

我们中的许多人都会遇到处于使用不平衡数据集的预测模型的情况。

最流行的处理失衡的方法包括:

  • 增加未被充分标记的的分类的权重
  • 过采样技术
  • 欠采样技术
  • 过度采样和欠采样的组合
  • 调整成本函数

这篇文章将讨论过采样技术,我们将特别研究依赖于在特征空间内插值的SMOTE变体(borderline SMOTE, ADASYN等)如何生成较少的新合成数据。

过度抽样的方法太多了。我们使用简单的单点、两点和均匀交叉操作对合成数据进行过采样,并将评价结果与随机过采样进行比较。一般情况下,将过采样和欠采样结合使用会更好,但是在本演示中,我们为了说明只使用过采样。

数据集准备

我们使用scikit-learn的make_classification函数来创建一个不平衡的数据集,该数据集包含两个类别中的5000个数据点(二进制分类)。目标为0的机会为95%,目标为1的机会为5%。

fromsklearn.datasetsimportmake_classificationimportseabornassnsX, y=make_classification(
n_samples=5000, n_classes=2,
weights=[0.95, 0.05], flip_y=0)
sns.countplot(y)
plt.show()

640.png

默认情况下,会创建20个特征,下面是X数组中的示例条目。

640.png

make_classification中的其余设置为默认设置,下面我们将数据分为训练和测试数据集。

fromsklearn.model_selectionimporttrain_test_splitX_train, X_test, y_train, y_test=train_test_split(X, y)

随机和SMOTE过采样

现在,让我们准备函数以生成数据集,其中可以使用随机过采样和SMOTE对少数类(目标= 1)进行过采样。

fromimblearn.over_samplingimportSMOTE, RandomOverSamplerdefoversample_random(X, y, rows_1, random_state):
'''Accepts X and y arrays along with the number ofrequired positively labeled samples (rows_1). Returnsrandomly oversampled positively labeled data.'''X_random, y_random=RandomOverSampler(
sampling_strategy={1: rows_1},
random_state=random_state    ).fit_resample(X_train, y_train)
returnX_random, y_randomdefoversample_smote(X, y, rows_1, k_neighbors, random_state):
'''Accepts X and y arrays along with the number ofrequired positively labeled samples (rows_1) and numberof nearest neighbors to consider in the SMOTE algorithm.Returns SMOTE oversampled positively labeled data.'''X_smote, y_smote=SMOTE(
sampling_strategy={1: rows_1},
k_neighbors=k_neighbors,
random_state=random_state    ).fit_resample(X, y)
returnX_smote, y_smote

请注意,为了方便进行比较我们使用普通的SMOTE而不是边界SMOTE,ADASYN,SVM-SMOTE等。在下一部分中使用交叉操作生成样本时,我们不会考虑是在边界附近生成样本还是被认为有噪声等。

如果您不熟悉随机过采样和SMOTE,则在网上有很多资源,但是这里有个简短的回顾:

随机过采样涉及从我们尝试过采样的少数类中随机选择数据点,然后将它们作为重复项再次添加回数据集。

640.gif

随机过采样的插图,较大的气泡代表随机选择用于过采样的数据点,它们在数据集中显示为重复项

SMOTE涉及从少数类中查看样本的最近邻居,并在该样本与从其最近邻居中随机选择的另一个样本之间插入特征值。

640.gif

SMOTE,红色数据点是插值后综合生成的数据

交叉算子

交叉运算在遗传算法中被广泛使用,它是由有性生殖中发生的遗传物质的交叉驱动的。

该操作相对简单,其中“染色体”中的信息由两个“父母”贡献以生成“孩子”。在我们的用例中,染色体中的信息仅是特征值。

640.png

通常以位阵列表示信息以获得更好的性能。

例如:在我们的数据集中,我们有20个特征和5000个样本。在单点交叉操作中,我们可以选择两个“父级”,例如样本#20和样本#1500,并选择一个随机的交叉点,例如第十特征。然后,我们生成一个新的“子级”,即新数据点,该新数据点的第一个父级(样本#20)具有特征1–9,第二个父级(样本#1500)具有特征10–20。

640.gif

我们将考虑3种交叉操作:

  • single-point 单点
  • two-point 两点
  • uniform 均匀

单点交叉操作是上面所示的示例,其中交叉点之前的要素由一个父级提供,而交叉点之后的要素由另一父级提供。

在两点交叉操作中,父级1贡献第一个交叉点之前的子数据点的特征值,然后父级2贡献其特征值直到第二个交叉点,然后贡献在第二个交叉点之后返回父级1。

640.png

通过均匀交叉操作,两个父级中的任何一个都可以为20个要素中的任何一个对子数据点的要素值做出贡献。

640.png

下面是我们用来生成交叉样本的函数。还有一个附加参数knn,它过滤掉所有生成的样本,这些样本的最近邻居的目标是0而不是1。默认情况下,此选项设置为False。

目录
打赏
0
0
0
0
530
分享
相关文章
处理不平衡数据的过采样技术对比总结
在不平衡数据上训练的分类算法往往导致预测质量差。模型严重偏向多数类,忽略了对许多用例至关重要的少数例子。这使得模型对于涉及罕见但高优先级事件的现实问题来说不切实际。
317 0
|
4月前
|
基于改进自适应分段线性近似(IAPLA)的微分方程数值解法研究: 从简单动力系统到混沌系统的应用分析
IAPLA方法为复杂动力系统的数值模拟提供了一个灵活、高效且易于实现的框架,在众多实际应用中可以作为现有数值求解器的有效替代方案。
52 2
基于改进自适应分段线性近似(IAPLA)的微分方程数值解法研究: 从简单动力系统到混沌系统的应用分析
Beta分布与汤普森采样:智能决策系统概率采样的理论基础
在现代技术领域,算法决策优化成为核心竞争力的关键。Meta、Netflix和亚马逊等公司通过广告位置、缩略图及产品推荐的优化,显著提升了用户体验和商业效益。这些优化背后的共同点是采用了基于Beta分布的汤普森采样算法,有效解决了决策系统中探索与利用的平衡问题。通过从概率分布中随机采样来做出决策,汤普森采样不仅保证了对已知良好选项的充分利用,还维持了对潜在更优选项的探索,从而在实践中实现了高效且自适应的决策过程。
89 8
时间序列预测的不确定性区间估计:基于EnbPI的方法与应用研究
本文探讨了时间序列预测中不确定性量化的问题,特别是基于一致性预测理论的EnbPI方法。EnbPI通过集成学习和自举采样技术,解决了传统方法在处理非平稳时间序列数据时的局限性,提供了一种分布无关的预测区间构建方法,支持任意估计器的集成,并在推理阶段保持高效。实验结果显示,EnbPI在德国电力价格预测中表现出良好的覆盖率和适应性,尽管存在一定的计算成本。
67 0
R语言拟合线性混合效应模型、固定效应随机效应参数估计可视化生物生长、发育、繁殖影响因素
R语言拟合线性混合效应模型、固定效应随机效应参数估计可视化生物生长、发育、繁殖影响因素
R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列
R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列
R语言隐马尔可夫模型HMM连续序列重要性重抽样CSIR估计随机波动率模型SV分析股票收益率时间序列
R语言隐马尔可夫模型HMM连续序列重要性重抽样CSIR估计随机波动率模型SV分析股票收益率时间序列
R语言非线性混合效应 NLME模型(固定效应&随机效应)对抗哮喘药物茶碱动力学研究
R语言非线性混合效应 NLME模型(固定效应&随机效应)对抗哮喘药物茶碱动力学研究
|
10月前
用SAS进行泊松,零膨胀泊松和有限混合Poisson模型分析
用SAS进行泊松,零膨胀泊松和有限混合Poisson模型分析
|
10月前
R语言中固定与随机效应Meta分析 - 效率和置信区间覆盖
R语言中固定与随机效应Meta分析 - 效率和置信区间覆盖
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等