[深度之眼机器学习训练营第四期]关于机器学习应用的一些建议

关于机器学习应用的一些建议

机器学习算法评估

模型评估

在整个机器学习任务的流程中,咱们须要在数据集上训练机器学习模型,找到一个比较“好”的假设。可是,有些假设在已知数据集上表现很好,在新数据上的性能却不好,错误率比较高,这也就是咱们常说的“过拟合”。那么,咱们如何解决这种类型的问题呢?算法

通常来讲,评价机器学习模型的性能,主要看模型在未知数据上的表现。所以,当咱们拿到一个数据集之后,不能立刻进行模型的训练,而是须要把数据集分割成两部分,其中一部分用于训练,而另外一部分则用来评估模型的好坏。其中用于训练的数据称为训练集,用来评估的数据称为测试集。这样,咱们就尽量准确地评价模型的性能。通常而言,训练集占整个数据集的70%,测试集占30%。机器学习

模型选择

假设咱们有一堆不一样阶数的多项式线性回归模型,如何找到在数据集上表现最好的模型呢?咱们的方法是在训练集上训练这么一堆不一样阶数的多项式模型,而后在未知数据上评价它们的性能,最后选择一个“最好”的模型。这时,咱们须要把数据分红训练集,验证集,测试集三个部分。咱们在训练集上学习模型参数,在验证集上调整超参数,最后在测试集上评估模型的泛化性能。通常地,训练集、验证集和测试集的比例为60%/20%/20%;当数据量很是大时,能够按照80%/10%/10%的比例划分数据集。经过这种方法,咱们就能够选择出合适的模型。性能

方差与误差

下面的图片描述了方差和误差的关系。


image.png假设红色的靶心区域是样本的真实值,蓝点为模型对样本的预测值。当蓝点从靶心逐渐向外移动时,预测效果逐渐变差。很容易看出有两副图中蓝点比较集中,另外两幅中比较分散,它们描述的是方差的两种状况。蓝点较集中意味着方差较小,较分散则意味着方差较大。再从蓝点与红色靶心区域的位置关系,靠近红色靶心的属于误差较小的状况, 远离靶心的属于误差较大的状况。


显然,模型的误差较高,说明此时模型并无从数据学习到什么东西,模型在训练集和数据集上的表现都不好,模型处于欠拟合状态。当模型的方差较高时,说明模型能够较好地拟合训练数据集,而在验证集和测试集上的性能较差,此时模型处于过拟合状态。咱们的目的就是找到一个模型,它在训练集和验证集上的偏差都比较低。
image.png
前面咱们提到,正则化技术能够用来解决模型的过拟合问题,其中惩罚系数$\lambda
$表示对模型参数的惩罚程度。那么,咱们如何选择一个合适的惩罚系数呢?一般,咱们有如下选择步骤:学习

  1. 建立一个惩罚系数备选集合,好比\(\lambda\in\{0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24\}\)
  2. 建立一系列不一样的机器学习模型
  3. 为这些模型添加正则化项,而后在设置不一样惩罚系数的状况下学习不一样的模型
  4. 在不使用正则化的状况下,在验证集上评估不一样模型的性能
  5. 选择在验证集上偏差最小的模型\(\Theta^*\)和惩罚系数\(\lambda^*\)的组合
  6. 使用选择的模型\(\Theta^*\)和惩罚系数\(\lambda^*\)在测试集上进行测试并观察其泛化性能测试

    学习曲线

    当模型的误差较大时,随着训练数据的增长,训练偏差与测试偏差会趋近。
    image.png
    而当模型的方差较大时,随着训练数据的增长,训练偏差与测试偏差之间会有较大的。
    image.png
    为了解决方差和误差较大的问题,课程最后给了几条建议:spa

  • Getting more training examples: Fixes high variance
  • Trying smaller sets of features: Fixes high variance
  • Adding features: Fixes high bias
  • Adding polynomial features: Fixes high bias
  • Decreasing λ: Fixes high bias
  • Increasing λ: Fixes high variance.
相关文章
相关标签/搜索