前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计一个机器学习系统之前有哪些工作要做?

设计一个机器学习系统之前有哪些工作要做?

作者头像
讲编程的高老师
发布2021-05-13 11:15:46
4190
发布2021-05-13 11:15:46
举报

本文是吴恩达《机器学习》视频笔记第66篇,对应第6周第8个视频。

“Machine Learning System Design:——Prioritizing what to work on: Spam classification example”

01 笔记

接下来的几个视频会讲到设计一个机器学习系统的注意事项,给出一些对于这样一个复杂系统的设计建议。接下来几个视频讲解的数学内容不多,主要是一些设计经验的分享,可以让我们少走一点弯路。

以一个垃圾邮件分类的系统为例展开讲解。

需求分析

假设我们要构建的是一个有监督学习系统。

如下图所示,左边是一封垃圾邮件,右边是一封正常邮件。

这是众多训练样本中的两个,已经被打好了标签:垃圾邮件(y=0),正常邮件(y=1)。

我们知道了,这是一个二分类系统,最后邮件的取值要么是0(表示垃圾邮件)要么是1(表示正常邮件),就是y=0 OR 1。如果再有邮件的特征向量x,我们就可以想办法构建一个二分类的学习器(比如一个逻辑回归算法的分类器)。那邮件的特征向量x是什么呢?

有一种选择特征向量的办法,我们可以建立一个有100个垃圾邮件(或正常邮件)常用词的词库,通过这些词来判断一封邮件是否为垃圾邮件。

找出这样100个常用词是否在邮件中出现,如果出现对应分量为1否则为0,那就可以用一个维度为100的分量取值可能为0或1的一个向量来表示一份邮件了。如下图:

当然在实际的工作中,这个常用词的词库的量要大得多,一般是10000~50000之间,而且这数万个词是根据出现的频率由计算机自动挑出来的。

这样一来,分类器的任务就清晰了,就是根据邮件的特征向量来判断这个邮件是不是垃圾邮件。

接下来做什么

对我们的分类器的前期预处理算法的优化,比如下面的这些工作:

第一,当然是构建监督学习器的训练样本集,训练样本是已经标记了是否为垃圾邮件的一系列邮件。一个例子,有一个叫做“honeypot”项目,这个项目创建了很多假的邮箱地址放出去,故意用来接收大量的垃圾邮件。

第二,继续优化邮件的特征向量,比如加入邮件的路由信息、邮件标题等作为邮件的特征值。

第三,对于邮件的主体部分,在进行特征提取的时候考虑一些复杂的情况,比如“deal”和“Dealer”是否该被当成同一个词?

第四,对一些垃圾邮件中故意使用的错误拼词进行处理,比如med1cine这样的词可能是medicine的伪装。

总结

在机器学习系统的前期预研阶段有很大的灵活性,需要根据实际应用场景进行分析。而且呢,这些方法(招数)具有很多随机性,可能是你们开发小组通过多次碰头会讨论出来的结果,可能是某个成员灵机一动想出来的招数。

那么,这些可能的处理方案里面哪些是靠谱的呢?应该用什么样的方法去验证这些“点子”呢?

还要接着往下学习。

02 视频

http://mpvideo.qpic.cn/0b78kuaaiaaakuaez25nsbpvavodarkqabaa.f10004.mp4?dis_k=d31410168cb90a659405ab4ed05f58cf&dis_t=1620875637&spec_id=MzAxMDYwMTc4Nw%3D%3D1620875637&vid=wxv_1603891939265806337&format_id=10004

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 讲编程的高老师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01 笔记
  • 需求分析
  • 接下来做什么
  • 总结
  • 02 视频
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档