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模型选择
- 在下图中,先根据 TrainingSet中的数据利用
minθJ(θ) 求得d 次多项式中合适的θ(i) 值 - 在这
d 个i 次多项式的Model分别代入CrossValidationSet的值然后选择Jcv(θ(i)) 值最小第i 个模型作为合适的模型 - 假设现在选择了第4个模型
h(4)θ(x) 作为合适的模型,这个时候把TestSet中的数据代入h(4)θ(x) 再估算Jtest(θ(4)) 的值,这样子就可以测试该模型是否合理
高偏差与高方差
高偏差(欠拟合):
高方差(过拟合):
正则化的时候
当
当
Learning Curves学习曲线
这是一个随着m变化的图像
正常情况下,m增大,
HighBias高偏差时
当m增大的时候,会很快就找到一个相对而言最合适的函数去拟合,但在那个达到m之后,继续增大m,
HighBias有一个明显特征是,
也就是说如果一个函数是HighBias的,如果这个时候增加训练样本m的值,我们会发现
HighVariance高方差时
当m增大的时候,
HighVariance有一个明显特征就是
也就是说如果一个函数是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中举了一个例子是
具体为
根据
自动选择Threshold:可以尝试不同Threshold,然后计算得到不同的Precision和Recall的值,最后根据F值的大小筛选出某个Threshold并使用
- 20161129 Coursera Stanford-MachineLearning/Week6
- 20170123 Coursera Stanford-MachineLearning/Week7
- 20170129 Coursera Stanford-MachineLearning/Week8
- 20170202 Coursera Stanford-MachineLearning/Week9
- 20161124 Coursera Stanford-MachineLearning/Week1-3
- 20161202 Coursera Stanford-MachineLearning/Week10-11
- 20170125 Coursera Stanford-MachineLearning/Week4-5
- coursera Stanford Machine Learning Week6 Ex5机器学习 实验5
- Coursera-week6 疑问
- Coursera-MachineLearning Note-Week 5
- Coursera机器学习 week6 assignment
- Coursera机器学习 Week6 笔记
- 【学习笔记】【Coursera】【MachineLearning】Neural Networks
- Coursera机器学习 week6 编程作业代码
- 【学习笔记】【Coursera】【MachineLearning】Large scale machine learning
- Stanford 机器学习笔记 Week6 Advice for Applying Machine Learning
- Stanford 机器学习笔记 Week6 Machine Learning System Design
- 【Coursera】Machine learning - week6 : Advice for Applying Machine Learning
- [UML]UML概述
- html008_list
- ssh框架
- JsonUtil工具类的封装
- Linux命令行下加速git clone
- 20161129 Coursera Stanford-MachineLearning/Week6
- receiver开机自启动失败原因
- C/C++代码优化方案
- html009_div
- html010_form
- 万年历(JAVA)
- 插入排序-C语言
- html011_iframe
- 大小写转换