交叉验证

                     

贡献者: xzllxls

预备知识 模型评估数据

   交叉验证(Cross validation)是机器学习中的一种模型评估方法。该方法将数据划分成多个部分,然后轮流使用每个部分作为测试集,另一个部分作为训练集,多次训练和测试之后得出模型的平均性能。

   如果把数据划分成 k 份,我们就称此时的验证方法为k-折交叉验证(k-fold cross validatioin)。详细过程是,将数据集分成 k 份,然后进行 k 次训练和测试,每次使用不同的 k-1 份数据作为训练集,剩余的一份数据作为测试集,最终得到 k 个性能指标的平均值。通过使用交叉验证,可以减少过拟合的风险,并提高模型的泛化能力。

图
图 1:十折交叉验证示意图

   图 1 所表示的是十折交叉验证的过程。图中红色表示的是被用于测试的数据,其它部分均为训练数据。每次轮流选择一部分作为测试集,依次为:$D10$、$D9$,...$D1$,训练测试完之后得到一个模型性能的结果,最后取得一个平均值作为最后模型性能的评估结果。

   交叉验证法的优势是使得训练数据中的每一个样本都被用于训练模型。弥补了留出法通常只能使用一部分数据用于训练的不足。

   特别地,如果每次训练和测试时,只留一个样本作为测试,其余样本全部用于模型训练,那么,此时的交叉验证方式就称为留一法(leave-one-out, LOO)。留一法的优势是最大可能地使用了原始数据集来训练模型,使得训练出来的模型能够更好地拟合原数据。但是,这会带来一个问题,就是该模型的测试准确度可能有较大偏差,因为每次只有一个测试样本。


致读者: 小时百科一直以来坚持所有内容免费,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 10 元,我们一个星期内就能脱离亏损, 并保证在接下来的一整年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利