机器学习模型评估与选择1

整理了之前学习的知识,给大家介绍一下怎么进行一个模型的评估与选择。

我们根据训练数据是否具有标记信息,将学习任务分为两大类:“supervised learning”(例如分类和回归)和“unsupervised learning”(例如聚类)不管是使用哪种算法,使用多大的数据集进行训练,参数的选择是怎么样的,我们的目的只有一个,就是使学习的模型能更好地适用于新样本(而由于数据的时效性等等原因,新样本往往无法获得或者得到新样本的时候此模型已经“过期”了。),即便是聚类这种无监督的学习任务,我们也希望得到的簇划分能适用于没在训练集中出现的样本,使得泛化误差最小。

在概率论与数理统计中我们为了节省人力物力,常常喜欢用样本代替总体用做研究,现用独立同分布的方式获取数据,然后用探索性数据分析得到一些信息(比如说用样本的频率分布直方图近似总体的概率密度分布,用累积频率分布直方图近似总体的经验分布),确定好用哪种模型之后,就需要估计模型的口径了,也就是常说的参数估计,由于样本的相对于总体往往有一定的偏差,我们对于参数估计选择经常是选择区间估计而不是点估计,最后就用得到的模型代替总体来做一系列分析了(有点跑题,感兴趣的人可以学习一下这方面的知识)。

到目前为止,我们所做的一系列工作全是基于抽取的样本的,万一这个样本不具有代表性呢?那么得出的模型再完美又有什么用?

同样的道理,在机器学习模型的训练中也存在这样的问题,只不过这里影响模型泛化能力的不仅仅只是样本的代表性,还有用来训练模型的算法的使用情况,尽管训练集通常只是样本空间的一个很小的采样,我们仍希望他能反映出样本空间的特性,并期待学得的模型能够在整个样本空间很好的工作。

做了一堆的铺垫,终于进入正题......

今天就给大家简单介绍一下经验误差和过拟合吧!

一般情况下,我们会将数据集分为训练集和检验集(这里分的比例和方法还挺多的,后面再作介绍吧。),然后在训练集上用相应的算法训练出模型(需要思考用哪种算法,往往可以用好几种算法达到目的,同一种算法用不同的参数训练出来的模型也可能不一样。),接下来将训练出的模型应用检验集之上,计算泛化误差,以评估模型的好坏。(计算出的泛化误差是否科学真实,是否最大程度接近实际误差,也是需要考虑的问题,比如说,如果我们将用于训练样本的数据同时也用作估计泛化误差,毋庸置疑,这往往会导致泛化误差偏小的问题(但是,有时候我们也并不需要得到泛化误差的准确值,可以用一些数学方法估计出泛化误差的上界,在不同的模型中选择泛化误差上界较小的模型))

接下来介绍模型在训练过程中的一个欠拟合和过拟合的问题,训练误差和泛化误差都较高时为欠拟合,随着学习的继续,训练误差和泛化误差都会慢慢减小,当训练误差误差达到最小,但泛化误差开始增大时,就出现了所谓的过拟合问题。一个极端的例子就是最后根据n种训练样本构造了n个类,将一些噪声全拟合到了模型中,这样的模型显然没有很好的应用效果,这里只是泛谈,现在针对不同的的算法已经有了很多的处理过拟合问题的方法,比如决策树的剪枝等等的,我们要知道的是,过拟合是无法避免的,你永远也不可能得到一个泛化误差为0的模型(这里指的是真实的泛化误差,而不是泛化误差的估计值),具体的很多细节我之后会跟大家一起分享。

(又过12:00了,码字好累,没人跟我点个赞吗?)

猜你喜欢

转载自blog.csdn.net/weixin_42144636/article/details/81193655