Evalutating a Learning Algorithm

        这里关注与在开发机器学习系统中,如何决定接下来要做什么。

        以线性回归为例,若预测结果有较大误差时,我们会有很多抉择,例如寻找更多数据,加入更多特征,增大或减小学习速率等等,但是如何进行选择并不应该是凭感觉的,否则会浪费很多时间。这里我们引入机器学习诊断法,通过一种方法更快的进行选择。

Coursera-Machine-Learning-Review-W6

        首先我们引入一种方法判断我们的假设是否是过拟合的,我们将训练集按7:3的比例分为训练集和测试样本,然后通过计算误差判断假设是否合适。

Coursera-Machine-Learning-Review-W6

        那么如何得到适合假设的多项式次数呢,我们可以利用刚刚说过的7:3分割数据集,给出多个假设,选择误差最小的一个,但是这样选择会选择出一个最拟合训练集的次数,为了改进这种情况,我们用6:2:2的比例分割训练集为训练集,交叉验证集和测试集,然后计算各个集合的误差来判断假设是否合理。

Coursera-Machine-Learning-Review-W6

Bias vs. Variance

        我们可以利用训练集,交叉验证集的代价函数值来判断,首先随着多项式次数增加,误差会逐渐降低,此时处于欠拟合阶段。之后再增加多项式次数时,训练集误差会继续下降,但是交叉验证集的误差会上升,此时处于过拟合阶段

Coursera-Machine-Learning-Review-W6

        我们之前说过正则化可以防止过拟合,而参数可以λ可以影响拟合的偏差和方差,当λ很小时,对交叉验证集效果不好,产生过拟合问题,当λ很大时对训练集和交叉验证集的效果都不好,产生欠拟合问题

Coursera-Machine-Learning-Review-W6

Coursera-Machine-Learning-Review-W6

        然后我们引入学习曲线。以训练集大小为变量,计算训练集和交叉验证集的代价函数。当学习算法欠拟合时,增大训练集大小并没有什么用处,而当算法过拟合时,增大训练集大小是有用的。

Coursera-Machine-Learning-Review-W6

Coursera-Machine-Learning-Review-W6

        我们给出以下解决方法:

Coursera-Machine-Learning-Review-W6

        对于神经网络,更简单的结构和更少的参数容易导致欠拟合,同时计算成本会更小。而复杂结构和更多的参数容易导致过拟合,计算成本更高

Building a Spam Classifier

对于建立垃圾邮件分类器方面,我们应该花费时间在哪些方面?

Coursera-Machine-Learning-Review-W6

        在实施机器学习算法过程中,我们建议首先进行一个快速易行的算法,在交叉验证集检验,画出学习曲线然后决定是增加特征或者是寻找更多数据。然后人为检查交叉验证集中的错误样本,判断需要在哪个方面进行改进。尝试改进其中一项,观察错误率减少了多少,从而判断是否应当花费时间在这个方面。

Coursera-Machine-Learning-Review-W6

Handling Skewed Data

        在数据集存在很大偏移情况下,比如分类器中大多数都是一个类别时,一个简单的假设有可能使代价函数很小从而产生很好的结果,例如全部猜测属于某一个分类,显然不是一个很好的猜测。我们引入两个参考量Precision和Recall,定义如下:

Coursera-Machine-Learning-Review-W6

        然后我们通过这两个参考量计算F1值,令其最小来判断最合适的假设。

Coursera-Machine-Learning-Review-W6

Using Large Data Sets

        我们知道,通过更多参数,更多特征和更多隐藏单元可以很好地拟合训练集,但是容易导致过拟合。但是训练更多数据可以获得更好的假设,使得无论在训练集还是测试集,假设的效果都很好。

Coursera-Machine-Learning-Review-W6

相关文章: