如果使用交叉验证,是否还需要单独分出测试集?
2018-01-29 16:48
399 查看
比方说,用100k条数据,有两个思路
1. 用这100k条数据做k-fold交叉验证,来调模型参数
2. 先随机划分出70k条数据做训练集用来根据交叉验证调参数,调好之后再用剩下的30k条数据做测试集
【答】
虽然这两个都没有错对之分,但是在数据量允许的情况下,更建议第2个思路。
对于思路1,如果用交叉验证的预测误差作为模型的预测误差,这是有偏差的。因为交叉验证的误差通常是小于真实测试误差的。
思路2是推荐的。因为测试集一定要和模型本身独立、无关,测试集不能参与模型的训练。
引申开来,还有第二层意思,你利用70k的数据训练完模型后,不能根据在30k测试集上的表现再回去重新调整参数,因为一旦你这样做了,你就很可能会过拟合,你的交叉验证也就没有意义了。
1. 用这100k条数据做k-fold交叉验证,来调模型参数
2. 先随机划分出70k条数据做训练集用来根据交叉验证调参数,调好之后再用剩下的30k条数据做测试集
【答】
虽然这两个都没有错对之分,但是在数据量允许的情况下,更建议第2个思路。
对于思路1,如果用交叉验证的预测误差作为模型的预测误差,这是有偏差的。因为交叉验证的误差通常是小于真实测试误差的。
思路2是推荐的。因为测试集一定要和模型本身独立、无关,测试集不能参与模型的训练。
引申开来,还有第二层意思,你利用70k的数据训练完模型后,不能根据在30k测试集上的表现再回去重新调整参数,因为一旦你这样做了,你就很可能会过拟合,你的交叉验证也就没有意义了。
相关文章推荐
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterF
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEvent
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEvent
- 在使用django框架搭建web中如果需要单独运行py脚本出现AppRegistryNotReady("Apps aren't loaded yet.")问题
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientSc
- 如果使用的是orm,是否还需要关系索引
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterF
- 如果使用Qt来开发商业软件,是否需要付费?
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEvent
- 使用System.Web.Mail名称空间连接需要验证的SMTP服务器
- Ajax实现无刷新验证用户名是否存在 (使用AjaxPro.2.dll)(当鼠标离开输入框时,即使判断用户名是否存在)
- machine learning in coding(python):使用交叉验证【选择模型超参数】
- JSP---网上商城->使用Ajax技术验证用户名是否已存在
- 使用struts2+Ajax+jquery验证用户名是否已被注册
- 问:如果我想在iOS中使用vlc,需要编译什么源代码?
- 如果先安装.NET Framework,后安装IIS,这时需要向IIS注册.NET Framework后才能使用
- 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate