模型评估方法

备注

       主要内容是如何选择一个评估的实验方法,可以通过该实验方法对学习器的的泛化误差进行评估。实际情况中,我们通过实验测试来对学习器的泛化误差进行评估,对于样本数据D,如何将D划分为训练数据S和测试数据T,从而来训练并且进行泛化误差估计,就是本节的主要内容


一、基本概念

1、训练集 S

      训练集就是在模型训练时,学习器用来学习的数据集

2、测试集  T

      测试集就是在模型训练后,用来测试学习器对新样本的判别能力的数据集。

      训练集和测试集中的数据,都是从真实分布中独立同分布选出来的,并且训练集和测试集尽量不要有交集。

3、最终模型

       经过模型训练和测试以后,训练的结果达到了预期的要求,此时需要按照此时的算法参数和内容,对整个数据集D重新进行学习,得到的最终的模型才是用户需要的最终模型。


二、留出法

1、基本思想:

      留出法就是直接将数据集D划分两个互斥的集合,其中一个为S,一个为T。在S上训练出模型之后,用T进行评估和测试。

2、方法论:

      从样本采样的脚本看,由于训练样本包含多种特征,因此在进行留出法分类时,要考虑分层采样原则,从而保留样本的类别比例。(比如按照正负样本数目进行分层采样)

      从样本分割的角度看,按照分层之后的数据内容进行训练,每一类都会有不同的结果,因此,单次训练的结果往往不够稳定可靠,建议通过若干次随机划分、重复试验评估后取平均值作为最终的评估结果。

3、不足之处

       当S过大时,T过小,此时无法通过T进行预测的结果不够稳定和准确;当S过小,T过大的时候,会出现欠拟合现象,导致学习机的效果不好。

      一般的是按照分层抽样,每一层2/3~~4/5的样本数据作为训练集S.


三、交叉验证法

1、基本思想

     将整个数据集D划分为k个大小相等的互斥子集(通过分层采样划分),然后,将k-1个子集作为训练集S,剩下的一个作为测试集T;总共可以获得k组<训练集/测试集>,从而进行k次训练和测试,最终返回的是k次测试的结果的均值

模型评估方法_第1张图片

2、方法论

       与留出法很像,为了降低因为划分方式的不同而引入的差别,通常情况下,对进行p次的随机划分,每一次随机划分会进行k次的训练和验证,所以总共会进行p次k折交叉验证

3、不足之处

     特别的,如果数据集D的大小为m,并且k=m,那么此时测试集T只有一个样本,即为留一法

     留一法不受数据集划分的影响,并且由于训练集较大,留一法的训练模型也很接近D训练的模型,但是该方法在数据集较大的时候,计算开销太大了。


四、自助法(bootstrapping)

1、基本思想

   有放回的随机采样。假设数据集D有n个样本,那么每次随机从D中挑选出一个样本,放入D`,并将样本放回至D,经过n次以后,D`中会有n个元素,即为自主采样的训练样本集S。

   其中,D`中会出现重复的样本,没有出现的样本即作为测试样本集T

2、方法论

    样本在n次采样中都不会被选中的概率为大约0.38,即意味着测试集中有38%的未训练过的样本

3、不足之处

     在数据集D个数比较小,难以有效划分训练集的时候,可以使用自助法,但是自助法产生的数据集会有重复,这就改变了初始的数据集的分布,所以当数据集较大的时候,不建议使用。

你可能感兴趣的:(模型评估方法)