机器学习入门之机器学习的应用与系统设计

本文为吴恩达机器学习课程的笔记系列第三篇,主要关于机器学习应用时如何诊断偏差和方差,从而对机器学习系统实施相应的解决方法,以及介绍设计机器学习系统时的设计方法与评价指标。

应用机器学习

在机器学习中,如何降低模型的预测误差,提高模型的预测精度,是我们一直都希望解决的问题。我们往往会采取如下的手段:

  1. 获得更多的训练样本。
  2. 尝试减少特征的数量
  3. 尝试获得更多的特征
  4. 尝试增加多项式特征
  5. 尝试减少正则化程度 λ \lambda λ
  6. 尝试增加正则化程度 λ \lambda λ

这些方法并不是随机选择的,我们要根据实际场景(如偏差、方差问题)来进行选择。

数据集的划分

  • 训练集 :60%,用于训练出多个模型。
  • 验证集(交叉验证集):20%,用于计算交叉验证误差(也就是代价函数 J ( θ ) J(\theta) J(θ)),选择代价函数值最小的模型。
  • 测试集:20%,对选中的模型计算泛化误差,用于评估模型的泛化(generalize)能力。

诊断偏差和方差

机器学习中,偏差(bias) 指预测结果与真实值之间的差异,偏差反映模型无法准确表达数据关系。方差(variance) 是指多个(次)模型输出的结果之间的离散差异,方差反映了模型对训练集过度敏感,而丢失了数据规律。

  • 高偏差——欠拟合

  • 高方差——过拟合

多项式拟合中的偏差与方差

我们知道,对于训练集,当多项式次数 d d d 越小时,模型拟合程度越低,误差越大; d d d 越大时,模型拟合程度越高,误差越小。而对于交叉验证集,多项式次数 d d d 越小时,模型拟合程度同样越低,误差越大;而随着 d d d 的增长,误差呈现先减小后增大的趋势。因为此时多项式次数较高,训练误差很低,模型容易过拟合,对交叉验证集的数据泛化能力较差,交叉验证集的误差很高,此时的误差就属于方差。而当多项式次数较低时,不管是训练集还是交叉验证集,误差都很高,此时的误差就属于高偏差,因为此时模型容易欠拟合。

下图就是训练集、交叉验证集误差随多项式次数 d d d 的变化规律

在这里插入图片描述

正规化中的偏差与方差

在线性回归和逻辑回归的学习中,我们知道通过引入正则化的手段可以防止模型过拟合。而正则化惩罚力度的大小(也就是 λ \lambda λ 的取值大小)也会对模型的误差产生类似上述多项式拟合的影响。

下图反映训练集和交叉验证集模型的代价函数误差与 λ \lambda λ 的值的变化规律:

在这里插入图片描述

λ \lambda λ 较小时,正则化惩罚力度较小或几乎没有,此时模型对训练集的拟合程度还是较高,误差还是较小,而应用到交叉验证集的误差就较大(因为过拟合)。

随着 λ \lambda λ 的不断增大,正则化惩罚力度不断加大,模型的对训练集的拟合程度逐渐降低,趋于欠拟合,训练集误差不断增大,而对于交叉验证集,误差会先减小后增大,因为模型会从过拟合逐渐达到一个最佳的拟合程度,也就是图中的转折点,在这之后模型趋于欠拟合时,误差自然就增大了。

神经网络中的偏差方差

当神经网络的结构较为简单时,也就是隐藏层数较少,则容易出现高偏差,但是计算代价较小;

当神经网络的结构较为复杂时,也就是隐藏层数较多,则容易出现高方差,虽然计算代价也比较大,但此时可以通过增大 λ \lambda λ 来解决。

学习曲线

学习曲线(Learning Curves)可以用来判断一个学习算法是否处于偏差、方差问题。学习曲线是将训练集误差和交叉验证集误差作为训练集样本数目 m m m 的函数绘制的图表。

当样本数 m m m 较小时,模型在训练集上容易拟合,训练集误差较小,但交叉验证集的误差较大(发现不了数据的规律);随着 m m m 的增大,模型拟合难度会增大,训练集误差也开始增大,而交叉验证集的误差会降低,因为样本数多,模型的学习能力增强,更能发现数据规律。

下图反映了样本数目 m m m 对训练集误差和交叉验证集误差的影响:

在这里插入图片描述

如果模型出现高偏差(欠拟合),增加再多的样本数,仍无法有效降低交叉验证集的误差。

在这里插入图片描述

如果模型出现高方差(过拟合),当交叉验证集误差远大于训练集误差时,此时若增加样本数,对降低交叉验证集的误差有一定帮助。

在这里插入图片描述

总结

方法适用场景
获得更多的训练样本解决高方差
尝试减少特征的数量解决高方差
尝试获得更多的特征解决高偏差
尝试增加多项式特征解决高偏差
尝试减少正则化程度 λ \lambda λ解决高偏差
尝试增加正则化程度 λ \lambda λ解决高方差

机器学习系统的设计

设计方法

  1. 先快速实现一个简单的算法,并用交叉验证集数据测试这个算法。
  2. 绘制学习曲线,根据图像判断存在的是哪些问题,是高偏差还是高方差?从而决定是增加更多数据,还是添加更多特征,还是其它方案。
  3. 进行误差分析,人工检查交叉验证集中我们算法中产生预测误差的样本。

评价指标

单纯的使用误差并不能全面的评价模型的好坏,因为对于样本不平衡的数据集(比如正样本过多,负样本太少,即数据集非常偏斜),用预测准确率来评估算法优劣是不准确的。所以引入下面两个重要的评价指标:查准率(Precision)查全率(Recall)

首先定义:

  • Positive:表示预测的样本为真。
    • True Positive 正确肯定:预测为真,实际为真
    • False Positive 错误肯定:预测为真,实际为假
  • Negative:表示预测的样本为假。
    • True Negative 正确否定:预测为假,实际为假
    • False Negative 错误否定:预测为假,实际为真
实际值 \预测值预测Positive预测Negtive
实际PositiveTPFN
实际NegtiveFPTN

查准率(Precision)

  • P = T P T P + F P P=\dfrac{TP}{TP+FP} P=TP+FPTP

查全率(Recall)

  • R = T P T P + F N R=\dfrac{TP}{TP+FN} R=TP+FNTP

为了更好的权衡两个指标,我们使用 F 1 S c o r e \mathbf{F_1Score} F1Score 来综合两个指标:

  • F 1 S c o r e : 2 P R P + R F_1Score:2\dfrac{PR}{P+R} F1Score2P+RPR

上一篇文章:机器学习入门之神经网络与反向传播推导
下一篇文章:机器学习入门之支持向量机SVM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值