AI光影社
AI光影社
Published on 2025-03-09 / 7 Visits

马老师教AI:第五篇 统计学习方法是如何实现分类与聚类的(十七)

第五篇 统计学习方法是如何实现分类与聚类的(十七)

清华大学计算机系 马少平

第十七节:

验证与测试问题

艾博士:在机器学习中经常会遇到超参数确定问题,比如在支持向量机中,高斯核函数的σ就是一个超参数。如果σ过大,容易造成欠拟合,反之如果σ过小则容易造成过拟合,我们希望确定一个合适的σ,以保证得到一个比较好的分类性能。这就是机器学习中的调参问题,参数确定的是否合理,可能对系统的性能有很大的影响。另外,一个训练好的系统具体的分类性能又能达到多少呢?这些都可以通过数据测试确定。

由于可能会存在过拟合问题,所以用于确定超参数的数据以及测试性能的数据最好是与训练数据分开的,以便得到一个相对客观的参数和系统性能。

为此我们一般将数据集划分成训练集、验证集和测试集三部分,以便将训练、调参和性能测试三部分独立出来。训练集只用于系统训练,这就不用多说了。验证集用于调参,一般是针对不同的超参数取值分别进行训练,然后在验证集上分别测试其性能,取一个性能最好的超参数值作为最终的结果。由于调参是在验证集上选取的最好结果,所以在验证集上获得的系统性能一般会偏高,一般在调节完参数之后,需要在测试集上测试,这个结果会更接近于真实情况,因为测试集中的样本既没有参与过训练,也没有参与调参,是完全独立的样本,测试结果更加可信。总之就是训练集用于训练,验证集用于调参,测试集用于测试分类性能。

小明:这种方法看起来既简单又方便。

艾博士:无论是训练、验证还是测试,每个数据集都需要比较多的数据,所以当数据量足够多时,通过将数据集划分为训练集、验证集和测试集的方法,确实是一种既简单又有效又可信的方法。但事实上我们往往面临数据量不足的问题。

小明:那么除了增加数据量以外,还有其他的比较好的方法吗?

艾博士:为了充分利用已有的数据,研究者提出了交叉验证方法,又称作k折交叉验证。

小明:这是一种什么方法呢?

艾博士:k折交叉验证将数据划分为k等份,使用其中的k-1份作为训练集,1份作为验证集。

小明:这样做的结果验证集中的样本数是不是就太少了?

艾博士:如果只这样做一次,验证集确实有点小,但是如果每份数据轮流做验证集,剩余的k-1份做训练集,我们就可以得到k个结果,以k个结果的平均值作为最终的性能测试结果。这样的话,虽然每次验证集并不大,但是综合后的效果相当于利用了整个数据集作为验证,充分利用了数据集中的每一个数据。一般情况下k取2~10就可以了,k太大会造成训练次数过多,而k太小则可能导致用于训练的数据不足,因为每次只能用k-1份数据做训练。极限情况下,k最大取值可以为数据个数,每次验证集只剩余一个数据,故这种方法也被称作“余一法”。如果不考虑训练效率问题的话,余一法是最充分利用数据的方法。

小明:交叉验证方法挺巧妙的,相当于一份数据同时担当训练集和验证集的作用,又保持了两个数据集的相对独立性。

艾博士:在使用交叉验证方法时一定要注意数据划分的随机性,训练集中各个类别的比例与与整个数据集中的比例最好基本一致,尽量避免训练集中某个类别过于集中的情况出现。

小明:通过交叉验证的方法解决了验证集的问题,但是测试集怎么解决呢?

艾博士:有两种方法,一种方法就是把验证集的测试性能当作最终的分类性能,当然这种方法得到的性能普遍偏高。另一种方法就是扩展一下交叉验证方法,每次取一份当作验证集,再取一份当作测试集,剩余的k-2份用于训练,数据循环多次使用,最后用测试集上的平均性能作为最终的测试结果。

小明:我们一直在说系统的性能,那么如何评价系统的性能呢?

艾博士:对于分类系统来说常用的性能指标有准确率、召回率和F1值等,而每个指标又分宏平均和微平均两种。宏平均指的是先分别计算每个类别的各个指标,然后再计算各个类别的平均值,而微平均指的是按照每个样本分类正确与否计算各个指标。下面分别介绍一下各个性能指标是如何计算的,假设共有K个类别,N个样本。


  

准确率和召回率从两个不同的角度分别考察了分类系统的性能,F1值是准确率和召回率的调和平均值,是这两个指标的综合体现。由于宏平均指标受测试样本中不同类别样本的比例影响比较小,所以宏平均指标比微平均指标用的更多一些,如果没有具体说明时,大多指的是宏平均指标。

小明读书笔记

为了选择确定合适的超参数并测试分类模型的性能指标,当数据集比较充足时,常常将数据集划分为三部分:训练集用于训练,验证集用于确定超参数,测试集用于测试分类模型的性能。


一般来说数据集总是不足的,为了充分利用数据集,提出了k折交叉验证方法。该方法将数据集划分为k等份,1份用于验证,其余k-1份用于训练,循环使用数据,得到k个结果,k个结果的平均值为分类模型在验证集上的性能,利用该结果确定合适的超参数。


也可以1份作为验证,1份作为测试,其余k-2份用于训练,同样通过取平均值的方法得到分类模型的测试性能。注意在确定超参数时,不能利用测试结果调整超参数,否则就失去了测试的意义。


常用的性能指标包括准确率、召回率和F1值,根据不同的计算方法这三个指标又分别有宏平均和微平均指标,一般宏平均指标用的比较多,当没有明确说明时,往往指的是宏平均指标。

未完待续