coursera机器学习笔记-建议,系统设计
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得;
#注:此笔记是我自己认为本节课里比较重要、难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点;
#标记为<补充>的是我自己加的内容而非课堂内容,参考文献列于文末。博主能力有限,若有错误,恳请指正;
#---------------------------------------------------------------------------------#
#下面这个概念对理解机器学习非常有帮助,但是我发现很多小伙伴不了解这个;
<补充>机器学习三要素-模型(model)、策略(strategy)、算法(algorithm);
模型就是所要学习条件概率分布或决策函数,我们常见的一些方法,像隐马模型(HMM)、SVM模型、决策树模型等等都归于此类;
策略是指按照什么样的准则来学习或者挑选模型,像课上讲的J(Θ)、损失函数属于此类;
这里的算法是指学习模型的具体计算方法,即用什么样的方法来求得最优解,像课上讲的梯度下降法,其他如牛顿法、拟牛顿法属于此类;
#---------------------------------------------------------------------------------#
#回到课堂上讲的。。。
当一个方法的预测结果明显有问题时,可采用如下方法:
1,Get more examples :helps to fix high variance,Not good if you have high bias;
2,Smaller set of features: fixes high variance (overfitting),not good if you have high bias;
3,Try adding additional features: fixes high bias (because hypothesis is too simple, make hypothesis more specific)
;
4,Add polynomial terms: fixes high bias problem;
5,Decreasing λ : fixes high bias;
6,Increases λ: fixes high variance;
#---------------------------------------------------------------------------------#
模型评估与模型选择
<补充>用训练集来训练模型,验证集用于模型的选择,测试集用于最终对学习方法的评估;
<补充>用训练误差和测试误差来评估学习方法:
训练误差对判断给定的问题是否容易学习是有意义的,但本质上不重要;
测试误差反映了学习方法对未知数据的预测能力,比较两种学习方法的好坏,不考虑计算速度、空间等因素,测试误差小的方法显然更好;
#---------------------------------------------------------------------------------#
诊断: bias vs. variance
- x = degree of polynomial d;
- y = error for both training and cross validation (two lines);
if d is too small --> this probably corresponds to a high bias problem
if d is too large --> this probably corresponds to a high variance problem
For the high bias case, we find both cross validation and training error are high
Doesn't fit training data well
Doesn't generalize either
For high variance, we find the cross validation error is high but training error is low
So we suffer from overfitting (training is low, cross validation is high)
i.e. training set fits well
But generalizes poorly
#---------------------------------------------------------------------------------#
学习曲线(learning curve)
学习曲线可以通过判断模型High bias还是High variance来提高性能;
,
suffering from high bias:需要增加模型复杂度,增加数据无效!
,
suffering from high variance:增加数据有效!也可尝试增加正则项;
#---------------------------------------------------------------------------------#
学习器的几个评价指标:
精确率(precision)
- = true positives / # predicted positive
- = true positives / (true positive + false positive);
召回率(recall)
- = true positives / # actual positives
- = true positive / (true positive + false negative);
F1值
- = 2 * (PR/ [P + R]),If P = 0 or R = 0 the Fscore = 0;
精确率与召回率都高,F1值也会高;
准确率(accuracy)
- = (true positives + true negative)/ # total dataset
- = (true positives + true negative)/ (true positive + true negative + false positive + false negative);
#---------------------------------------------------------------------------------#
平衡(trade off)精确率和召回率:很多时候我们需要平衡精确率和召回率;
例子:
- Trained a logistic regression classifier
- Predict 1 if hθ(x) >= 0.5
- Predict 0 if hθ(x) < 0.5
调整阈值对精确率和召回率的影响见下图:
#---------------------------------------------------------------------------------#
参考文献:
《统计学习方法》,李航著;
《machine learning》, by Tom Mitchell;
couresra课程: standford machine learning, by Andrew Ng;
coursera机器学习笔记-建议,系统设计的更多相关文章
- Coursera 机器学习笔记(四)
主要为第六周内容机器学习应用建议以及系统设计. 下一步做什么 当训练好一个模型,预测未知数据,发现结果不如人意,该如何提高呢? 1.获得更多的训练实例 2.尝试减少特征的数量 3.尝试获得更多的特征 ...
- coursera机器学习笔记-多元线性回归,normal equation
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- coursera机器学习笔记-机器学习概论,梯度下降法
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- coursera机器学习笔记-神经网络,学习篇
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- coursera机器学习笔记-神经网络,初识篇
#对coursera上Andrew Ng老师开的机器学习课程的笔记和心得: #注:此笔记是我自己认为本节课里比较重要.难理解或容易忘记的内容并做了些补充,并非是课堂详细笔记和要点: #标记为<补 ...
- Coursera 机器学习笔记(六)
主要为第八周内容:聚类(Clustering).降维 聚类是非监督学习中的重要的一类算法.相比之前监督学习中的有标签数据,非监督学习中的是无标签数据.非监督学习的任务是对这些无标签数据根据特征找到内在 ...
- Coursera 机器学习笔记(八)
主要为第十周内容:大规模机器学习.案例.总结 (一)随机梯度下降法 如果有一个大规模的训练集,普通的批量梯度下降法需要计算整个训练集的误差的平方和,如果学习方法需要迭代20次,这已经是非常大的计算代价 ...
- Coursera 机器学习笔记(七)
主要为第九周内容:异常检测.推荐系统 (一)异常检测(DENSITY ESTIMATION) 核密度估计(kernel density estimation)是在概率论中用来估计未知的密度函数,属于非 ...
- Coursera 机器学习笔记(三)
主要为第四周.第五周课程内容:神经网络 神经网络模型引入 之前学习的线性回归还是逻辑回归都有个相同缺点就是:特征太多会导致计算量太大.如100个变量,来构建一个非线性模型.即使只采用两两特征组合,都会 ...
随机推荐
- OGNl和ValueStack的基础和深入分析
一.OGNL 1)什么是OGNL? 解析:OGNL是Object Graph Navigation Language(对象图导航语言)它是强大的表达式语言. 2)用途:通过简单一致的表达式语法来读取和 ...
- MD5加密操作
MD5加密操作:MD5加密算法原理MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩" ...
- SQL Server 的通用分页显示存储过程
建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页.但这种分页方法仅适 ...
- URL(统一资源定位符)结构和注意事项
URL的常见结构: http://localhost/项目名称/文件1/文件2... 注意事项: 当我们在项目中在书写URL的时候,一般会出现两种情况: 第一种:在路径前面加上/,表示直接连在loca ...
- 【追寻javascript高手之路02】变量、作用域知多少?
前言 本来想把这个与上篇博客写到一起的,但是考虑到是两个知识点还是分开算了,于是我们继续今天的学习吧. 基本类型与引用类型 ECMAScript的的变量有两种类型: 基本类型(值类型):简单数据段 引 ...
- javascript --- 事件冒泡与事件捕获
事件冒泡与事件捕获 事件冒泡和事件捕获分别由微软和网景公司提出,这两个概念都是为了解决页面中事件流(事件发生顺序)的问题.考虑下面这段代码,就不写html->head,body之类的代码了,自行 ...
- Web前端面试题目汇总
以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中有一些未解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,欢迎指正,水平有限,望各位不吝指教.: ...
- 数据连接到 Web 服务 InfoPath 2010 窗体中的 SharePoint 服务器上运行时的错误消息:"401-未经授权"解决方案
症状: 请考虑以下情形: Web 窗体发布到 SharePoint 服务器. 您创建 Microsoft InfoPath 2010 表单所在的 SharePoint 服务器上使用到位于数据的数据连接 ...
- Dotfuscator混淆加密
混淆加密 1. 需要安装Dotfuscator软件 2. 安装好后打开软件,找到编译好的DLL文件 3. 打开[setting]设置属性,如下图: 把 Disable String Encryptio ...
- C# 操作PPt,去掉文本框的边框
using System; using System.Collections.Generic; using System.Linq; using System.Text; using OFFICECO ...