python过采样权重实现

您所在的位置:网站首页 过采样和欠采样算法 python过采样权重实现

python过采样权重实现

2022-12-30 12:23| 来源: 网络整理| 查看: 265

python

过采样权重实现

_

不平衡数据集的处理

-osc_sqq5osi1

个⼈空间

-OSC

。。。

⼀、不平衡数据集的定义

所谓的不平衡数据集指的是数据集各个类别的样本量极不均衡。以⼆分类问题为例,假设正类的样本数量远⼤于负类的样本数量,通常情况

下通常情况下把多数类样本的⽐例接近100:1这种情况下的数据称为不平衡数据。不平衡数据的学习即需要在分布不均匀的数据集中学习到

有⽤的信息。

不平衡数据集的处理⽅法主要分为两个⽅⾯:

1、从数据的⾓度出发,主要⽅法为采样,分为⽋采样和过采样以及对应的⼀些改进⽅法。

2、从算法的⾓度出发,考虑不同误分类情况代价的差异性对算法进⾏优化,主要是基于代价敏感学习算法(Cost-Sensitive Learning),代

表的算法有adacost;

另外可以将不平衡数据集的问题考虑为⼀分类(One Class Learning)或者异常检测(Novelty Detection)问题,代表的算法有One-class

SVM。

本⽂主要介绍从数据⾓度出发的不平衡数据集的处理⽅法以及对应的python库(imblearn)。

⼆、从数据⾓度出发的不平衡数据集的处理⽅法

2-1、随机采样

2-1-1、朴素随机过采样(上采样)

针对不平衡数据, 最简单的⼀种⽅法就是⽣成少数类的样本, 这其中最基本的⼀种⽅法就是: 从少数类的样本中进⾏随机采样来增加新的样

本,对应Python库中函数为RandomOverSampler:

from imblearn.over_sampling

import RandomOverSampler

ros = RandomOverSampler(random_state=0)

X_resampled, y_resampled = ros.fit_sample(X, y)

2-1-2、朴素随机⽋采样(下采样)

与过采样相反,⽋采样是从多数类样本中随机选择少量样本,再合并原有少数类样本作为新的训练数据集。

随机⽋采样有两种类型分别为有放回和⽆放回两种,⽆放回⽋采样在对多数类某样本被采样后不会再被重复采样,有放回采样则有可能。

对应Python库中函数为RandomUnderSampler,通过设置RandomUnderSampler中的replacement=True参数, 可以实现⾃助法

(boostrap)抽样。

2-1-3、随机采样的优缺点

随机采样最⼤的优点是简单,但缺点也很明显。上采样后的数据集中会反复出现⼀些样本,训练出来的模型会有⼀定的过拟合;⽽下采样的

缺点显⽽易见,那就是最终的训练集丢失了数据,模型只学到了总体模式的⼀部分。

上采样会把⼩众样本复制多份,⼀个点会在⾼维空间中反复出现,这会导致⼀个问题,那就是运⽓好就能分对很多点,否则分错很多点。

为了解决这⼀问题,可以在每次⽣成新数据点时加⼊轻微的随机扰动,经验表明这种做法⾮常有效,但是这⼀⽅式会加重过拟合。

2-2、过采样的改进:SMOTE与ADASYN

相对于采样随机的⽅法进⾏过采样, 还有两种⽐较流⾏的过采样的改进⽅式:

(1)、Synthetic Minority Oversampling Technique(SMOTE)

(2)、Adaptive Synthetic (ADASYN)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3