做问卷调查有哪些网站好,怎么在ps做网站首页,wordpress 爆路径,计算机编程培训学校哪家好个人主页-- xiaosongshine.github.io/ 1.K-Fold 交叉验证概念在机器学习建模过程中#xff0c;通行的做法通常是将数据分为训练集和测试集。测试集是与训练独立的数据#xff0c;完全不参与训练#xff0c;用于最终模型的评估。在训练过程中#xff0c;经常会出现过拟合…个人主页-- xiaosongshine.github.io/ 1.K-Fold 交叉验证概念在机器学习建模过程中通行的做法通常是将数据分为训练集和测试集。测试集是与训练独立的数据完全不参与训练用于最终模型的评估。在训练过程中经常会出现过拟合的问题就是模型可以很好的匹配训练数据却不能很好在预测训练集外的数据。如果此时就使用测试数据来调整模型参数就相当于在训练时已知部分测试数据的信息会影响最终评估结果的准确性。通常的做法是在训练数据再中分出一部分做为验证(Validation)数据用来评估模型的训练效果。验证数据取自训练数据但不参与训练这样可以相对客观的评估模型对于训练集之外数据的匹配程度。模型在验证数据中的评估常用的是交叉验证又称循环验证。它将原始数据分成K组(K-Fold)将每个子集数据分别做一次验证集其余的K-1组子集数据作为训练集这样会得到K个模型。这K个模型分别在验证集中评估结果最后的误差MSE(Mean Squared Error)加和平均就得到交叉验证误差。交叉验证有效利用了有限的数据并且评估结果能够尽可能接近模型在测试集上的表现可以做为模型优化的指标使用。2.举例说明下面举一个具体的例子来说明K-Fold的过程比如如下的数据[0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
复制代码分为K3组后Fold1: [0.5, 0.2]
Fold2: [0.1, 0.3]
Fold3: [0.4, 0.6]
复制代码交叉验证的时会使用如下三个模型分别进行训练和测试每个测试集误差MSE加和平均就得到了交叉验证的总评分Model1: Trained on Fold1 Fold2, Tested on Fold3
Model2: Trained on Fold2 Fold3, Tested on Fold1
Model3: Trained on Fold1 Fold3, Tested on Fold2复制代码3.应用讲解1、 将全部训练集S分成k个不相交的子集假设S中的训练样例个数为m那么每一个子集有m/k个训练样例相应的子集称作{}。2、 每次从模型集合M中拿出来一个然后在训练子集中选择出k-1个{}也就是每次只留下一个使用这k-1个子集训练后得到假设函数。最后使用剩下的一份作测试得到经验错误。3、 由于我们每次留下一个j从1到k因此会得到k个经验错误那么对于一个它的经验错误是这k个经验错误的平均。4、 选出平均经验错误率最小的然后使用全部的S再做一次训练得到最后的。核心内容通过上述1,2,3步进行模型性能的测试取平均值作为某个模型的性能指标根据性能指标来挑选出最优模型再进行上述第4步重新进行训练获得最终模型疑问解答1.为什么不直接拆分训练集与数据集来验证模型性能反而采用多次划分的形式岂不是太麻烦了我们为了防止在训练过程中出现过拟合的问题通行的做法通常是将数据分为训练集和测试集。测试集是与训练独立的数据完全不参与训练用于最终模型的评估。这样的直接划分会导致一个问题就是测试集不会参与训练这样在小的数据集上会浪费掉这部分数据无法使模型达到最优数据决定了程性能上限模型与算法会逼近这个上限。但是我们又不能划分测试集因为需要验证网络泛化性能。采用K-Fold 多次划分的形式就可以利用全部数据集。最后采用平均的方法合理表示模型性能。2.为什么还要进行所有数据集重新训练是否太浪费时间我们通过K-Fold 多次划分的形式进行训练是为了获取某个模型的性能指标单一K-Fold训练的模型无法表示总体性能但是我们可以通过K-Fold训练的训练记录下来较为优异的超参数然后再以最优模型最优参数进行重新训练将会取得更优结果。3.何时使用K-Fold我的看法数据总量较小时其他方法无法继续提升性能可以尝试K-Fold。其他情况就不太建议了例如数据量很大就没必要更多训练数据同时训练成本也要扩大K倍主要指的训练时间。4.参考1.K-Fold 交叉验证 (Cross-Validation)2.规则化和模型选择Regularization and model selection