NLP 语料分类不均衡的解决办法

一、Introduction

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

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

看一下我的语料:
语料种类
一共6类,数目差别非常大。

二、Influence

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

三、别人的解决办法

常规的做法:

数据层面:

过抽样

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

欠抽样

  • 直接删除
  • 随机减少多数类样本的数量。
算法层面:

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

RBG和Kaiming给出的相当牛逼的方法,这里不做详细介绍。
详情见链接:http://blog.csdn.net/u014380165/article/details/77019084

看到一篇博客:
感觉脑洞很大,一种特殊的过抽样

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

https://blog.csdn.net/u014535908/article/details/79035653

四、个人的解决办法

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

五、Reference

https://blog.csdn.net/jerryfy007/article/details/72904257
http://blog.sina.com.cn/s/blog_afa352bf0102vo57.html
https://blog.csdn.net/u014380165/article/details/77019084

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值