20161129 Coursera Stanford-MachineLearning/Week6

来源:互联网 发布:淘宝买塑料枪 编辑:程序博客网 时间:2024/06/05 16:06

Week6:Advice for Applying Machine Learning&Machine Learning System Design

如果发现H(x)预测得不好
有几种方式
1. 使用更多训练样本
2. 减少特征数量
3. 增加特征的数量
4. 增加多项式特征
5. 增加或减少λ
选择最正确的方法很重要

Machine Learning Diagnostic机器学习诊断法

通过它可以判断哪些对学习算法影响不大,以及找到合适的方式去改善学习算法

Evaluating a Hypothesis评估假设函数

MisclassificationError误分类错误

对Dataset进行拆分,拆成60%TrainingSet训练集 20%CrossValidationSet验证集 20%TestSet测试集

ModelSelection模型选择

  1. 在下图中,先根据 TrainingSet中的数据利用minθJ(θ)求得d次多项式中合适的θ(i)
  2. 在这di次多项式的Model分别代入CrossValidationSet的值然后选择Jcv(θ(i))值最小第i个模型作为合适的模型
  3. 假设现在选择了第4个模型h(4)θ(x)作为合适的模型,这个时候把TestSet中的数据代入h(4)θ(x)再估算Jtest(θ(4))的值,这样子就可以测试该模型是否合理

高偏差与高方差


高偏差(欠拟合):
Jtrain(θ) 值比较大且Jcv(θ)Jtrain(θ)
高方差(过拟合):
Jtrain(θ) 值比较小且Jcv(θ)>>Jtrain(θ)

正则化的时候
λ值太小时,虽然最后的结果拟合的比较好,但variance(方差)会比较大
λ值太大时,θj的值都会比较小,会导致最后的hθ(x)的函数近似为常函数,即bias(偏差)比较大

Learning Curves学习曲线

这是一个随着m变化的图像
正常情况下,m增大,Jtrain(θ)的值增大

HighBias高偏差
当m增大的时候,会很快就找到一个相对而言最合适的函数去拟合,但在那个达到m之后,继续增大m,Jcv(θ)的值会基本上趋于水平,几乎不变,这就是当前最合适的一个hθ(x)
Jtrain(θ)一开始也特别小,但随着m增大,他开始增大直到逐渐趋近于Jcv(θ)的值,这两个函数的预测结果最后将会非常接近
HighBias有一个明显特征是,Jtrain(θ)Jcv(θ)的值最后都会比较大
也就是说如果一个函数是HighBias的,如果这个时候增加训练样本m的值,我们会发现Jcv(θ)不会有明显的下降,而是最后趋于水平。简单点讲就是,如果函数是HighBias的,增加m对改善算法无用,因为最后得到的hθ(x)相差可能不会太多

HighVariance高方差
当m增大的时候,Jtrain(θ)增大,但这个误差值还是比较小
Jcv(θ)的值会一直都比较大
HighVariance有一个明显特征就是Jcv(θ)Jtrain(θ)在m增大一点的时候仍然有比较大的gap,但随着m增大,他们之间的gap会逐渐变小
也就是说如果一个函数是HighVariance的,那么这个时候增加训练样本m的值,对改善算法是有效果的

在实际中画出来的LearningCurves可能会有一些噪声之类的,但基本上和上面所述的相同,有利于看出Bias和Variance的问题

处理HighBias/HighVariance的方法

Machine Learning System Design

Error Analysis误差分析(根据分类错误处分析)
Skewed Classes偏斜类问题(两个类所占的比例相差特别大,如0.5%与99.5%,这个时候就需要一个新的误差度量方式,而不是纯粹使用预测正确的概率)
一种评估误差度量值叫做查准率(Precision)和召回率(Recall)
此时y=1应该是相对而言是rare的即较少出现的那个类
拥有High Precision和High Recall说明这个算法表现得很好
所以对于偏斜类问题,查准率(Precision)和召回率(Recall)是一种检测和评估学习算法表现的标准(要好于只用分类误差或分类精度)

运用Precision和Recall
改变threshold可能会影响Precision和Recall的值

在下面这种情况下,我们需要一个合理的方式去权衡P和R,根据某一个特定的权衡值选取最合适的算法。
在Coursera中举了一个例子是F1Score
具体为F1Score:2PRP+R
根据F1Score这个度量值的大小去判断选取哪一个Algorithm

自动选择Threshold:可以尝试不同Threshold,然后计算得到不同的Precision和Recall的值,最后根据F值的大小筛选出某个Threshold并使用

0 0
原创粉丝点击