Machine learning system design---prioritizing what to work on
prioritizing what to work on
设计一个机器学习算法时,我们应该先做什么?以垃圾邮件识别的例子为例:
垃圾邮件发送者可能会故意将一些字符写错,如上图中的Medicine用1来代替i,M0rgages中o用0来代替。
我们有一些标识为Spam的邮件,有一些标识为non-spam的邮件,这些邮件做为trainning data用监督学习来设计分类算法
挑选100个词做为是否是垃圾邮件的词,然后将这100个词按照字母顺序来进行排序,如果邮件中出现了这个词,那么相应的分量为1,如果邮件中没有出现的话,则为0;
实际上,我们并不是手动来挑选这100个词的,而是通过查找整个训练集来挑出最常见的n个词(一般为10000-50000)
如果你要build a spam classifier,一个你需要面对的问题是:怎样合理利用你的时间来建立一个高识别率的,低错误的识别系统。
首先我们自然会想到收集更多的数据,more data,算法可能会更好。-----在垃圾邮件识别领域,有一些projects称为Honey Pot projects(一些假的邮件地址,然后让这些假的邮件地址到spammer那儿去,用来收集成千上万的垃圾邮件),这样我们就得到了很多trainning data来训练我们的算法。
但是之前我们也看到了,获得更多的训练数据也是有用,在某些情况下也没有用。这时我们也有其它的方法来提高算法的性能。-----创建更加复杂的特征值
基于邮件路由信息(来自于邮件头部)来创建更复杂的特征值: 当spammer发送邮件时,它们通常会将垃圾邮件的来源进行模糊化,或者使用假的email headers,或者通过一些非常不常见的设施、通过不常见的路由来发送垃圾邮件。这些信息将会在email headers里面有所反映。所以如果我们查看email headers的话,试图去建立更复杂的features去捕获这种类型的邮件路由信息去识别某封邮件是否是垃圾邮件。
基于邮件内容来创建更复杂的特征值:如discount和discounts应该当成一样的吗?或者将标点符号包括进去,如可能垃圾邮件会使用很多感叹号等等。spammer经常将一些词故意误拼,这时我们需要更复杂的算法来识别这些误拼的单词(如med1cine,w4tches等等)。
总结:
通常我们会将我们接下来要做些什么像上图那样列举下来,可是我们很难说哪种方法更有用,所以我们不要固定在哪种做法上.通常我们会随机选择一个方法来实行,但是这种方法因为是随机选择的,所以可能对于我们算法的提高没有帮助,接下来将介绍通过一种方法来选择哪种方法对我们性能的提高有帮助。
Machine learning system design---prioritizing what to work on的更多相关文章
- 斯坦福大学公开课机器学习: machine learning system design | prioritizing what to work on : spam classification example(设计复杂机器学习系统的主要问题及构建复杂的机器学习系统的建议)
当我们在进行机器学习时着重要考虑什么问题.以垃圾邮件分类为例子.假如你想建立一个垃圾邮件分类器,看这些垃圾邮件与非垃圾邮件的例子.左边这封邮件想向你推销东西.注意这封垃圾邮件有意的拼错一些单词,就像M ...
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 6) Advice for Applying Machine Learning & Machine Learning System Design
(1) Advice for applying machine learning Deciding what to try next 现在我们已学习了线性回归.逻辑回归.神经网络等机器学习算法,接下来 ...
- Stanford机器学习笔记-7. Machine Learning System Design
7 Machine Learning System Design Content 7 Machine Learning System Design 7.1 Prioritizing What to W ...
- Machine Learning - 第6周(Advice for Applying Machine Learning、Machine Learning System Design)
In Week 6, you will be learning about systematically improving your learning algorithm. The videos f ...
- Machine Learning - XI. Machine Learning System Design机器学习系统的设计(Week 6)
http://blog.csdn.net/pipisorry/article/details/44119187 机器学习Machine Learning - Andrew NG courses学习笔记 ...
- Coursera 机器学习 第6章(下) Machine Learning System Design 学习笔记
Machine Learning System Design下面会讨论机器学习系统的设计.分析在设计复杂机器学习系统时将会遇到的主要问题,给出如何巧妙构造一个复杂的机器学习系统的建议.6.4 Buil ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 11—Machine Learning System Design 机器学习系统设计
Lecture 11—Machine Learning System Design 11.1 垃圾邮件分类 本章中用一个实际例子: 垃圾邮件Spam的分类 来描述机器学习系统设计方法.首先来看两封邮件 ...
- 斯坦福第十一课:机器学习系统的设计(Machine Learning System Design)
11.1 首先要做什么 11.2 误差分析 11.3 类偏斜的误差度量 11.4 查全率和查准率之间的权衡 11.5 机器学习的数据 11.1 首先要做什么 在接下来的视频中,我将谈到机器 ...
- 斯坦福大学公开课机器学习:machine learning system design | data for machine learning(数据量很大时,学习算法表现比较好的原理)
下图为四种不同算法应用在不同大小数据量时的表现,可以看出,随着数据量的增大,算法的表现趋于接近.即不管多么糟糕的算法,数据量非常大的时候,算法表现也可以很好. 数据量很大时,学习算法表现比较好的原理: ...
- 斯坦福大学公开课机器学习:machine learning system design | trading off precision and recall(F score公式的提出:学习算法中如何平衡(取舍)查准率和召回率的数值)
一般来说,召回率和查准率的关系如下:1.如果需要很高的置信度的话,查准率会很高,相应的召回率很低:2.如果需要避免假阴性的话,召回率会很高,查准率会很低.下图右边显示的是召回率和查准率在一个学习算法中 ...
随机推荐
- 用ArcMap在PostgreSQL中创建要素类需要执行”create enterprise geodatabase”吗
问:用Acmap在PostgreSQL中创建要素类需要执行"create enterprise geodatabase"吗? 关于这个问题,是在为新员工做postgresql培训后 ...
- 「LOJ2091」「ZJOI2016」小星星 容斥+DP
题目描述 小 Y 是一个心灵手巧的女孩子,她喜欢手工制作一些小饰品.她有\(n\)颗小星星,用 \(m\)条彩色的细线串了起来,每条细线连着两颗小星星.有一天她发现,她的饰品被破坏了,很多细线都被拆掉 ...
- Python-16-继承、封装、多态
一.继承 1. 概念 继承是一种创建新类的方式,新建的类可以继承一个或多个父类(python支持多继承),父类又可称为基类或超类,新建的类称为派生类或子类. 子类会“”遗传”父类的属性,从而解决代码重 ...
- Python 运算符 各类运算符总结
运算符详解2.1.算术运算符2.2.比较(关系)运算符2.3.赋值运算符2.4.逻辑运算符2.5.位运算符2.6.成员运算符2.7.身份运算符三.重要运算符说明3.1.join和符号”+“区别3.2. ...
- AX 2012 model应用
说句实话,AX2012 model真心不好用,当你开发好,把Model到入到客户环境时, 要防止有冲突,假如出现冲突的话,还必须去删除另外一个Model里面冲突的代码,真心麻烦. 下面给一个ax 导入 ...
- TypeScript之接口
1.写法 // 属性 interface Person { name:string; age:number; hobby: string; } // 函数 interface { todo(para ...
- Unity的学习笔记(XLua的初学用法并在lua中使用unity周期函数)
自己最近也在研究怎么用lua控制UI,然后看着网上介绍,决定选用XLua,毕竟TX爸爸出的,有人维护,自己琢磨着怎么用,于是弄出来一个能用的作为记录. 当然,XLua主要是用于热更新,我自己是拿来尝试 ...
- c#连接Access数据库及增删改查作
access:版本2003(后缀.mdb,新版access可另存为2003兼容版) using: using System;using System.Data;using System.Windows ...
- [jsp学习笔记]servelt get post
1.post提交数据是隐式的,get是通过在url里面传递的(可以看一下你浏览器的地址栏),用来传递一些不需要保密的数据. 2.用get时,传输数据的大小有限制 (注意不是参数的个数有限制),为2K: ...
- 将ftp目录映射为本地盘符
1.ftpuser 下载安装FTPUSE下载地址:http://www.ferrobackup.com/ftpuse/ 创建 FTPUSE F: www.xx.com pwd /USER:admi ...