机器学习(Coursera吴恩达)(五)
标签(空格分隔): 机器学习
我们要怎么样选择哪些方法,来改善我们的学习算法。
1. 尝试减少特征数量
2. 尝试获得更多的特征
3. 尝试增加多项式特征
4. 尝试减少正则化程度
5. 尝试增加正则化程度
6. ……
这些方法,应该有判别的方法进行选择,而不是瞎选。
评估一个假设
如何避免过拟合和欠拟合?
将数据集分为三部分:Train_set, Test_set, CrossValidation_set.
模型选择
假设有多个阶数不同的模型:
选择方法:
1. 使用训练集训练出10个模型
2. 分别对cv_set计算得到交叉验证误差(代价函数的值 )
3. 选取代价函数最小的模型
4. 用3.中选择出的模型对test_set算出推广误差( )
偏差和方差
偏差大–欠拟合
方差大–过拟合
train误差和cv误差相近时:偏差–欠拟合
train误差远小于cv误差时:方差–过拟合
正则化
一般使用正则化防止过拟合,但是要选择合适的 ,需要思考与刚才选择多项式模型次数类似的问题。
例子
选择一些列想要测试的 值(12个)。
1. 使用训练集,训练出12个不同成都正则化的模型
2. 用12个模型分别对交叉验证集计算得出交叉验证误差( )
3. 选择得出交叉验证误差最小的模型
4. 用3中的额模型对testset计算得到推广(泛化)误差。
* 当 较小时,训练集误差较小(过拟合)而交叉验证集误差较大
* 随着 增加,训练误差不断增加(欠拟合),而交叉验证集误差先减小后增加。
学习曲线–一个很好的合理检验
学习曲线用来判断高偏差还是高方差。。
并且可以得出数据集大小m与训练误差之间的关系。
在高偏差(欠拟合)的情况下,增加训练集不一定能获得更好的效果;
但是在高方差(过拟合的情况下)增加训练集会令 减小,而 增加。能够提高算法效果。
下一步
通过以上几种方法,维度和正则化系数的选择,可以发现算法是过拟合还是欠拟合,是方差大还是偏差大,由此可以选择合适的维度和正则化系数以及数据集大小。
方法 | 解决 |
---|---|
获取更多训练样本 | 高方差 |
减少特征数量 | 高方差 |
获得更多特征 | 高偏差 |
增加多现实特征 | 高偏差 |
减少正则化程度 | 高偏差 |
增加正则化程度 | 高方差 |
偏斜类(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关系绘制图表。
F1值
通过F1值最高的情况确定PR的阈值。