首页 > 试题广场 >

我们怎样能知道我们已经获取足够的数据去训练我们的模型

[问答题]
我们怎样能知道我们已经获取足够的数据去训练我们的模型

使用学习曲线Learning Curve方法,选取大量数据作为测试集,当向训练集不断放入数据,对比两者的error,由此观察随着数据量的变化两者error的变化。测试集的AUC不再明显变化时表明数据已经饱和,增加数据量已无法提高模型性能。如果误差变大则要考虑是否过拟合。
发表于 2019-06-28 17:50:53 回复(0)
图片说明 

你可以画一个这样的曲线,纵坐标为Accuracy或者AUC,一开始增加训练样本时模型性能提高很快,越到后面性能几乎不再提升。此时模型所需的数据样本量已饱和,再增加样本对于模型的改善已没有作用了。
编辑于 2017-03-07 19:00:42 回复(0)

方法:学习曲线Learning Curve

以AUC作为y轴,选取大量数据作为测试集,当向训练集不断放入数据,测试集的AUC不再明显变化时表明数据已经饱和,增加数据量已无法提高模型性能。

发表于 2019-02-20 00:19:41 回复(0)
使用learning curve的方法,开始时,选取大量数据做为验证集合,然后不断向训练集中加数据,选定学习算法,在训练集上训练并且在训练集上预测,之后将当前学习出的模型在验证集上验证,对比两者的error,由此观察随着数据量的变化两者error的变化。注意,变得是训练集,验证机不变。由此当两者error接近于平行,切error值较高时,就意味着,此时再增加训练样本数量是无用的,转而考虑修改模型自身!这个方法可判断当前模型师过拟合还是欠拟合。
发表于 2017-10-10 21:42:48 回复(0)
     对于线性模型,随着 训练样本的数量与模型参数数量的比率的增大, 训练模型的得分会增加,当比率达到  10:1之后,模型得分基本稳定在0.85, 也就是说一个优秀的性能模型 需要训练数据的数量10倍于该模型中参数的数量。对于神经网络, 由于神经网络中参数之间的关系并不是线性的,所以10倍规则并不适合神经网络。但是在这种情况下,可以将10倍规则作为训练数据所需数据量的下限。
发表于 2017-02-22 10:36:35 回复(0)