3000字详细总结机器学习中如何对模型进行选择、评估、优化

引入

作者:陈浩然,北大在读,个人博客:chrer.com

对于一个机器学习工程而言,我们可以选择的模型众多,就之前的章节,我们已经可以选择:

北大才女笔记:这样学习线性回归和梯度下降(上篇)

北大陈浩然笔记:特征缩放和泛化能力(下篇)

logistics判别与线性模型中的4个问题

全面总结机器学习项目和面试中几乎绕不开的决策树

神经网络精炼入门总结:出现缘由,多层感知机模型,前向传播,反向传播,避免局部最小

对于一个模型而言,我们也有很多模型参数需要人工选择,本章将对模型的评估选择和优化进行详细介绍。

1概念介绍

1.1 过拟合和欠拟合

在机器学习中,我们期望通过训练集来得到在新样本上表现的很好的学习器,找出潜在样本的普遍规律,在训练过程中,可能会出现两种情形:

  • 欠拟合:指对训练样本的一般性质尚未学好 。
  • 过拟合:学习器把训练样本学得“太好”了的时候,可能把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。

可以通过下图来辅助理解:

过拟合与欠拟合

在机器学习中,我们尤其要预防过拟合的发生,但由于机器学习的问题常常是NP难甚至是NP完全的,而有效的算法必定是多项式时间内完成的,所以只要承认P=NP,就需要承认过拟合无法完全避免

当然,P=NP是目前尚未证明或证伪的结论,我倾向于认为P!=NP。

1.2 偏差和方差

对于测试样本x,其真实标记为y,数据集中的标记

, 机器学习算法输出的标记为

,算法输出的期望值

,则有以下定义:

其中E()代表求期望,有数学推导可知:

总误差可以分解为方差、偏差与噪声之和

从直观理解的角度上看:

  • 偏差刻画了学习算法本身的拟合能力
  • 方差刻画了数据集的变动导致学习性能的变化,也就是学习算法的稳定性
  • 噪声表明了数据集标记本身的误差

1.3 查准率和查全率

我们评估一个算法好坏的时候经常使用错误率,即算法输出与实际标记不一致的数据所占的比例

然而有时候,我们会关心更加细致的数据,例如进行疾病检查,我们更关心检查出病症的病人占总病人数目的多少,或者是检测出病症的病人有多少真的有疾病,于是引入查准率和查全率:

首先,根据算法输出和实际标记,可以将数据分为四类:

真实情况 预测结果

TP

FN

FP

TN

表格中T和F分别代表True和False(表示算法的预测结果是否正确),P和N分别代表Positive和negative(表示数据本身实际的分类意义)。

查准率P和查全率R定义如下:

查准率表示了被输出为正例的样本中真的是正例的比例

查全率表示了所有的正例中被算法识别出来的比例

2 模型选择

一般而言,参数有两种,一种是模型中的参数,由算法进行自动的优化;另一种是模型本身自带的参数,又称超参数

在机器学习中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。

例如,我们再进行线性回归时,可以选择很多种形式的函数,例如:

也就是说,我们要选定到底哪个形式的模型效果会比较好,为了得到最好的模型,我们将数据集分为三个部分。

  • 训练集(60%)
  • 测试集(20%)
  • 交叉验证集(20%)

其中训练集用于算法的训练,由此,我们可以得到很多个不同的模型,再使用交叉验证集分别测试每个模型的泛化能力,选择其中最优的模型。

最后,使用测试集来测试最优模型的泛化能力,为什么不直接使用上一步的交叉验证集呢?因为, 这个交叉验证集误差是我们通过对比选择出来的, 它在这个数据集上肯定是最优的, 相当于我们已经看到了这些数据, 用它来代表对未知数据的泛化能力显然不行。

在划分数据集的过程中,要保证数据集的划分尽可能保持数据分布的一致性,即使得它们独立同分布,数据集划分的方法一般而言有以下几种:

  • 留出法:最基本的抽样方法,最好使用分层抽样保证数据分布一致性,也可以做多次划分,最后返回在每次划分上测试结果的平均值,可以避免偏差
  • 优点:划分简单
  • 缺点:可能产生偏差,若采取多次取样,则训练成本过高
  • 交叉验证法:将数据集划分为k个大小相似的数据集,注意使用分层抽样。每次使用一个小数据集做测试集,其他k-1个做训练集,轮流进行k次,最后返回的是测试结果的平均值。 自助法:假设有m个数据的数据集,每次有放回的从其中抽取一个样本,执行m次,最终大概有36.8%的数据未被抽取到,当做测试集,其余当做训练集。
  • 优点:在数据集较小时用处较大,划分出的多个数据集有利于集成学习。
  • 缺点:改变了原数据样本的分布,会引入偏差

3 模型评估

在前面,已经介绍过查准率和查全率,当想要评估一个模型的好坏时,便可以使用这两项指标。

实际上,除了一些很简单的任务外,查准率和查全率是无法两全的:

  • 若要提高查准率,即提高判为正例的标准,那么必定会漏掉一些真的正例,降低查全率
  • 若要提高查全率,即降低判为正例的标准,必定会混入假的正例,降低查准率。

对于一个算法而言,其查准率和查全率关系如图所示:

有了这两项指标,一般按照如下原则比较不同模型:

  1. 若A模型的P-R曲线完全包住B,则A模型优于B
  2. 根据P-R曲线包裹的面积,面积大的模型更优
  3. 根据模型的现实需要,选择P或R值更好的模型
  4. 根据

值,

值大的模型较为优秀

  1. 最好的方法是综合现实情形和

值,引入

,其中参数

是对于查全率的重视程度。

上述叙述了当机器学习模型已经训练完成之后,我们该如何评估模型的好坏。

但是一般而言,机器学习模型的训练时间较长,在训练过程中,我们怎么样判断模型训练的状态和优劣呢?

之前说过,训练过程中的最容易出现的问题就是过拟合欠拟合,下面介绍判断拟合状态的方法。

之前介绍过方差、偏差的概念以及他们的意义,在训练过程中,我们会得到训练集测试集的总误差,通过这两个参数,我们可以判断出算法的拟合状态。

  • 当出现欠拟合时,偏差高,方差低
  • 当出现过拟合时,方差高,偏差低

3.1 拟合状态与样本规模

首先,无论是过拟合还是欠拟合,由于一个特定的函数对于更多的数据更难以拟合,但是对预测是有利的,所以训练集误差会增加,测试集误差会减少

  • 若出现欠拟合情形,增大数据量,训练集和测试集误差会趋于平缓,并且两者很接近,但是喂更多的数据基本无效。
  • 若出现过拟合情形,增大数据量,训练集误差会持续增加,测试集误差会持续减少,并且两者相差较大。 过拟合与欠拟合

3.2 拟合状态与正则化项

在线性回归、支持向量机等算法中,都会加入正则化项来防止过拟合,因为正则化项可以使得参数尽可能小。

例如该式中的

即为正则化项的参数,其值越大,越可以避免过拟合,但是可能会陷入欠拟合泥淖之中。

随着

的增大,训练集误差会持续升高(因为拟合程度逐渐减小),而测试集误差会先下降后上升,期间有最低点。

如图,

较小时,会发生过拟合,所以测试集误差会很大,

较大时,会发生欠拟合,所以测试集误差也会很大。

过拟合与欠拟合

3.3 拟合状态和模型复杂性

显然,选择的特性越多,模型越复杂。例如一个普通的线性回归,我们就可以选择:

模型越复杂,学习能力越强,故训练集误差越小。但是对于测试集误差,当它减少到一定程度时,模型可能因为过于复杂而出现过拟合现象,误差反而增大。

4 模型优化

如果我们已经发现当前算法效果并不好,会试图对算法进行一些优化,例如:加更多的特征,增加数据集,增大正则化项等,下表列举了常见的措施和应对情况。

措施

应对情形

搜集更多的数据

过拟合,高方差

使用更少的特征

过拟合,高方差

增加额外的特征

欠拟合,高偏差

增加多项式特征

欠拟合,高偏差

减小λ的值

欠拟合,高偏差

增加λ的值

过拟合,高方差

原文发布于微信公众号 - Python与机器学习算法频道(alg-channel)

原文发表时间:2018-07-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

ICLR 2018 | 斯坦福大学论文通过对抗训练实现可保证的分布式鲁棒性

30812
来自专栏达观数据

技术干货 | 漫谈Word2vec之skip-gram模型

新媒体管家 ? 作者简介 刘书龙,现任达观数据技术部工程师,兴趣方向主要为自然语言处理和数据挖掘。 word2vec是Google研究团队的成果之一,它作为一种...

1.1K8
来自专栏数据分析

[机器学习]-[数据预处理]-中心化 缩放 KNN(一)

数据预处理是总称,涵盖了数据分析师使用它将数据转处理成想要的数据的一系列操作。例如,对某个网站进行分析的时候,可能会去掉 html 标签,空格,缩进以及提取相关...

2967
来自专栏PPV课数据科学社区

机器学习:你需要多少训练数据?

作者为Google 软件工程师,美国西北大学电子信息工程博士,擅长大规模分布式系统,编译器和数据库。 ? 从谷歌的机器学习代码中得知,目前需要一万亿个训练样...

3645
来自专栏机器之心

深度 | OpenAI发布「块稀疏」GPU内核:实现文本情感分析与图像生成建模当前最优水平

选自 OpenAI 作者:Durk Kingma、Scott Gray、Alec Radford 机器之心编译 参与:黄小天、刘晓坤 近日,OpenAI 在其一...

3106
来自专栏算法channel

斯坦福大学NLP-cs224课程笔记2:词向量

详细请参考:斯坦福大学NLP-cs224课程笔记1:应用深度学习到自然语言处理简介

1142
来自专栏AI研习社

深度学习目标检测概览

本文是翻译自Object detection: an overview in the age of Deep Learning - Tryolabs Blog ...

4646
来自专栏CSDN技术头条

逻辑回归 vs 决策树 vs 支持向量机(II)

本文是该系列的第二篇,第一篇参见: 逻辑回归 Vs 决策树 Vs 支持向量机: Part I. 在这篇文章,我们将讨论如何在逻辑回归、决策树和SVM之间做出最佳...

2026
来自专栏计算机视觉战队

期待已久的—YOLO V3

好久不见各位研友(研究好友,不是考研的小伙伴,嘿嘿)!最近,因为题主学校事情比较繁忙,没有花更多的时间在我们的平台,希望关注支持我们的您,原谅我们更新的速度,希...

58816
来自专栏人人都是极客

Peter教你谈情说AI | 06朴素贝叶斯分类器

第五节开始我们谈到回归问题和分类问题,其中回归问题可以用梯度下降法求出其模型,那么分类模型可以通过什么方法可以求出呢?

1241

扫码关注云+社区

领取腾讯云代金券