机器学习: 训练集、验证集、测试集关系
来源:互联网 发布:投资软件靠谱吗 编辑:程序博客网 时间:2024/05/21 16:23
最近在看机器学习的东西发现验证集的(Validation set) 有时候被提起到,以时间没明白验证集的真正用途。
一、三个词的定义
Training set: A set of examples used for learning, which is to fit the parameters [i.e., weights] of the classifier.
Validation set: A set of examples used to tune the parameters [i.e., architecture, not weights] of a classifier, for example to choose the number of hidden units in a neural network.Test set: A set of examples used only to assess the performance [generalization] of a fully specified classifier.
训练集:学习样本数据集,通过匹配一些参数来建立一个分类器。建立一种分类的方式,主要是用来训练模型的。
验证集:对学习出来的模型,调整分类器的参数,如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。
测试集:主要是测试训练好的模型的分辨能力(识别率等)
显然,training set是用来训练模型或确定模型参数的,如ANN中权值等; validation set是用来做模型选择(model selection),即做模型的最终优化及确定的,如ANN的结构;而 test set则纯粹是为了测试已经训练好的模型的推广能力。当然,test set这并不能保证模型的正确性,他只是说相似的数据用此模型会得出相似的结果。但实际应用中,一般只将数据集分成两类,即training set 和test set,大多数文章并不涉及validation set。
二、如何确定以上三者的数据量?
一般需要将样本分成独立的三部分训练集(train set),验证集(validation set)和测试集(test set)。其中训练集用来估计模型,验证集用来确定网络结构或者控制模型复杂程度的参数,而测试集则检验最终选择最优的模型的性能如何。一个典型的划分是训练集占总样本的50%,而其它各占25%,三部分都是从样本中随机抽取。
样本少的时候,上面的划分就不合适了。常用的是留少部分做测试集。然后对其余N个样本采用K折交叉验证法。就是将样本打乱,然后均匀分成K份,轮流选择其中K-1份训练,剩余的一份做验证,计算预测误差平方和,最后把K次的预测误差平方和再做平均作为选择最优模型结构的依据。特别的K取N,就是留一法(leave one out)。
三、针对数据偏差与数据方差的关系
偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据。
方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散。
参考链接:
http://blog.sina.com.cn/s/blog_4d2f6cf201000cjx.html
- 机器学习: 训练集、验证集、测试集关系
- 机器学习中的训练集,验证集及测试集的关系
- 机器学习中的训练集,验证集及测试集的关系
- 机器学习中的训练集,验证集及测试集的关系
- 机器学习中的训练集,验证集及测试集的关系
- 机器学习中的训练集,验证集及测试集的关系
- 机器学习中的训练集、验证集和测试集
- 机器学习----训练集、验证集、测试集
- 机器学习 数据挖掘 数据集划分 训练集 验证集 测试集
- 机器学习中训练集、验证集(开发集)、测试集如何划分
- 机器学习中训练集、验证集和测试集的作用
- 机器学习之训练集_验证集_测试集
- 训练集,验证集和测试集的关系
- 机器学习中训练集和测试集归一化-matlab
- [机器学习]划分训练集和测试集的方法
- 训练集 验证集 测试集
- 训练集,验证集,测试集区分
- 神经网络-训练集 验证集 测试集
- POI导出Excel文件
- 第2部分 静态链接---(3)目标文件里有什么
- WHUST 2017 Div.2 Day 1
- Java学习之非访问修饰符
- nyoj 过河问题
- 机器学习: 训练集、验证集、测试集关系
- Java中的进制
- 42canvas元素
- Spring JPA 使用EntityManager时如何配置多数据源的事物管理
- Java计算两个具体日期相差的天数
- easyui----行内编辑---有单价 输入数量自动计算总金额
- LeetCode 389. Find the Difference
- 使用GreenDao3.0实现一个记事本App
- Java参数传递方式