样本不平衡造成的影响和解决方案
时间:2022-07-24
本文章向大家介绍样本不平衡造成的影响和解决方案,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
我们在做分类问题的时候,有时候会遇到正负样本非常不平衡的现象,比如正例:负例=1:100等更极端的现象。这样分类器可能会都判断为负例,这样必然存在很多FALSE negative,并且模型不具有泛化能力。
比如下面这个例子,正:负约等于1:100:
混淆矩阵可以看到,预测结果将测试集都判断为0,即负例,这个结果非常极端。我们可以主要通过以下方案解决:
- 增加数据
- 数据重采样 对于数据量少的进行过采样(over-sampling );对数据量很大的样本进行欠采样(under-sampling)。
- 人工生成数据 比如用SMOTE算法人工生成新的少数样本。
在python中可以直接使用imblearn处理不平衡数据:
# 安装
conda install -c conda-forge imbalanced-learn
# 随机欠采样示例
from imblearn.under_sampling import RandomUnderSampler
RandomUnderSampler = RandomUnderSampler(random_state=287) # Downsampling
X, y = RandomUnderSampler.fit_sample(X,y)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state = 16, stratify=y)
clf = LogisticRegression()
clf.fit(X_train, y_train)
- Ajax几种常用模式
- dubbox升级spring到4.x及添加log4j2支持
- CSS魔法堂:Absolute Positioning就这个样
- MongoDB(一)环境搭建与初始配置
- AI进了直播间,这画风666
- CSS布局:水平居中
- docker学习(4) 一些常用操作
- Java多线程之细说线程池
- Windows8异步编程的注意事项
- Spring(一)Spring的第一滴血
- Flume(一)Flume原理解析
- 我所理解的Remoting (2) :远程对象的生命周期管理[下篇]
- struts2(六)之ognl表达式与ActionContext、ValueStack
- Windows8异步编程的注意事项
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android编程之菜单Menu的创建方法示例
- Ubuntu下Docker CE的安装
- 基于Android自定义控件实现雷达效果
- Android 中 onSaveInstanceState()使用方法详解
- Linux修改主机名的简单方法
- Android RecycleView使用(CheckBox全选、反选、单选)
- Android自定义滑动解锁控件使用详解
- linux nc命令小结
- Android如何自定义EditText光标与下划线颜色详解
- 基于Centos7 部署Varnish缓存代理服务器
- Android getActivity()为空的问题解决办法
- Android Notification使用方法总结
- Linux下redis的持久化、主从同步与哨兵详解
- 详解Android(共享元素)转场动画开发实践
- Android自定义View中attrs.xml的实例详解