Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning

Evaluating a Learning Algorithm

Deciding What to Try Next

当算法效果不好时,你可能会尝试:1. 收集更多数据 2. 增加属性 3.减少属性 4.修改regularition参数

lambda,下面几节会告诉你如何选择正确的做法。

Evaluating a Hypothesis

如何判定是否过拟合了?一种方法是拿出原训练集的70%做新训练集,计算出θ,然后另外30%做测试集

test,计算Jtest(θ)看看是不是很大,如果很大就说明过拟合了。

对于分类问题同样可以用Jtest(θ)来判断是否过拟合,还有另一种方法是用Test error来判断
Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning_第1张图片

Model Selection and Train/Validation/Test Sets

当你要添加一个新的属性时你有很多种选择,比如x,x^2,x^3。。。等等。一种选择的方法是同样把训练

集分成两部分,用新训练集分别对于每个可能填加的属性计算出相对应的θ,然后再对于每个θ计算

Jtest(θ),选择Jtest(θ)最小的θ对应的属性做为下一个添加的。但是这个方法依然是有问题的,test集起到的

作用太大了,可能过拟合test集。

因此真正有效的方法是把原训练集分成三部分:training(60%),cross validation(20%)和test(20%)。

使用training和validation按照上面的方法选择下一个属性,然后用test检测是否过拟合validation了。

总结就是,用生成θ的数据集来检测θ效果好不好是不合理的。要避免过拟合问题。

Bias vs. Variance

Diagnosing Bias vs. Variance

预测效果差的原因主要有两种:bias and variance。它们的具体解释可以看:
作者:orange prince
链接:https://www.zhihu.com/question/27068705/answer/35151681
来源:知乎
转载上面链接中的一段:
Bias反映的是模型在样本上的输出与真实值之间的误差,即模型本身的精准度,Variance反映的是模型每一次输出结果与模型输出期望之间的误差,即模型的稳定性。

Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning_第2张图片

如上图所示:Jcv(θ)的最低点显然是最好的,左边的最高点就是high bias,由欠拟合引起,Jtrain(θ)和

Jcv(θ)都很大。右边的最高点是high varience ,由过拟合引起(曲线十分不平滑方差自然大),Jcv(θ)远远

大于Jtrain(θ)。

总结就是不能使用生成θ的数据集来测试θ效果的好坏。

Regularization and Bias Variance

上面training/validation/test分法同样可以用来确定最合适的regularization参数λ。方法是一样的,选择不

同的λ用train集合算出θ,再用cross validation算Jcv(θ)选择最小的θ对应的λ,再用test测试是否过拟合。

Learning Curves

学习曲线的形式是x轴为训练集样例数量,y轴为误差,如下图:
Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning_第3张图片

样例越少,越容易拟合,因此Jtrain(θ)递增。样例越多θ越具有普适性,因此Jcv(θ)递减。

High bias的学习曲线:
Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning_第4张图片
因为预测不具有普适性,对于大多数样例(不管是来自cross validation还是train)来说误差都很接近。因

此在high bias的情况下找更多训练数据也不会降低Jcv(θ)和Jtest(θ)。

High varience的学习曲线:
Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning_第5张图片

样例增多时,尽管θ是过拟合的,但是拟合的效果依然会缓慢减小,因此Jtrain(θ)缓慢递增,同时普适性也缓

慢增大,使得Jcv(θ)缓慢递减。

注意,在high varience情况下,Jtrain(θ)和Jcv(θ)并不会收敛,而是一直在接近对方。因此在这种情况下收

集更多的training set是有意义的。

Deciding What to Do Next Revisited

在神经网络中,简单的网络结构 : 计算量小,容易欠拟合; 复杂的网络结构 : 计算量大,容易过拟合。但

是最常用的还是使用复杂的网络结构,因为过拟合可以用regularization来调整。

在选择神经网络层数时,同样可以使用training/validation/test测试法。

你可能感兴趣的:(机器学习)