机器学习系统设计 ---- Machine Learning System Design

构建一个机器学习算法的过程:

  1. 快速构建一个简单的算法,并用交叉验证集来测试这个算法的性能。
  2. 画出学习曲线,检查算法是否有高方差或高偏差的问题,从而选择相应的应对方法。
  3. 误差分析,查看使算法出现误差的实例,分析这些实例是否有某种系统化的趋势。

评估算法性能

偏斜类(skewed classes):训练集中的大多数实例属于一类,其他类占得很少或没有。

类偏斜的情况下我们就不能单纯使用误差来评判算法的效果。应使用新的评估度量值。

TP:预测为真,实际为真

FP:预测为真,实际为假

FN:预测为假,实际为真

TN:预测为假,实际为假

查准率:TP / (TP + FP)   Precision,越高越好

查全率:TP / (TP + FN)   Recall,越高越好

构成PR曲线:准不准,全不全(右凸,higher recall, lower precision,调整阈值)

如何自动选择阈值:计算F1值,F1 Score = 2PR / (P + R),取最高值对应的阈值。

TPR:TP / (TP + FN)

FPR:FP / (TN + FP)

构成ROC曲线:灵敏度,特异度(左凸)

数据问题

获得大量的数据在很多情况下是获得高性能学习算法的一个很好的方式,但是不要盲目的去收集大量的数据。

一种比较好的方式:我们有大量的数据(低方差,避免过拟合),并且我们训练了一种带有很多参数(低偏差)的学习算法,那么很多时候能训练出一个高性能的算法。

时间: 2024-10-13 11:57:02

机器学习系统设计 ---- Machine Learning System Design的相关文章

斯坦福大学公开课机器学习:machine learning system design | error metrics for skewed classes(偏斜类问题的定义以及针对偏斜类问题的评估度量值:查准率(precision)和召回率(recall))

上篇文章提到了误差分析以及设定误差度量值的重要性.那就是设定某个实数来评估学习算法并衡量它的表现.有了算法的评估和误差度量值,有一件重要的事情要注意,就是使用一个合适的误差度量值,有时会对学习算法造成非常微妙的影响.这类问题就是偏斜类(skewed classes)的问题.什么意思呢.以癌症分类为例,我们拥有内科病人的特征变量,并希望知道他们是否患有癌症,这就像恶性与良性肿瘤的分类问题.假设y=1表示患者患有癌症,假设y=0表示没有得癌症,然后训练逻辑回归模型.假设用测试集检验了这个分类模型,并

斯坦福大学公开课机器学习:machine learning system design | trading off precision and recall(F score公式的提出:学习算法中如何平衡(取舍)查准率和召回率的数值)

一般来说,召回率和查准率的关系如下:1.如果需要很高的置信度的话,查准率会很高,相应的召回率很低:2.如果需要避免假阴性的话,召回率会很高,查准率会很低.下图右边显示的是召回率和查准率在一个学习算法中的关系.值得注意的是,没有一个学习算法是能同时保证高查准率和召回率的,要高查准率还是高召回率,取决于自己的需求.此外,查准率和召回率之间的关系曲线可以是多样性,不一定是图示的形状. 如何取舍查准率和召回率数值: 一开始提出来的算法有取查准率和召回率的平均值,如下面的公式average=(P+R)/2

斯坦福大学公开课机器学习:machine learning system design | data for machine learning(数据量很大时,学习算法表现比较好的原理)

下图为四种不同算法应用在不同大小数据量时的表现,可以看出,随着数据量的增大,算法的表现趋于接近.即不管多么糟糕的算法,数据量非常大的时候,算法表现也可以很好. 数据量很大时,学习算法表现比较好的原理: 使用比较大的训练集(意味着不可能过拟合),此时方差会比较低:此时,如果在逻辑回归或者线性回归模型中加入很多参数以及层数的话,则偏差会很低.综合起来,这会是一个很好的高性能的学习算法. 原文地址:https://www.cnblogs.com/chenwenyan/p/8326027.html

Stanford机器学习笔记-7. Machine Learning System Design

7 Machine Learning System Design Content 7 Machine Learning System Design 7.1 Prioritizing What to Work On 7.2 Error Analysis 7.3 Error Metrics for Skewed Classed 7.3.1 Precision/Recall 7.3.2 Trading off precision and recall: F1 Score 7.4 Data for ma

Machine Learning - XI. Machine Learning System Design

http://blog.csdn.net/pipisorry/article/details/44119187 机器学习Machine Learning - Andrew NG courses学习笔记 Machine Learning System Design机器学习系统设计 Prioritizing What to Work On优先考虑做什么 Error Analysis 错误分析 Error Metrics for Skewed Classes有偏类的错误度量 Trading Off P

斯坦福第十一课:机器学习系统的设计(Machine Learning System Design)

11.1  首先要做什么 11.2  误差分析 11.3  类偏斜的误差度量 11.4  查全率和查准率之间的权衡 11.5  机器学习的数据 11.1  首先要做什么 在接下来的视频中,我将谈到机器学习系统的设计.这些视频将谈及在设计复杂的机器 学习系统时,你将遇到的主要问题.同时我们会试着给出一些关于如何巧妙构建一个复杂的机器学习系统的建议.下面的课程的的数学性可能不是那么强,但是我认为我们将要讲到的 这些东西是非常有用的,可能在构建大型的机器学习系统时,节省大量的时间. 本周以一个垃圾邮件

Ng第十一课:机器学习系统的设计(Machine Learning System Design)

11.1  首先要做什么 11.2  误差分析 11.3  类偏斜的误差度量 11.4  查全率和查准率之间的权衡 11.5  机器学习的数据 11.1  首先要做什么 在接下来的视频将谈到机器学习系统的设计.这些视频将谈及在设计复杂的机器学习系统时,将遇到的主要问题.同时会试着给出一些关于如何巧妙构建一个复杂的机器学习系统的建议.下面的课程讲的东西数学性不强,但是非常有用的,可能在构建大型的机器学习系统时,节省大量的时间. 本周以一个垃圾邮件分类器算法为例进行讨论. 为了解决这样一个问题,首先

Advice for Applying Machine Learning & Machine Learning System Design----- Stanford Machine Learning(by Andrew NG)Course Notes

Adviceforapplyingmachinelearning Deciding what to try next 现在我们已学习了线性回归.逻辑回归.神经网络等机器学习算法,接下来我们要做的是高效地利用这些算法去解决实际问题,尽量不要把时间浪费在没有多大意义的尝试上,Advice for applying machine learning & Machinelearning system design 这两课介绍的就是在设计机器学习系统的时候,我们该怎么做? 假设我们实现了一个正则化的线性回

Lessons learned developing a practical large scale machine learning system

原文:http://googleresearch.blogspot.jp/2010/04/lessons-learned-developing-practical.html Lessons learned developing a practical large scale machine learning system Tuesday, April 06, 2010 Posted by Simon Tong, Google Research When faced with a hard pre