机器学习基础(六)—怎么样让我的模型表现更好?

模型的优化

1 损失函数太大了怎么办?

  • 获取更多的训练样本
  • 尝试用更少的特征数
  • 增加额外的特征
  • 降低/提高lambda值
    但是!这些步骤会花费较多的时间。下面将介绍一种事半功倍的解决办法。
    在这里插入图片描述

2 如何防止过拟合/欠拟合?

  • 将数据分为测试集和训练集(3:7的比例)。

  • 首先用训练集获取最优θ,然后用到test来计算代价函数的值
    在这里插入图片描述

  • 对于分类问题,可以用错误分类度量方法

  • 将判断错误记为1,判断正确记为0,然后计算出现的误差之和。
    在这里插入图片描述

3 如何选择模型?

选择几项式?

  1. 首先将数据分为三个部分:
    (1). 训练集(60%)
    (2). 交叉验证集(20%)
    (3). 测试集(20%)
    在这里插入图片描述
  2. 然后使用不同模型计算交叉验证集的误差值,选择出交叉验证集误差值最小的那个模型,然后再利用测试集去估算泛化的误差。

在这里插入图片描述

4 有关偏差和方差的问题

从下图可以明显的看出:

  • 当出现高偏差时:训练集上的误差会比较高,交叉验证集上的误差同样也会很高。
  • 当出现高方差时:训练集上的误差会比较低,交叉验证集上的误差会比较高。
    在这里插入图片描述

5 正则化

  1. 如果λ的值过大,那么会出现高偏差,使得除了θ_0以外的θ都非常的接近于0。
  2. 如果λ的值过小,那么就会使得λ起不到效果。
    在这里插入图片描述

选则正确λ的步骤:

  1. 依此带入不同的λ计算正则化的代价函数的最优θ。
  2. 然后依此用这些θ来计算交叉集上我误差
  3. 选择一个使得交叉集上代价函数最小的θ,放到测试集上去看代价函数的值
    在这里插入图片描述

6 学习曲线

  • 在训练集上,如果训练的样本不断的增加,那么训练集的误差就会越来越大
  • 在交叉集上,如果交叉集的样本增加,那么其泛化效果就会越来越好,误差就会出现的下降。
    在这里插入图片描述

高偏差:

  • 交叉验证集的误差会不断的下降,并且到一个点就保持平稳
  • 训练集的误差不断上升,并且越来越接近交叉验证集
    注:如果算法出现高偏差,那么使用更多数据样本不会有效果
    在这里插入图片描述

出现高方差时,我们的训练集一开始能够很好的进行拟合,但是随着样本量逐渐增大,训练集的误差必然会有所上升,但是上升的幅度不会这么的大。
交叉验证集一开始会有较高的误差,但是随着样本量的增加,误差就会逐渐变小,但是不会变化的非常快速。
注:如果样本量足够大,那么训练集误差和交叉验证集的误差就会越来越接近。因此,当算法出现高方差时,那么通过增加样本量可以起到比较好的作用。

在这里插入图片描述
解决方法:
高偏差(欠拟合):

  • 降低λ
  • 增加特征数
  • 增加高次项

高方差(过拟合):

  • 提高λ
  • 减少特征数
  • 增加样本量
    在这里插入图片描述

在使用神经网络的时候,当网络比较大时更容易出现过拟合的情况。此时可以通过提高λ的方式来预防。
此外,在确定隐藏层的数量时,可以通过使用交叉集来验证1层、2层、3层…的代价函数值,然后选择代价函数值最小的那一层即可。
在这里插入图片描述

7 误差分析思想

当在做一个机器学习项目的时候,我们通常会采用以下的几个步骤:

  • 首先快速的使用自己已经掌握的算法将这个项目大概的框架先做出来,然后用交叉验证集去验证
  • 然后通过画学习曲线去决定下一步应该做什么事情。比如是高方差还是高偏差。
  • 同时,可以通过误差分析方法,去发现归类错误的目标中,有哪些共同的规律,然后根据这个规律来进一步优化。

在这里插入图片描述

8 偏斜类

  • 假设我们通过算法计算出来的误差值只有1%,但是真实情况下,只有0.5%的病人得了病,所以这个时候,1%的误差就显得不是很小了。因为如果我们默认所有人都没有得病,那么我们的误差也只有0.5%。
  • 在分类问题当中,当一个类别的数量非常大,另一个类别的数量非常小的时候,这个时候我们就称之为偏斜类。

在这里插入图片描述

  • Precision:
    用真实为I类的数量/我们预测到的为类的数量。这个值越大,说明预测的越准确。

  • Recall:
    真实为I类的数量/真实为I类的数量+真实为I类但被预测为II类的数量。召回率越高越好。

在这里插入图片描述

  • 高准确率,低召回率:
    如果我把判断为I类的门槛设的很高,那么我就可以比较有自信的去告诉被判断为I类的人我的预测是非常准确的。但是,由于我们门槛很高,导致我有可能将很多属于I类的但是未达到该门槛的人误判为II类。
  • 高召回率,低准确率:
    如果我把判断为I类的门槛设的很低,那么这个时候我的自信就比较低了,但是我可以很有自信的说,真实是I类的人在我的判断中一定是属于I类的,但是这个时候会出现很多的假阳性。

在这里插入图片描述

  • 通过计算F score可以比较不同算法,得到一个权衡P和R的最优算法。

在这里插入图片描述

  • 当我们的数据集当中特征数量太少,可能会导致我们无法准确的预测。比如,我们找一个房产经济人,将房子的大小和房间数给他,他可能不能够准确的预测出房价。因为影响房价的重要因素还有很多。

  • 当我们有很多的参数时,这个时候我们的算法一般是低偏差的。
    所以我们如果想要得到一个比较高性能的模型,我们首先可以有很多的参数,其次数据样本量比较庞大,从而使得偏差值和方差都比较的低。
    在这里插入图片描述

参考资料:

  1. Ng机器学习
  2. 黄博笔记
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值