本文是吴恩达《机器学习》视频笔记第59篇,对应第6周第2个视频。
“Advice for applying machine learning:——Evaluating a hypothesis”
01
—
笔记
前面学习知道,对于一个要研究的机器学习问题,我们先假设一个模型,这个模型带有一些未知的参数,通过一定的算法我们找到最优的参数使得损失函数最小。那么,等到最后这些参数、或者更进一步的这个模型的形式是不是真的适合我们的问题呢?用什么样的方法来评估呢?本小节讲解这一问题,后续小节还会涉及到欠拟合和过拟合的问题。
为什么要评估模型假设?Evaluating your hypothesis
先来看这样的一个问题。房屋面积和其售价之间的关系如下图。
看上去是一个曲线,是多项式的形式,可以使用下图所示的公式来拟合。
假设经过训练后,得到下图所示的这样一条曲线。这条曲线貌似非常完美,因为对于所有的样本点都完美照顾到了。
但是,这不代表上面那个多项式就是一个好的模型假设,为什么呢?实践证明,这种花哨的模型一旦遇到训练集中没有的数据,需要预测的时候,往往就不行了。
怎样判断是否过拟合?
如果像下图这样自变量太多,我们比较难入手,先从自变量比较少的情况看看。
比如,我们只看房屋的尺寸对房屋售价的影响。假设有这样一组训练样本,一种比较简便的方法就是将训练样本按照一定比例分成两部分,一部分用来训练另一部分用来测试,一般按照7:3的比例进行分割。
训练集、测试集的切分如下图:
上图中,看上去是顺序切割的,但实际上在进行切分之前需要先对训练样本的顺序随机打乱,然后再按比例分割。
一个线性回归模型的训练、测试步骤
第一步:根据训练样本找到使损失函数最小的一组参数theta
第二步:计算测试集的误差,即按照一定的方法计算上一步得到的模型对于测试集中自变量的预测值与自变量相对应的因变量之间的差值,如下式:
逻辑回归的训练、测试步骤
第一步:由训练样本得到参数估计;
第二步:计算测试集的系统误差,可以使用如下公式。
式中的m_test是训练集的样本数量。因为逻辑回归得到的是0或1的概率,而线性回归得到的是连续的值,所以它们计算测试误差的函数有所不同。
第三步:误分类的误差计算。用下图这种看上去挺复杂,实际上很简单的公式来计算:
上式的意思就是,如果某个测试样本被系统分类分错了,就是逻辑回归的计算值与该测试样本的实际y值不同,则这个点取值为1(否则,正确取值为0),然后把所有的m_test个测试样本的预测是否正确的结果全部加起来,来衡量逻辑回归模型对这个测试集的样本预测错误的大小。
小结
本小节两个主题,(1)就是一个测试模型是否准确时,对于采集到的训练样本集的一般处理方法(切割为训练集、测试集);(2)线性回归、逻辑回归对于测试集的预测效果的衡量公式。
02
—
视频