吴恩达机器学习(十一)——系统设计

本文探讨了如何设计和优化垃圾邮件分类器,通过选取邮件中的关键词作为特征,使用监督学习方法,如逻辑回归,进行分类。文章强调了特征选择、数据量对算法性能的影响,提出了误差分析和系统性方法来提升准确性。此外,讨论了处理偏斜类别问题时,查准率和召回率的重要性,以及如何通过调整临界值来平衡两者。最后,指出在大量数据下,简单的学习算法也能获得良好性能,但关键在于是否有合适的数据和能够处理复杂参数的算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、构建垃圾邮件分类器
举一个垃圾邮件分类的例子:假如你想建立一个垃圾邮件分类器,假设我们已经有一些加过标签的训练集。

包括标注的垃圾邮件表示为y=1和非垃圾邮件表示为y=0。

我们如何以监督学习的方法来构造一个分类器来区分垃圾邮件和非垃圾邮件呢?

为了应用监督学习,我们首先必须确定的是如何用邮件的特征,构造向量x给出训练集中的特征x和标签y,我们就能够训练出某种分类器,比如用逻辑回归的方法。

这里有一种选择邮件的一些特征变量的方法。比如说我们可能会想出一系列单词能够用来区分垃圾邮件或非垃圾邮件,比如说,如果有封邮件包含单词"deal(交易)" “buy(买)” "discount(折扣)“那么它就很有可能是一封垃圾邮件,如果一封邮件中包含了我的名字"Andrew” 说明这封邮件,不太可能是垃圾邮件。因为某些原因,我认为 "now(现在)"这个单词表明了,这封邮件可能并不是垃圾邮件,因为我经常收到一些很紧急的邮件,当然还有别的单词。

我们可以选出这样成百上千的单词,给出一封这样的邮件,我们可以将这封邮件用一个特征向量来表示,方法如图:
在这里插入图片描述

我选择了100个单词,用于表示是否可能为垃圾邮件,所以这个特征向量x 的维度是100 并且 如果这个特定的单词,即单词 j 出现在这封邮件中,那么每一个特征变量 xj 的值为1,反之 xj为0。

虽然我所描述的这个过程是我自己选取的100个单词。但是在实际工作中最普遍的做法是遍历整个训练集。然后,在训练集中(大量的垃圾邮件中),选出出现次数最多的n个单词,n一般介于10,000和50,000之间,然后把这些单词作为你要用的特征。因此不同于手动选取,这些单词会构成特征,这样你就可以用它们来做垃圾邮件分类。

如果你正在构造一个垃圾邮件分类器,你应该会面对这样一个问题,那就是:你最该去使用哪一种改进你的方法,从而使得你的垃圾邮件分类器具有较高的准确度。从直觉上讲,是要收集大量的数据,生成这个叫做 data 的对象,是吧? 事实上确实好多人这么做,很多人认为收集越多的数据算法就会表现的越好。

就垃圾邮件分类而言,有一个叫做"Honey Pot"的项目。它可以建立一个假的邮箱地址,故意将这些地址泄露给发垃圾邮件的人,这样就能收到大量的垃圾邮件。你看,这样的话,我们就能得到非常多的垃圾邮件来训练学习算法,但是,在前面的课程中我们知道大量的数据可能会有帮助,也可能没有。
在这里插入图片描述

对于大部分的机器学习问题,还有很多办法用来提升机器学习的效果。比如对于垃圾邮件而言 也许你会想到用更复杂的特征变量,像是邮件的路径信息。这种信息通常会出现在邮件的标题中。因此,垃圾邮件发送方在发送垃圾邮件时,他们总会试图让这个邮件的来源变得模糊一些。或者是用假的邮件标题,或者通过不常见的服务器来发送邮件,用不常见的路由,他们就能给你发送垃圾邮件,而且这些信息也有可能包含在邮件标题部分,因此可以想到,我们可以通过邮件的标题部分来构造更加复杂的特征,来获得一系列的邮件路由信息,进而判定这是否是一封垃圾邮件。

你还可能会想到别的方法,比如,从邮件的正文出发,寻找一些复杂点的特征,例如:单词"discount" 是否和单词"discounts"是一样的。又比如,单词"deal(交易)"和"dealer(交易商)"是否也应视为等同。甚至,像这个例子中,有的单词小写有的大写,或者我们是否应该用标点符号来构造复杂的特征变量。因为垃圾邮件可能会更多的使用感叹号,这些都不一定。

同样的,我们也可能构造更加复杂的算法来检测或者纠正那些故意的拼写错误。例如"m0rtgage" “med1cine” “w4tches” 。因为垃圾邮件发送方确实这么做了,因为如果你将4放到"w4tches"中,那么,用我们之前提到的简单的方法,垃圾邮件分类器不会把"w4tches" 和"watches" 看成一样的,这样我们就很难区分这些故意拼错的垃圾邮件。发垃圾邮件的也很机智,他们这么做就逃避了一些过滤。当我们使用机器学习时,总是可以“头脑风暴”一下 想出一堆方法来试试,就像这样。

顺带一提,我有一段时间,研究过垃圾邮件分类的问题,实际上我花了很多时间来研究这个。尽管我能够理解垃圾邮件分类的问题,我确实懂一些这方面的东西,但是,我还是很难告诉你 这四种方法中,你最该去使用哪一种。事实上,坦白地说,最常见的情况是一个研究小组可能会随机确定其中的一个方法。但是有时候这种方法并不是最有成效的,你知道你只是随机选择了其中的一种方法。

实际上,当你需要通过头脑风暴来想出不同方法来尝试去提高精度的时候 你可能已经

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大鹏小站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值