泛化误差

当模型在测试集等除训练集以外数据集表现糟糕时,往往会称模型泛化能力差,也称泛化误差大。

泛化能力受到模型结构(复杂度)的影响。

这里只讨论对数据集过拟合的情况。当模型太复杂,就容易过拟合,导致模型泛化能力不够即泛化误差大。以树模型为例,树越茂盛,深度越深,枝叶越多,模型就越复杂,因此调参时目标比较明确:减少模型复杂度,防止过拟合。

要同时小心过拟合和欠拟合!追求平衡~

模型评估

两种方法:Holdout检验、交叉检验、留一验证、自助法

Holdout检验:数据集按一定比例(一般按七三开)分训练集和验证集。缺点很明显,就是模型最终训练结果和怎么分数据集有挺大关系。

交叉检验:把数据集k等分,让k个子集轮流做验证集,其他的子集一起做训练集,最终评估结果取k个测试集的平均。

留一验证:留一张做验证集,其他做测试集。。听起来就很麻烦。。。(这里感觉有点不对)

自助法:适用于样本规模较小的情况。对于总数为n的样本集合,进行n次有放回的随机抽样,得到大小为n的训练集。n次采样过程中,有的样本会被重复采样,有的样本没有被抽出过,将这些没有被抽出的样本作验证集,进行模型验证,这就是自助法的验证过程。

以上感觉吴恩达的视频里都讲过。。。复习一下。

集成学习

顾名思义,集成了几个基分类器来进行决策,跟众人拾柴火焰高差不多意思。两种著名的训练方法:Boosting和Bagging

Boosting 将各个基分类器串起来,层层叠加得最终结果。每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。

Bagging Bagging方法更像是一个集体决策的过程,每个个体都进行单独学习,可并行处理,学习的内容可以相同,也可以不同,也可以部分重叠。但由于个体之间存在差异性,最终做出的判断不会完全一致。在最终做决策时,每个个体单独作出判断,再通过投票的方式做出最后的集体决策。其中很著名的算法之一是基于决策树基分类器的随机森林(Random Forest)。(感觉这里没有讲清楚啊,明明一开始处理的都是不同的数据集?还是说每个基分类器都要把数据集全处理一遍?

集成学习一般可分为以下3个步骤。​ (1)找到误差互相独立的基分类器。​ (2)训练基分类器。​ (3)合并基分类器的结果。

投票方法 voting和stacking。前者就是投票少数服从多数,后者是采用串行方式,可以是简单的分类结果的叠加,比如把各基分类器的输出作为特征,使用逻辑回归作为融合模型进行最后的结果预测,作为最终的输出。

更多推荐