直接估计模型MSE的两种方法(Cross-validation和Bootstrap),以及超参数的选取

Cross-validation称为交叉验证;Bootstrap称为自助法。其实这两种方法都是重采样的思想,可以以此来估计我们模型的MSE。

1、CV交叉验证

k折交叉验证,就是将样本均分为k块,首先拿第一块作为test,剩下的作为train训练模型,得到test的MSE;接着拿第二块作为test,剩下的作为train;... ;以此类推,直到最后一块作为test,前面的作为train。

这样我们就可以得到k个MSE,最终取平均就能得到这个模型的MSE的估计值。

remark:注意做交叉验证的k次过程中的模型其实是一样的,比如说都是一元线性模型,进行一次k折交叉验证后,最终得到的就是这个一元线性模型的MSE的估计值。然后更换模型比如为三元线性模型,也能得到这个三元线性模型的MSE估计值。        目的就在于比较这两个模型的MSE的大小,哪个小选哪个。所以使用CV交叉验证不是为了估计某个模型的参数,而是为了选择是哪一种模型的MSE最小!(这是很重要的一点,我之前就没想通。现在才明白!)

2、Bootstrap

这个很好理解,假设我们最初有n个样本X1,...,Xn,Bootstrap就是从这n个样本中进行有放回的抽取n个,得到我们新的样本,用这个新的样本来训练模型,计算MSE。这个过程可以进行很多次,最后所有的MSE取平均也能得到我们模型的MSE估计值。

3、超参数的选取

我们这两种方法呢,就可以用于模型超参数的选取,比如一个模型是Y = X\beta + \lambda,这里\beta是模型参数,但\lambda是一个超参数,我们该怎样选取\lambda呢?

就可以使用CV交叉验证或者Bootstrap,选取不同的\lambda,来进行一次交叉验证或bootstrap,得到这个\lambda下模型的MSE,最终选取MSE最小的\lambda来作为我们这个模型的超参数。

### 机器学习模型评估方法与选择策略 #### 训练集与测试集划分 最基础的评估方式是将数据集划分为训练集测试集。训练集用于构建模型,而测试集则用来衡量模型的表现[^3]。 ```python from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42) ``` 这种方法简单易行,但是存在一定的局限性,比如如果样本量较小,则可能导致估计偏差较大;另外一次性的分割也可能带来偶然因素的影响[^4]。 #### 交叉验证 为了克服上述缺点,可以采用k折交叉验证技术。它会把原始样本随机分成K个子样本组(subsets),每次取其中一组作为验证集(test set),其余K-1组合并起来做为训练集(training sets)[^2]。此过程重复执行K次(K轮迭代),最终计算所有折叠上的平均得分作为整体表现指标: ```python from sklearn.model_selection import cross_val_score scores = cross_val_score(model, X, y, cv=5) # 使用五折交叉验证 print("Cross-validation scores:", scores.mean()) ``` 这种方式能够更充分地利用有限的数据资源,并提供更为可靠的性能评价结果。 #### 自助法(Bootstrap) 对于某些特定场景下,还可以考虑应用自助采样法来进行重抽样的操作。具体做法是从给定的数据集中有放回地抽取相同大小的新集合,部分观测可能被多次选中,也有可能从未出现过。通过创建多个这样的副本并对它们分别建模预测,最后汇总统计各个版本间的差异情况得出结论。 #### 性能度量标准 针对不同类型的预测任务,需选取合适的效能测度工具来辅助判断优劣程度。例如分类问题常用的混淆矩阵(confusion matrix)、接收者操作特征曲线下的面积(Area Under Curve,AUC)等;而对于数值型目标变量而言,则更多依赖于平方损失函数(Sum of Squared Errors,SSE)、均方误差(Mean Squared Error,MSE)及其变体形式如均方根误差(Root Mean Square Error,RMSE)以及决定系数(Determination Coefficient,$R^{2}$) 平均绝对误差(Mean Absolute Error, MAE) 来量化偏离程度。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值