renjunxiang/Text-Classification

predict的label严重不准确的问题

Closed this issue · 1 comments

道友你好~
使用DEMO的法律数据进行测试发现,predict的label几乎(95%以上)全部是一样的
我查看了前三位的索引值
prediction.argsort()[-3:][::-1]
类似:
[139,34,55]
[139,34,55]
........
[139,55,34]

基本完全一样

我发现prediction内的值是不一样的,但最高的几个值都是在固定位置
换成我自己用的数据(标签更丰富)进行测试,同样的问题,每次都还是几个固定的label
不明白是哪里出了问题

你好,我刚才试了一下,多标签预测的确有您说的情况。这个项目是第一份工作做情感分析边学变整理的,后来参加了CAIL2018比赛多才加上多标签的,没有去测试小数据的效果,请见谅。

我检查了预处理和网络,好像没发现什么问题。原因我认为有两个:

1.样本太少而标签类别太多,最后一层用sigmoid的话会因为标签太过稀疏导致模型偏向所有类别的罪名预测值倾向于0,最后只能矮子里面选高个,这个概率值是不准确的

2.罪名不平衡比较严重,有5%左右是“盗窃”和“走私、贩卖、运输、制造毒品”,绝大多数罪名的样本数不到10个,所以根本训练不到。

实际比赛中因为训练集是170万,所以相对而言每个罪名都有足够的样本量去训练,而且用数据增强的方式可以一定程度上消除不平衡性,单从准确率上我记得当初应该是有94%左右。完整数据集我以前上传到网盘,详情可以参考https://github.com/renjunxiang/Competition_CAIL,数据https://pan.baidu.com/s/12KS55iDynnEgmOM8FEaJtQ