forked from yufree/ISLRchnotes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ch5.Rmd
23 lines (19 loc) · 2.16 KB
/
ch5.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
统计学习导论-重采样技术
========================================================
# 交叉检验
- 核心思想:通过保留一部份训练集数据作为检验集来估计真实检验集的错误率与模型拟合效果
- 验证集方法:将训练集数据分为两部分,一部份拟合模型,一部份检验模型,这样得到的错误率为真实检验集的一个估计,选取错误率较低的模型建模
- 验证集方法缺点:错误率依赖于采样变动较大,训练集少,低估了错误率
- 留一法(LOOCV):每次建模留一个数据点作为验证集,$MSE_i = (y_i - \hat y_i)^2$重复n次,得到一个CV值作为对错误率的估计:$CV_{(n)} = \frac{1}{n} \sum_{i = 1}^{n} MSE_i$
- 留一法优点:使用数据量大,偏差小;结果唯一,不受随机化影响
- 留一法缺点:计算量大,公式插入杠杆统计量调节杠杆点对方程拟合的影响,得到$CV_{(n)} = \frac{1}{n} \sum_{i = 1}^{n} (\frac{y_i - \hat y_i}{1 - h_i})^2$
- k叠交叉检验:将训练集分为k叠,每次建模用(k-1)叠,用1叠检验
- k叠交叉检验优点:计算量小,结果与留一法相差不多- 交叉检验的结果用来寻找$CV$值最小的点来选择模型,通常与真实检验集最小点结果相差不大乎,但交叉检验给出的$MSE$会偏低
- 偏差方差权衡:使用的训练集数据越多,估计偏差越小,方差越大(相关性越高的方差越大)
- 分类问题使用错误率计算$CV$:$CV{(n)} = \frac{1}{n} \sum_{i = 1}^{n} Err_{i}$
- *少n多p问题上使用交叉检验,不可先进行全模型变量选择再交叉检验,应该对整个过程交叉检验*
# bootstrap
- 在训练集里有放回的重采样等长的数据形成新的数据集并计算相关参数,重复n次得到对参数的估计,计算标准误
- 生成Bootstrap Percentile置信区间
- 适用于独立样本,样本间有相关如时间序列数据可采用block法分组屏蔽掉进行bootstrap
- 因为存在重复,使用bootstrap建立训练集与预测集会有非独立样本,造成检验集模型方差的低估,去掉重复使模型复杂,不如交叉检验对检验集误差估计的准