首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每天十分钟机器学习之二十八:如何评估一个假设函数

在本讲中想介绍一下怎样用学过的算法来评估假设函数,为什么要评估假设函数呢,因为当你的假设函数有很低的训练误差的的时候,它不一定是个好的假设函数,比如大家看下面这个假设函数,在训练集完全拟合了但测试集不一定适用,这就是我们常说的过拟合。

当我们确定学习算法参数的时候,我们考虑的是选择参量来使训练误差最小化,当得到一个非常小的训练误差是不是就可以了,事实上并不一定说明是一个好的假设函数,因为把这些参数推广到新的数据上时候,表现不一定符合预期,有可能存在过拟合。

那么,该如何判断一个假设函数是过拟合?对于简单的例子,例如上面图中画出的数据,我们可以对假设函数h(x)进行画图,然后观察图形趋势,但对于特征变量不止一个的这种情况,还有像有很多特征变量的问题,想要通过画出假设函数来进行观察,就会变得很难甚至是不可能实现,而实际大部分都是这种情况。

因此,我们需要另一种方法来评估我们的假设函数是否过拟合。

为了检验,我们将数据分成训练集和测试集,通常用70%的数据作为训练集,用剩下30%的数据作为测试集。很重要的一点是训练集和测试集均要含有各种类型的数据,通常要对数据进行“洗牌”,然后再分成训练集和测试集。

测试集评估在通过训练集让我们的模型学习得出其参数后,对测试集运用该模型,我们有两种方式计算误差:

1.对于线性回归模型,我们利用测试集数据计算代价函数J

利用训练集的数据得出模型参数θ,然后将该模型拿到测试集上验证,就是利用验证集上的所有数据计算代价函数Jtest(θ)

2.对于逻辑回归模型,我们除了可以利用测试数据集来计算代价函数外:

还可以采用计算误分类的比率,定义误差函数如下:

根据误差函数定义总误差为:

最好的情况就是误差为0,即代表都分对了。其实在实际操作中,这个误分类比例才是常用的,来评判逻辑回归模型的好坏。

祝您的机器学习之旅愉快!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190111G10U5X00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券