数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化

简介: 数据处理 过采样与欠采样 SMOTE与随机采样 达到样本均衡化

✌ 过采样与欠采样

1、✌ 采样介绍

在分类问题中,有存在正反例数目差异较大的情况,这种情况叫做类别不平衡。

针对这种问题,解决方式有2种:假设正例数量大,反例数目极小。

1、减少正例的数量,使得数据平衡,再进一步分类,这种情况属于“欠采样”;

2、增加反例的数目平衡数据,再分类,这种称为“过采样”;

2、✌ 过采样

2.1 随机采样:

增加少数样本,随机在原来的少数样本中随机抽取样本,直至与多数样本数相等

2.2 SMOTE采样:

合成的策略是对每个少数类样本a,从它的最近邻中随机选一个样本b,然后在a,b之间的连线上随机选一点作为新合成的少数类样本。

3、✌ 欠采样

与过采样相反,抛弃过多的多数样本

4、✌ 代码演示

1.1 ✌ 创建数据

x=np.array([[1,2],[3,5],[3,5],[2,4],[5,9],[8,7],[13,5],[1,32],[1,8],[5,3]])
y=np.array([0,0,0,0,0,1,1,1,1,1])
from collections import Counter
Counter(y)

1.2 ✌ 随机采样

from imblearn.over_sampling import RandomOverSampler
ros=RandomOverSampler(random_state=0)
x_over,y_over=ros.fit_resample(x,y)
Counter(y_over)

1.3 ✌ SMOTE采样

from imblearn.over_sampling import SMOTE
smote=SMOTE(random_state=0)
x_smote,y_smote=smote.fit_resample(x,y)
y_smote

1.4 ✌ 欠采样

from imblearn.under_sampling import RandomUnderSampler
rus=RandomUnderSampler(random_state=0)
x_under,y_under=rus.fit_resample(x,y)
y_under
• 1
• 2
• 3
• 4


目录
相关文章
|
机器学习/深度学习 Linux vr&ar
ARIMA差分自回归移动平均模型
ARIMA是**差分自回归移动平均模型**的引文缩写,其中AR表示的是自回归模型,MA表示的是移动平均模型,I表示的是差分。一般写成ARIMA(p,d,q),p是自回归阶数,q是移动平均阶数,d表示差分的次数。
1270 0
ARIMA差分自回归移动平均模型
|
9天前
|
数据采集 机器学习/深度学习 数据可视化
过采样与欠采样技术原理图解:基于二维数据的常见方法效果对比
本文介绍了处理不平衡数据集的过采样和欠采样技术,包括随机过采样、SMOTE、ADASYN、随机欠采样、Tomek Links、Near Miss 和 ENN 等方法。通过二维数据集的可视化示例,直观展示了各种方法的原理和效果差异。文章还讨论了混合采样方法(如SMOTETomek和SMOTEENN)以及应用这些方法的潜在风险,强调了在实际应用中审慎选择的重要性。
17 3
|
29天前
|
机器学习/深度学习 数据可视化
FredNormer: 非平稳时间序列预测的频域正则化方法
FredNormer是一种创新的频域正则化方法,旨在提高时间序列预测模型处理非平稳数据的能力。现有正则化技术虽在分布偏移上有所成效,但在频域动态模式捕捉方面存在不足。FredNormer通过自适应增强关键频率分量的权重,解决了这一问题,并设计了即插即用模块,便于集成到各类预测模型中。实验表明,FredNormer在多个公共数据集上显著提升了预测精度,特别是在复杂频率特征的数据集上效果显著。此外,其计算效率也优于现有方法。该方法为非平稳时间序列预测提供了有力工具。
56 3
FredNormer: 非平稳时间序列预测的频域正则化方法
|
4月前
|
机器学习/深度学习 编解码 PyTorch
【YOLOv8改进】HWD: Haar小波降采样,用于语义分割的降采样模块,减少特征图的空间分辨率
YOLOv8专栏探讨了卷积网络的改进,特别是提出了一种名为HWD的基于Haar小波的下采样模块,用于语义分割,旨在保留更多空间信息。HWD结合了无损编码和特征表示学习,提高了模型性能并减少了信息不确定性。新度量标准FEI量化了下采样的信息保留能力。论文和代码可在提供的链接中找到。核心代码展示了如何在PyTorch中实现HWD模块。
|
6月前
|
算法 Linux Python
R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析
R语言BUGS序列蒙特卡罗SMC、马尔可夫转换随机波动率SV模型、粒子滤波、Metropolis Hasting采样时间序列分析
|
6月前
|
算法 vr&ar Python
R语言隐马尔可夫模型HMM连续序列重要性重抽样CSIR估计随机波动率模型SV分析股票收益率时间序列
R语言隐马尔可夫模型HMM连续序列重要性重抽样CSIR估计随机波动率模型SV分析股票收益率时间序列
|
6月前
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
极值分析:分块极大值BLOCK-MAXIMA、阈值超额法、广义帕累托分布GPD拟合降雨数据时间序列
|
6月前
|
机器学习/深度学习 传感器 编解码
快7倍 | SpirDet基于降采样正交重参化+稀疏解码器有效减少延迟,同时提升小目标检测精度
快7倍 | SpirDet基于降采样正交重参化+稀疏解码器有效减少延迟,同时提升小目标检测精度
108 0
|
6月前
|
算法 数据挖掘 C#
C# | 线性回归算法的实现,只需采集少量数据点,即可拟合整个数据集
什么是线性回归呢? 简单来说,线性回归是一种用于建立两个变量之间线性关系的统计方法。在我们的软件开发中,线性回归可以应用于数据分析、预测和优化等领域。 什么情况下会用到线性回归呢? 线性回归可以用于探索数据之间的关系,可以用于预测未来的趋势。通过少量的数据点就能得到一个可以代表整个数据集的模型。换句话说,只需要采集少量的数据点,就可以拟合出整个数据集。
241 0
C++-采样函数GridSampling(采样提速必备)
C++-采样函数GridSampling(采样提速必备)
136 0