train set, validation set, and test set

浏览: 2103

1. train set, validation set, test set

先把样本分成train set和test set。再对train set分出validation set做交叉验证。

train set:

训练模型参数

validation set

模型选择,提高模型稳定,避免overfitting(其实不可能完全避免)。对某些训练数据得到的参数,对另一部分训练数据结果并不好,所以通过交叉验证找到稳定的模型。

1. k-fold cross-validation:

样本数据分k份,1份用作validation,其余k-1份用来train。把k次误差结果平均。

2. leave-one-out cross-validation:

validation只含1个数据的k-fold cross-validation,因此,k等于样本数。

3. holdout validation:

随机留一部分数据作为validation,其余部分train。其实没有交叉验证。

test set:

测试模型的泛化能力

2. 三者比例

根据问题和模型确定。有的分法是0.5:0.25:0.25。一般地,没有validation set时,train:test为7:3。

3. deep learning中,有一种stop iteration的条件,见deep learning book

发现迭代到一定阶段,虽然train和test的error还在缓慢下降,但是validation的error却在上升,这时可终止迭代。

4. python做cross-validation

python在Scrikit-Learn做交叉验证 。函数train_test_split把样本随机按比例分成train datatest data

 X_train, X_test, y_train, y_test =cross_validation.train_test_split(train_data,train_target, test_size=0.3, random_state=0)
test_size是测试样本的比例。若取整数就是指样本数量。

random_state是随机数种子。

X是输入,Y是输出。

推荐 2
本文由 safa 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

2 个评论

感谢分享,方便的时候记得加下我微信:liangyonghellobi,谢谢。
多谢分享啊,最好能系列的介绍下。

要回复文章请先登录注册