当前位置:网站首页>分类中解决类别不平衡问题
分类中解决类别不平衡问题
2022-04-21 08:04:00 【weixin_38871988】
分类中解决类别不平衡问题
在现实环境中,采集的数据(建模样本)往往是比例失衡的。比如网贷数据,逾期人数的比例是极低的(千分之几的比例);奢侈品消费人群鉴定等
在这一节中,我们一起看一下,当遇到数据类别不平衡的时候,我们该如何处理。在Python中,有Imblearn包,它就是为处理数据比例失衡而生的。
安装Imblearn包
pip3 install imbalanced-learn
解决类别不平衡数据方法介绍
过采样方法
对训练集里的少数类进行“过采样”(oversampling),即增加一些少数类样本使得正、反例数目接近,然后再进行学习。
随机过采样方法
复制
# 使用imblearn进行随机过采样
from imblearn.over_sampling import RandomOverSampler
ros = RandomOverSampler(random_state=0)
X_resampled, y_resampled = ros.fit_resample(X, y)
#查看结果
Counter(y_resampled)
#过采样后样本结果
# Counter({2: 4674, 1: 4674, 0: 4674})
# 数据集可视化
plt.scatter(X_resampled[:, 0], X_resampled[:, 1], c=y_resampled)
plt.show()
过采样代表性算法-SMOTE
对每个少数类样本 [公式] ,从它的最近邻中随机选择一个样本 [公式] ( [公式] 是少数类中的一个样本),然后在 [公式] 和 [公式] 之间的连线上随机选择一点作为新合成的少数类样本。
# SMOTE过采样
from imblearn.over_sampling import SMOTE
X_resampled, y_resampled = SMOTE().fit_resample(X, y)
Counter(y_resampled)
# 采样后样本结果
# [(0, 4674), (1, 4674), (2, 4674)]
# 数据集可视化
plt.scatter(X_resampled[:, 0], X_resampled[:, 1], c=y_resampled)
plt.show()
欠采样
直接对训练集中多数类样本进行“欠采样”(undersampling),即去除一些多数类中的样本使得正例、反例数目接近,然后再进行学习。
随机欠采样
from imblearn.under_sampling import RandomUnderSampler
rus = RandomUnderSampler(random_state=0)
X_resampled, y_resampled = rus.fit_resample(X, y)
Counter(y_resampled)
# 采样后结果
[(0, 64), (1, 64), (2, 64)]
# 数据集可视化
plt.scatter(X_resampled[:, 0], X_resampled[:, 1], c=y_resampled)
plt.show()
缺点:
随机欠采样方法通过改变多数类样本比例以达到修改样本分布的目的,从而使样本分布较为均衡,但是这也存在一些问题。对于随机欠采样,由于采样的样本集合要少于原来的样本集合,因此会造成一些信息缺失,即将多数类样本删除有可能会导致分类器丢失有关多数类的重要信息。
版权声明
本文为[weixin_38871988]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_38871988/article/details/109579567
边栏推荐
猜你喜欢
![Niuke white moon race 4 [solution]](/img/73/2ca6cc0501134258544e77736d18c8.png)
Niuke white moon race 4 [solution]

IntelliJ更新后Kotlin项目无法运行

链表结点的删除

报告解读下载 | 数据库的未来和“十四五”数据库发展趋势与挑战

幽灵空白节点特性

Final Cut Pro 在视频的多个地方同时打马赛克

Be sure to look at the nine steps of MES model selection. Which step did you miss? (top)
![[template] optimized drawing of line segment tree](/img/ca/35ed85052a5a6dbc2baca05215478d.png)
[template] optimized drawing of line segment tree

MySQL编码问题

【C语言入门系列(8)(9)】第八、九章、指针、结构体
随机推荐
Final Cut Pro 在视频的多个地方同时打马赛克
【读书笔记->统计学】07-02 离散型概率分布-二项分布概念简介
Hierarchical traversal of binary tree
win10 6种截图方法 简介
記C#的操蛋字符串轉Base64和Base64還原字符串
触发EPOLLIN 和 EPOLLOUT的所有情况
js第十二篇
Brief introduction of 6 screenshots of win10
HTTP cache policy and scheme
在链表结点前插入新结点
【C语言入门系列(8)(9)】第八、九章、指针、结构体
在链表结点后插入新结点
Servlet生命周期
photoshop ps 测量角度 简介
pip安装成功,但是pycharm报错的问题
Security settings of SQL Server database of SQL Server database
链表结点的删除
目录、文件夹、文件三者的区别
Add a cute girl to your website
二叉树的层次遍历