Java教程

模型评估和选择

本文主要是介绍模型评估和选择,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

可用模型很多:不同的算法产生不同的模型,相同的算法用不同的参数也产生不同的模型。

怎么选?使用训练误差最小的那个模型?显然不行,过拟合问题。

模型选择涉及两个问题:一是评估方案的实验设计问题,这方面主要是如何从已有数据中分离出测试数据集,二是评估度量问题,即各种指标,诸如RMSE,精度等。

理想方案:选择一个泛化误差最小的模型。
  问题:无法获得未知的新样本,无法直接得到泛化误差

解决方案:设计实验,使用测试集
  使用测试集,用测试集上的误差来作为泛化误差的近似
  假设测试集是所有样本的独立同分布
  准备测试集的注意事项:
    要与训练集互斥,测试数据不要再训练数据中出现过
    为什么?老师出了10道题目给学生练习,为了考察学生的掌握程度,考试的时候还要这个10到题目吗?

实际应用中,模型的选择不仅要考虑误差,还要考虑计算时间、空间开销和可解释性等多方面的问题。

测试集的产生方法
  留出法:需要注意的三个问题:
    1. 保持训练集和测试集分布一致性:采用分层抽样
    2. 训练/测试集划分有不同的方式,可用多次划分,取测试集误差平均值作为泛化误差
    3. 测试集划分的不能太多,太多导致训练数据太少,训练模型不可靠(偏差大);测试数据划分的太少也不行,太少导致评估结果不可靠(方差大),常用1/3或1/5作为测试数据
  交叉验证
  自助法:对m个样本数据,有放回的进行抽样,抽取m个样本当作训练数据,没有被抽到的样本当作测试数据。适用于数据量比较小的时候。

这篇关于模型评估和选择的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!