交叉验证
100-Same Tree | Links:
交叉验证的核心
- 用测试集的测试误差来近似泛化误差, 测试集与训练集要互斥
交叉验证的本质
- 解决方差估计问题
1. 留出法
- 人为划分,留出训练集/测试集
- 注意保持数据分布一致性,可采用分层抽样
- 测试集大小1/5 ~ 1/3
- 缺点:最后评估表现与分组有很大关系
2. k-fold交叉验证法
- 步骤
- 把原始数据分成大小相同的k折
- 遍历k折:轮番地用当前1折做测试,剩下k-1折做训练
- 进行k次训练和测试,把k个测试结果求平均
- K常用值是5/10
- 特征情况LOOCV留一法:K=N,即每次使用一个样本做测试,其它样本做训练
3. Bootstrapping自助法
- 对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集,没有被抽到的样本作为验证集
- 有极限:训练(63.2%), 没有出现的样本做测试(36.8%)
- 关键:训练集与原样本集同规模
- 会改变数据分布
- 数据集较小,难以有效划分训练集/测试集时使用
适用场景
- 大数据量:留出法
- 中等数据量:K折
- 小数据量:留一或自助