首页 > 科技 >

一名合格的算法工程师,必须知道的模型验证方法

2018-10-15 04:18:50 网络整理 阅读:192 评论:0

一名合格的算法工程师,必须知道的模型验证方法

机器学习

在机器学习建模过程中,我们已经确定了模型的评估指标和样本数据,我们在训练模型通过根据最好的评估指标选择最佳模型,用来训练模型的数据叫做训练集,用于评估模型的数据叫做测试集,训练集上的误差叫做训练误差或者经验误差,测试集上的误差叫做测试误差。

在样本划分和模型验证的过程中,存在着不同的抽样方法和验证方法。关于样本相关的方法我们上一篇文章中已经写了,没有看的请回到主页看上一篇文章,本文主要聊一聊模型验证的方法。

模型验证的方法主要在于划分训练集和测试集,如何划分训练集和测试集的方法统称为交叉验证,交叉验证有很多种方法,不同方法适用于不同场景。我们主要看一看最常用几种:

1 Holdout检验

Holdout检验又叫留出法,是最简单也是最直接的验证方法,它将样本数据划分成互斥的两个部分,一部分作为训练集,一部分作为测试集,在训练集上训练模型,,在测试集上测试模型,包括绘制ROC曲线、计算精确率和召回率等指标来评估模型性能。这种方法正因为它的简单直接,缺点也是很明显的,它不能充分利用数据去训练模型,而且模型的结果严重依赖于最初的训练集和测试集的划分。如果测试集越大,训练集就越小,得到的模型极大可能跟全量的数据训练出来的模型产生极大的偏差;如果训练集数据量越大,测试集就越小,得到的模型测试结果的可信度就比较低。实际工作中,一般把1/3的数据作为测试集,2/3的数据作为训练集。不仅仅是划分数据量,划分内容比例也会影响模型结果,这里具体要靠采样方法解决这个问题。

2 K-Fold交叉验证

相关文章