Andrew Ng机器学习入门学习笔记(五)之调试学习算法

本文介绍了机器学习诊断的重要性,强调了如何通过诊断方法评估和选择假设函数,以及如何应对高偏差和高方差问题。文章详细讨论了训练集与测试集的划分、模型选择、正则化对偏差/方差的影响,并通过学习曲线分析了训练数据量对模型性能的影响,提供了解决预测误差大的策略。
摘要由CSDN通过智能技术生成

一.机器学习诊断

在设计机器学习系统或者进行改进时如果遇到问题,下一步应该怎么办呢?

除了掌握一些学习算法之外,我们还需要知道如何调试一个算法。

例如我们已经实现了一个正则化线性回归来预测房价, J(θ)=12m[mi=1(hθ(x(i))y(i))2+λmj=1θ2j]

然而在将假设函数测试一个新的数据集时,发现预测误差很大。接下来该怎么办?有以下一些方法可供选择。

获取更多训练样本
尝试使用更少的特征
尝试增加特征
尝试加入多项式特征
尝试减小 λ
尝试增大 λ

问题在于大多数人只是凭感觉选择其中的一种或几种方法,最后发现浪费了大量时间做了无用功。

使用机器学习诊断法可以帮我们评估算法,排除掉一些无用的方法,节省大量时间。

机器学习诊断(diagnostic):它本身是一种测试法,执行它可以深入了解某种算法是否有用,并可以从中获得信息,即如何才能最大化改进这种算法的效果。虽然它的执行和实现是需要时间的,但是使用它能让我们更高效地利用时间。

二.评估假设函数

首先我们要知道一个事实,仅仅因为假设函数具有较小的训练误差并不能说明它是一个好的假设函数。前面已经讲过了过拟合,它不能泛化到新的输入上。如何判断过拟合呢?前面提到过画图的方法,但是对于特征变量很多的情况,画图会变得十分困难。

<1>下面介绍一种评估假设函数的标准方法:把一个数据集按70%的训练集和30%的测试集的比例分为两个部分。(如果数据集的分布有规律,则要随机取70%作为训练集,剩下30%作为测试集;如果数据集已经是随机分布,则可以取前70%作为训练集,后30%作为测试集)

①评估线性回归假设函数:

—用那占70%的训练数据通过

minθJtrain(θ)=minθ12mtraini=1mtrain(hθ(x(i)train)y(i)train)2
学习出参数 θ

—计算测试集的误差:

Jtest(θ)=12mtesti=1mtest(hθ(x(i)test)y(i)test)2

②评估逻辑回归假设函数:

—用那占70%的训练数据通过

minθJtrain(θ)=minθ{ 1mtraini=1mtrainy(i)trainloghθ(x(i)train)+(1y(i)train)loghθ(x(i)train)}
学习出参数 θ

—计算测试集的误差:

Jtest(θ)=1mtest
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值