首页 Paddle框架 帖子详情
NLP中训练的模型高准率是否正常?
收藏
快速回复
Paddle框架 问答深度学习模型训练炼丹技巧 1136 10
NLP中训练的模型高准率是否正常?
收藏
快速回复
Paddle框架 问答深度学习模型训练炼丹技巧 1136 10

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

原数集:2万条

类别比:139:12:1

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

模型:CNN、栈式双向LSTM

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

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

以下是部分实验截图:

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

0
收藏
回复
全部评论(10)
时间顺序
星光ld1
#2 回复于2020-05

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

0
回复
星光ld1
#3 回复于2020-05

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

0
回复
辞九门
#4 回复于2020-05

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

0
回复
辞九门
#5 回复于2020-05

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

0
回复
星光ld1
#6 回复于2020-05
这里出现的问题就是,训练类别数多的,预测基本都正确,但训练类别数小的,预测大部分都错

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

0
回复
辞九门
#7 回复于2020-05

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

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

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

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

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

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

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

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

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

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

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户