数据处理之不平衡数据过采样与下采样

本文介绍三种处理数据集中类别不平衡的方法:使用pandas进行过采样、使用imblearn模块进行下采样和上采样,以及结合裁剪数据与生成新数据。通过实际代码示例展示了如何实现这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一: 直接使用pandas.sample(frac=2.0)(过采样)

oversample = train_df.sample(frac=2.2, resample=True)
downsample = train_df.sample(frac=0.2)

方法二: 使用python的imblearn模块
下采样:

from imblearn.under_sampling import RandomUnderSampler

ran = RandomUnderSampler(return_indices=True)

x_rs, y_rs, dropped = ran.fit_sample(X, y)

在这里插入图片描述
上采样;

from imblearn.over_sampling import RandomOverSampler

ran=RandomOverSampler()
X_ran,y_ran= ran.fit_resample(X,y)

在这里插入图片描述方法三:使用imblearn自动裁剪数据和生成新的数据
删除临界值来下采样:

from imblearn.under_sampling import TomekLinks

tl = TomekLinks(return_indices=True, ratio='majority')
X_tl, y_tl, id_tl = tl.fit_sample(X, y)

在这里插入图片描述生成新数据来上采样:

from imblearn.over_sampling import SMOTE

smote = SMOTE(ratio='minority')
X_sm, y_sm = smote.fit_sample(X, y)

在这里插入图片描述
Reference:
https://www.kaggle.com/shahules/tackling-class-imbalance

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值