机器学习系统设计:渣滓邮件分类
作者头像
  • 智能快报
  • 2019-10-16 07:25:01 3

机器学习系统设计——垃圾邮件分类

假设我们有一封邮件,其内容如下: 发件人:cheapsales@buystufffromme.com
收件人:ang@cs.stanford.edu
主题:立即购买!
本周特价!立即购买!
劳力士手表——100美元
药品(任何种类)——50美元
还有超低利率的抵押贷款可供选择。

邮件中充斥着各种促销信息,很有可能是一封垃圾邮件。如果我们有一个包含垃圾邮件的数据集,并希望通过机器学习的方式学会识别垃圾邮件,这个案例可以帮助我们了解机器学习系统的构建过程。

模型设计

我们用向量x表示垃圾邮件的特征向量,该向量包含100个按字母顺序排列的常见垃圾邮件词汇特征,如折扣、特价、立即购买等。

我们将y标签定义为该邮件是否为垃圾邮件。

垃圾邮件分类是一个二分类问题,可以通过逻辑回归实现。为了降低分类错误率,我们需要采取以下措施:

  • 扩大样本数量:可以通过设置陷阱(honeypot)来吸引黑客攻击,记录并分析攻击模式,增加更多实际样本。
  • 增加特征数量:例如,可以将发件人的邮箱地址作为特征,也可以将标点符号(如问号、感叹号)作为特征。因为垃圾邮件通常会使用这些标点符号来引起注意。
  • 预处理样本:由于垃圾邮件制造者会不断改进他们的技术,比如故意改变单词拼写以逃避检测(如将medicine写成med1cinie),我们需要有办法识别这些错误拼写,从而优化输入到逻辑回归模型中的样本。

错误分析

针对机器学习模型的学习过程,吴恩达教授给出了一些建议:

  • 初期避免过度优化:首先快速实现一个简单的算法,然后通过交叉验证集评估模型性能。类似于软件工程中的敏捷开发,先实现基本功能,再逐步优化。
  • 绘制学习曲线:通过学习曲线判断模型面临的是偏差问题还是方差问题。如果是偏差问题,则需要增加更多的训练样本;如果是方差问题,则可能需要引入更多特征。还可以手动检查交叉验证集中错误较多的样本,找到错误原因并制定解决策略。

举例来说,如果有500个交叉验证样本,模型错误分类了其中100个样本。我们需要分析这些被错误分类的邮件类型,是假冒伪劣的推销邮件、医药邮件还是钓鱼邮件?找出有助于区分这些邮件的特征。

假设在这100个错误分类的样本中,有53个是钓鱼邮件。那么我们需要考虑如何让模型识别钓鱼邮件。进一步分析后发现,这53封钓鱼邮件中有5封故意使用错误拼写,16封来自可疑发件人,32封使用了大量夸张的标点符号。因此,在识别钓鱼邮件时,更应关注标点符号这一特征,而不是拼写错误。

    本文来源:图灵汇
责任编辑: : 智能快报
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
渣滓学习系统机器邮件设计分类
    下一篇