博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NLP 语料分类不均衡的解决办法
阅读量:7251 次
发布时间:2019-06-29

本文共 859 字,大约阅读时间需要 2 分钟。

一、Introduction

以前在做情感分类问题都是用sst等等,一些经典的语料,但是当自己要做语料的时候,才发现事情并不是想象的那么简单。要进行语料清洗,语料的切分(十折交叉),现在又要考虑语料的均衡性问题。

不平衡问题:类别之间的语料数目相差很大

看一下我的语料:

语料种类
一共6类,数目差别非常大。

二、Influence

类别之间的语料数目不平衡是制约很多分类算法准确率的一个因素。很多分类器分类的时候都会倾向将语料分为大类,因此造成分类的准确率降低。但是不平衡分类这个问题是确实存在而且普遍存在的,很多时候那些少数类才是值得我们关注的。例如,网络攻击,信用卡非法交易,等。信用卡非法交易是属于少类,分类是少类的语料准确率低,难以发现这个非法的记录。

为啥少类语料分类准确率低?因为少类语料的特征不明显,容易跟噪声语料混在一起。而大部分的分类方法都是基于特征来进行分类。少类特征不明显,因此也难以将少类的语料区别出来。

三、别人的解决办法

常规的做法:

数据层面:

过抽样

  • 直接复制,即不断复制类别样本数少的类别样本。
  • 插值法:通过对样本归一化,采样,求得样本分布,极值,均值等,然后根据样本分布,极值,均值来生成新样本来扩充样本数目。

欠抽样

  • 直接删除
  • 随机减少多数类样本的数量。

算法层面:

Weighted loss function,一个处理非平衡数据常用的方法就是设置损失函数的权重,使得少数类判别错误的损失大于多数类判别错误的损失。在python的sk-learn中我们可以使用class_weight参数来设置权重,提高少数类权重,例如设置为多数类的10倍。

RBG和Kaiming给出的相当牛逼的方法,这里不做详细介绍。

详情见链接:

看到一篇博客:

感觉脑洞很大,一种特殊的过抽样

本文首先分析样本数少的类别,通过文本句法依赖分析,文本词性标记分析词的相关属性,然后采用同义词替换的方式生成新的文本。方法简单有效

四、个人的解决办法

暂时没有想好,要尝试一下,结果出来再填上

五、Reference

你可能感兴趣的文章
python 读写文件中 w与wt ; r与rt 的区别
查看>>
深究“通过样式表实现固定表头和列”
查看>>
《Office 365开发入门指南》上市说明和读者服务
查看>>
Docker生态会重蹈Hadoop的覆辙吗?
查看>>
WPF换肤之八:创建3D浏览效果
查看>>
JEECG环境搭建(Maven版本)-总结Eclipse
查看>>
HTTP第一篇【简单了解HTTP、与HTTP相关的协议】
查看>>
Python生成随机验证码
查看>>
Python学习笔记(3)——数据类型和变量
查看>>
03、微信小程序之 永不过时的HelloWorld
查看>>
NFS配置不当那些事
查看>>
[译] 如何写出更好的 React 代码?
查看>>
一起撸个朋友圈吧(step3) - ListAdapter篇
查看>>
LeetCode 642 号问题:设计搜索自动补全系统
查看>>
探究Android View 绘制流程,Canvas 的由来
查看>>
JS原生交互
查看>>
[译] JavaScript 工作原理:Web Worker 的内部构造以及 5 种你应当使用它的场景
查看>>
Android使用Path仿支付宝支付成功失败动画
查看>>
聊聊rocketmq的DailyRollingFileAppender
查看>>
HTTP/2
查看>>