NLP中训练的模型高准率是否正常?
守心水瓶 发布于2020-05-29 16:18 浏览:111 回复:10
0
收藏

我在AI Studio平台,用NLP入门课程5-文本分类,做了自己数据集的三分类,得到了97%的准确率,想问下这科学吗,以下是相关情况:

原数集:2万条

类别比:139:12:1

数据集拆分:60%的训练集,20%验证集,20%的测试集

模型:CNN、栈式双向LSTM

实验结果:CNN、栈式双向LSTM的准确率都在97%左右

测试的验证:在预测阶段打印出了出错的信息,4200条测试中,预测出错量在200-500之间

以下是部分实验截图:

想问下大家的看法是什么?模型可靠吗?原始数据的差异本身就比较大

收藏
点赞
0
个赞
共10条回复 最后由星光ld1回复于2020-05-30 18:54
#11星光ld1回复于2020-05-30 18:54:39
#7 守心水瓶回复
对,就比如说,标签2的训练样本有1万5千条,标签1的训练样本有3千条,而标签0的训练样本有5百条,然后在预测中,给定已知标签的测试集,发现标签为2的测试集,都能预测准确,而标签为1或者0的测试集会出现较大的错误 这是我训练时,训练集与验证集的损失与准确率对比,不知道符合不符合常规? [图片]
展开

loss方面,比如采用交叉熵的时候对于数据量少的类别比加大一点的权重,或者类似图像的focal_loss?

0
#10星光ld1回复于2020-05-30 18:53:06
#7 守心水瓶回复
对,就比如说,标签2的训练样本有1万5千条,标签1的训练样本有3千条,而标签0的训练样本有5百条,然后在预测中,给定已知标签的测试集,发现标签为2的测试集,都能预测准确,而标签为1或者0的测试集会出现较大的错误 这是我训练时,训练集与验证集的损失与准确率对比,不知道符合不符合常规? [图片]
展开

在数据采样方面,可以对体量大的数据采用欠采样,体量小的数据采用过采样(或者加入数据增强扩增数据量)

0
#9星光ld1回复于2020-05-30 18:50:40
#7 守心水瓶回复
对,就比如说,标签2的训练样本有1万5千条,标签1的训练样本有3千条,而标签0的训练样本有5百条,然后在预测中,给定已知标签的测试集,发现标签为2的测试集,都能预测准确,而标签为1或者0的测试集会出现较大的错误 这是我训练时,训练集与验证集的损失与准确率对比,不知道符合不符合常规? [图片]
展开

想要解决这个问题,需要对数据采样或者loss做修正

0
#8星光ld1回复于2020-05-30 18:50:02
#7 守心水瓶回复
对,就比如说,标签2的训练样本有1万5千条,标签1的训练样本有3千条,而标签0的训练样本有5百条,然后在预测中,给定已知标签的测试集,发现标签为2的测试集,都能预测准确,而标签为1或者0的测试集会出现较大的错误 这是我训练时,训练集与验证集的损失与准确率对比,不知道符合不符合常规? [图片]
展开

这个是很正常的,这就是所谓的数据不平衡,标签2的训练样本有1万5千条,标签1的训练样本有3千条,而标签0的训练样本有5百条,显然模型拟合只要尽量拟合2准确就可以准确率高

0
#7守心水瓶回复于2020-05-30 17:41:49

对,就比如说,标签2的训练样本有1万5千条,标签1的训练样本有3千条,而标签0的训练样本有5百条,然后在预测中,给定已知标签的测试集,发现标签为2的测试集,都能预测准确,而标签为1或者0的测试集会出现较大的错误

这是我训练时,训练集与验证集的损失与准确率对比,不知道符合不符合常规?

0
#6星光ld1回复于2020-05-30 11:39:05
#5 守心水瓶回复
这里出现的问题就是,训练类别数多的,预测基本都正确,但训练类别数小的,预测大部分都错
展开

训练类别数多的,是指这个类别下样例多吗?还是什么意思

0
#5守心水瓶回复于2020-05-30 11:24:30

这里出现的问题就是,训练类别数多的,预测基本都正确,但训练类别数小的,预测大部分都错

0
#4守心水瓶回复于2020-05-30 11:21:54

每个进行了10轮训练,每100个batch打印

0
#3星光ld1回复于2020-05-29 18:04:26

这10个序号是训练了10次吗,每个模型?

0
#2星光ld1回复于2020-05-29 18:01:51

分类类别数比较小,准确率高还是比较正常的,如果是几十类的分类,准确率就会低不少

0
TOP
切换版块