机器学习中上(过)、下(欠)采样的方法

过采样:

  • smote
  1. 假设有两个class:class1 和 class2 ,其中class1样本数少
  2. 从class1中随机选择一个点C,找到该点的K个邻居
  3. 从K个邻居中随机选择一个点C_ne
  4. 连接C与C1,在C与C_ne的连线上生成新的点C_new
  5. 重复1-4 M步骤,可构造M个点
from sklearn.datasets import make_classification
from imblearn.over_sampling import SMOTE
from  collections import Counter

# 构造不平衡数据
x,y=make_classification(n_classes=2,n_features=20,n_samples=100,shuffle=True,weights=[0.9,0.1])

#
smt=SMOTE(k_neighbors=4,sampling_strategy=0.5)
x1,y1=smt.fit_resample(x,y)
print(Counter(y1))

 

欠采样:

   参考文章:https://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/tsmcb09.pdf

  • EasyEnsemble

  • BalanceCascade

  1. EasyEnsemble 中下采样的方式是无监督的,只是将N做有放回的抽样,然后与P一起,构成子树的样本集
  2. BalanceCascade 中下采样的方式是有监督的,在1的基础上,用adaboost方法生成分类器H1,用H1去对N中的样本做预测,如果预测对的话,那么认为该样本是冗余的,就可以从N中去除;
  3. 上述两个算法是将下采样与分类器一并构造;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值