rob*_*ess 169 machine-learning
有关如何最好地将数据划分为训练和验证集的经验法则吗?是否建议平均50/50分割?或者,与验证数据相关的培训数据是否有明显优势(反之亦然)?或者这个选择几乎取决于应用程序?
我分别主要使用80%/ 20%的培训和验证数据,但我选择了这个部门而没有任何原则性原因.在机器学习方面经验丰富的人能告诉我吗?
Ben*_*son 191
存在两个相互竞争的问题:使用较少的训练数据,您的参数估计值会有较大的差异.使用较少的测试数据,您的性能统计信息将具有更大的差异.从广义上讲,您应该关注分割数据,使得方差都不会太高,这更多地与每个类别中的实例的绝对数量而不是百分比有关.
如果您总共有100个实例,那么您可能会遇到交叉验证,因为没有一个拆分可以让您在估算中获得满意的差异.如果您有100,000个实例,那么选择80:20分割还是90:10分割并不重要(如果您的方法特别计算密集,您可以选择使用较少的训练数据).
假设您有足够的数据来执行适当的保持测试数据(而不是交叉验证),以下是一种有助于处理差异的指导性方法:
Kir*_*ril 48
你会惊讶地发现80/20是一个非常普遍的比例,通常被称为帕累托原则.如果你使用这个比例通常是一个安全的赌注.
但是,根据您使用的培训/验证方法,比率可能会发生变化.例如:如果您使用10倍交叉验证,那么每次折叠的最终验证设置为10%.
对于训练集和验证集之间的适当比例进行了一些研究:
为验证集保留的模式部分应与自由可调参数的平方根成反比.
他们在结论中指定了一个公式:
验证集(v)到训练集(t)大小比,v/t,比例如ln(N/h-max),其中N是识别器家族的数量,h-max是这些家族的最大复杂性.
它们的复杂性意味着:
每个识别器系列的特征在于其复杂性,其可能与VC维度,描述长度,可调参数的数量或其他复杂度量相关或不相关.
根据第一个经验法则(即验证集应该与自由可调参数的平方根成反比),你可以得出结论,如果你有32个可调参数,32的平方根是~5.65,分数应该是1/5.65或0.177(v/t).大约17.7%应保留用于验证,82.3%用于培训.
Upu*_*ara 44
去年,我跟随教授:Andrew Ng的在线机器学习课程.他的建议是
培训:60%
交叉验证:20%
测试:20%
好吧,您应该再考虑一件事。
如果您拥有非常大的数据集(例如1,000,000个示例),则可能不需要拆分80/10/10,因为无需10%= 100,000个示例就可以证明模型可以正常工作。
也许99 / 0.5 / 0.5就足够了,因为5,000个示例可以代表大多数数据差异,并且基于测试和开发中的这5,000个示例,您可以很容易地看出该模型运行良好。
| 归档时间: |
|
| 查看次数: |
147803 次 |
| 最近记录: |