机器学习(Coursera吴恩达)(五)

机器学习(Coursera吴恩达)(五)

标签(空格分隔): 机器学习


我们要怎么样选择哪些方法,来改善我们的学习算法。
1. 尝试减少特征数量
2. 尝试获得更多的特征
3. 尝试增加多项式特征
4. 尝试减少正则化程度
5. 尝试增加正则化程度
6. ……
这些方法,应该有判别的方法进行选择,而不是瞎选。

评估一个假设

如何避免过拟合和欠拟合?
将数据集分为三部分:Train_set, Test_set, CrossValidation_set.

模型选择

假设有多个阶数不同的模型:
1模型.png-30.8kB
选择方法:
1. 使用训练集训练出10个模型
2. 分别对cv_set计算得到交叉验证误差(代价函数的值Jcv
3. 选取代价函数最小的模型
4. 用3.中选择出的模型对test_set算出推广误差(Jtest

偏差和方差

偏差大–欠拟合
方差大–过拟合
2偏差方差.png-43.7kB

3偏差方差随维数增加图.png-193kB

train误差和cv误差相近时:偏差–欠拟合
train误差远小于cv误差时:方差–过拟合

正则化

一般使用正则化防止过拟合,但是要选择合适的λ ,需要思考与刚才选择多项式模型次数类似的问题。

例子
选择一些列想要测试的λ 值(12个)。
1. 使用训练集,训练出12个不同成都正则化的模型
2. 用12个模型分别对交叉验证集计算得出交叉验证误差(Jcv(θ) )
3. 选择得出交叉验证误差最小的模型
4. 用3中的额模型对testset计算得到推广(泛化)误差。

4lambda-Jcv.png-144.2kB
* 当λ 较小时,训练集误差较小(过拟合)而交叉验证集误差较大
* 随着λ 增加,训练误差不断增加(欠拟合),而交叉验证集误差先减小后增加。

学习曲线–一个很好的合理检验

学习曲线用来判断高偏差还是高方差。。
并且可以得出数据集大小m与训练误差之间的关系。

5学习曲线bias.png-101.3kB
5学习曲线variance.png-96.4kB

在高偏差(欠拟合)的情况下,增加训练集不一定能获得更好的效果;
但是在高方差(过拟合的情况下)增加训练集会令Jcv 减小,而Jtrain 增加。能够提高算法效果。

下一步

通过以上几种方法,维度和正则化系数的选择,可以发现算法是过拟合还是欠拟合,是方差大还是偏差大,由此可以选择合适的维度和正则化系数以及数据集大小。

方法 解决
获取更多训练样本 高方差
减少特征数量 高方差
获得更多特征 高偏差
增加多现实特征 高偏差
减少正则化程度 高偏差
增加正则化程度 高方差

偏斜类(skewed classes)

训练集中有分产多的同一种类实例,而只有很少或没有其他类的实例。
例如希望用算法预测癌症是否是恶性的,在训练集中,只有0.5%的实例是恶性肿瘤。假设编写一个算法判定全为良性肿瘤,那么仅看误差相对于神经网络的1%的误差,这个算法只有0.5%的误差。但是这样肯定是不能仅用误差作为衡量依据。
* 正确肯定(TRUE Positive,TP):预测为真,实际为真
* 正确否定(TRUE Negative,TN):预测为假,实际为假
* 错误肯定(FALSE Positive,FP):预测为真,实际为假
* 错误否定(FALSE negative,FN):预测为假,实际为真
(TRUE:判断正确;Positive:预测为真;negative:预测为假)

实际\预测 1 0
1 TP FN
0 FP TN

由以上四个情况可以计算两个关键标准:
查准率(Precision):TP/(TP+FP)
查全率(Recall):TP/(TP+FN)

所以全判为良性的算法,查全率为0,因此也不能使用。
查准率:在所有预测有恶性肿瘤的病人中,实际上有恶性肿瘤的人的百分比,越高越好。
查全率:实际所有有恶性肿瘤的病人中,成功预测有恶性肿瘤的的病人的百分比,越高越好。

1.如果我们希望只在非常确信的情况下预测为真,即我们希望更高的查准率,我们可以使用比0.5更大的阈值(LR概率判断阈值),这样会减少错误判断为恶性肿瘤的情况,同时会增加未能成功预测肿瘤为恶性的情况
2.如果我们希望提高查全率,尽可能使可能是恶性肿瘤的病人得到进一步的筛查,那么就要降低阈值。

我们可以将不同阈值情况下,RP关系绘制图表。
6PR.png-31.4kB

F1值

F1Score:2PRP+R
通过F1值最高的情况确定PR的阈值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章