[机器学习]划分训练集和测试集的方法
来源:互联网 发布:阿里云国际版教程 编辑:程序博客网 时间:2024/05/21 15:45
在进行机器学习常常需要处理的一个问题是划分测试集和训练集。训练集用于训练模型,测试集则是根据训练集的训练结果来评判最终的训练效果。一般而言,测试集应该和训练集尽可能保持互斥~常用的数据集划分方法有一下几种
方法1:留出法
直接将数据集D划分为两个互斥的集合。
需要注意的问题:
- 在划分的时候应该尽量保持数据分布的一致性。例如在分类任务中应该保持正负样本比例相近。
- 划分存在多种方法,为得到合理的算法模型评估标准,应该进行多次数据集的划分。得到每次划分的数据集上的评估结果,取平均值作为评判模型优劣的标准。
- 训练集不能太大:训练集太大会导致测试集偏小,评估的结果可能不太准确稳定。
- 测试集不能太大:测试集太大会导致训练集偏小,训练出来的模型可能会完整数据集所需要的模型产生较大的偏差。
方法2:交叉验证(cross-Validation)
该方法先将数据集D划分为k个大小相似的互斥子集,每个子集在划分的时候应该保持数据分布的一致性,即从D中分层采样得到。然后进行k次训练,每次训练将k-1个子集的并集作为训练集,余下的作为测试集。这种方法有被成为“k折交叉验证(k-fold cross-validation)”。如果D.size() == k, 则该方法又被成为留一法(leave-one-out 简称LOO)。
需要注意的问题
- 划分数据集同样存在多种方法,为得到合理值。应该进行多次交叉验证,取评价指标的平均值作为最后的结果。
方法3:自助法
直接以自主采样法为基础,从中有放回的采样执行m次,得到包含m个样本的训练集。从未在训练集中出现的样本则作为测试样本放入测试集中。
需要注意的问题
- 自助法在数据集较小,难以有效划分训练集和测试集的时候比较有效。
- 自助法改变了原有数据的分布,这样会引入估计误差。
- 在数据量充足的时候尽量考虑用留出法或者交叉验证法
1 0
- [机器学习]划分训练集和测试集的方法
- 训练集和测试集的划分
- 机器学习 数据挖掘 数据集划分 训练集 验证集 测试集
- 机器学习中训练集、验证集(开发集)、测试集如何划分
- 【七】机器学习之路——训练集、测试集及如何划分
- 机器学习中的训练集、验证集和测试集
- 机器学习中训练集和测试集归一化-matlab
- 机器学习3:从样本集分得训练集、测试集的方法
- 机器学习中训练集、验证集和测试集的作用
- python 划分数据集为训练集和测试集
- 1.1 图像分类:数据驱动的方法,k-近邻,划分训练集/验证集/测试集
- Sklearn-train_test_split随机划分训练集和测试集
- Sklearn-train_test_split随机划分训练集和测试集
- r语言中怎么划分训练集和测试集
- sklearn:随机划分训练集和测试集
- sklearn.model_selection.train_test_split随机划分训练集和测试集
- sklearn.model_selection.train_test_split随机划分训练集和测试集
- Sklearn-train_test_split随机划分训练集和测试集
- Activity源码之Android 6.0权限相关完全解析
- 用脚本批量创建用户
- JSARToolKit5文档翻译
- hadoop distcp命令的使用
- 计算机网络 -- 物理层
- [机器学习]划分训练集和测试集的方法
- 解决方案---git add .时 警告warning: LF will be replaced by CRLF
- go语言学习资料地址
- docker centos systemctl开启
- Rest风格设计
- 程序学徒与导师
- Java内存模型和JVM优化总结
- 浅入rails。真的很浅
- 网站入侵工具 SQL注入神器