关闭

以垃圾邮件判定方法探索机器学习中的二分类判定问题

标签: 贝叶斯定理垃圾邮件机器学习二分类
502人阅读 评论(0) 收藏 举报
分类:

学习了一点机器学习的内容:如何进行垃圾邮件分类。自己总结了一下。
试想一下我们人脑的思考方式,我们是如何判断一封邮件是垃圾邮件的:如果邮件中包含某些词,而且这些词出现的频率较高时(比如一封很短的邮件中只有几个Html标签,其中还包含“中奖”等词汇),我们把它归为“奇怪邮件”一类。当我们看了很多这样的“奇怪邮件”之后,我们判定这类邮件是我们所不需要的“垃圾邮件”,好在现在的邮箱都有垃圾箱可以帮我们分类。但是某一天我们收到腾讯客服的电话,我们真的中奖了,电话中说他们已经发了一封简短的邮件通知我,这是才焕然大悟,是不是那封邮件被当作垃圾邮件了,我们需要重新审视我们的分类标准。
那我们来试着模拟人脑的这个过程:
1,首先提取分类特征
首先需要获得一个垃圾邮件样本,然后统计样本中所有邮件中每一个单词出现的频率,并进行排序。从而得到分类特征词。
2,根据特征值计算新邮件是垃圾邮件的可能性。
新邮件中出现了某些“垃圾邮件特征词”,如何断定它是不是垃圾邮件呢。我们可以通过计算它是垃圾邮件的概率来判断。即计算出现特征词w1,…wn时,该邮件是垃圾邮件的条件概率。
介绍一下贝叶斯定理:
下面的图片截取自:http://www.chepoo.com/naive-bayesian-text-classification-algorithm-to-learn.html
贝叶斯定理
最终得出:
P(是垃圾邮件 | 含特征词w1,…wn) = P(含特征词w1 | 是垃圾邮件)*…P(wn | 是垃圾邮件) * P(是垃圾邮件) / (P(w1) * … P(wn))
如果此概率大于50%,我们认为是垃圾邮件。
注意:
这里如果某个P(含特征词w1 | 是垃圾邮件)为0的话,会使得最终结果为0,这被称为数据稀疏问题。为了解决这个问题,我们让每个特征词最少出现一次。
3,解决误杀和漏杀的问题。
如果确定有误杀及漏杀的情况,如何改进此模型呢?
这里猜测一下,是否可以通过调整P(w1 | 是垃圾邮件),来调整w1的判定权重呢?待以后学习后更新。

0
0
查看评论

利用朴素贝叶斯(Navie Bayes)进行垃圾邮件分类

贝叶斯公式描述的是一组条件概率之间相互转化的关系。 在机器学习中,贝叶斯公式可以应用在分类问题上。这篇文章是基于自己的学习所整理,并利用一个垃圾邮件分类的例子来加深对于理论的理解。 这里我们来解释一下朴素这个词的含义: 1)各个特征是相互独立的,各个特征出现与其出现的顺序无关; 2)各个特征地位...
  • jxlijunhao
  • jxlijunhao
  • 2014-10-09 20:18
  • 1635

垃圾邮件分类

  • 2013-12-29 10:38
  • 481KB
  • 下载

垃圾邮件的判定标准与识别方法

因为国内QQ邮箱的一家独大,所以目前国内的ESP和世界上主流的ESP判定垃圾邮件的标准有所不同,但总体来说,不外乎以下几种技术: 1、关键词识别 它首先将垃圾邮件中一些特征性的字眼收集起来(比如打折、免费、促销等),形成一个大的数据库,当一封邮件发出来的时候就会自动匹配邮件头、邮件标题、邮件内容中与...
  • CSDN515
  • CSDN515
  • 2016-05-16 17:42
  • 3031

机器学习实战:用网络摄像头预测年龄和性别

你有没有猜过一个人的年龄? 下面这个简单的神经网络模型可以帮你做这件事。 本文的演示将从网络摄像头中获取实时视频流,并自动标注其中出现人脸的年龄和性别。 在家门口放一个这样的摄像头就可以了解访客的年龄和性别,你可以想象一下这有多酷! 我是在Windows PC使用Python 3.5运行这个...
  • shebao3333
  • shebao3333
  • 2018-01-09 23:32
  • 56

机器学习做二元分类问题(二)

接着上一节我们举得例子,我们说机器学习的流程是什么呢?首先我们要有一个学习的演算法,我们叫做A,这个演算法会看资料,然后会看我们的假设函数集合,从集合中选择一个假设函数做为我们的银行学到技能。这其实就是一个使用机器学习做是非题的问题。  那么假设函数集合是什么样子呢?   ...
  • ML_algorithmResearch
  • ML_algorithmResearch
  • 2015-12-21 12:39
  • 4729

设计测试用例---判定表法

判定表就是一个表格,最简单的类似于“田”字。zuobian
  • ting201204
  • ting201204
  • 2014-11-06 15:35
  • 2350

【机器学习实战二:朴素贝叶斯算法之过滤垃圾邮件】

一、部分说明 ---------------------------------------------------------------- 1、本文代码是《机器学习实战》这本书的例程。点击下载《机器学习实战》及原书中的源代码; 2、运行环境为:window10+python3.2+各种pytho...
  • u013634684
  • u013634684
  • 2015-11-05 22:35
  • 2616

欧拉通路 欧拉回路的判定 Hdu 1878 欧拉回路

欧拉通路: 通过图中每条边且只通过一次,并且经过每一顶点的通路。 欧拉回路: 通过图中每条边且只通过一次,并且经过每一顶点的回路。   无向图是否具有欧拉通路或回路的判定: 欧拉通路:图连通;图中只有0个或2个度为奇数的节点 欧拉回路:图连通;图中所有节点度...
  • whyorwhnt
  • whyorwhnt
  • 2014-02-27 22:51
  • 1323

判定表驱动分析方法

一.方法简介 1.定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。 2.判定表的优点 能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。 在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻...
  • xiaofuruo
  • xiaofuruo
  • 2013-12-31 11:01
  • 2079

机器学习项目实战之贝叶斯垃圾邮件分类

#coding:utf-8 ''' Created on 2017年3月19日@author: qiujiahao ''' import numpy as np #贝叶斯实质上也是一个二分类def loadDataSet():#数据格式 pos...
  • qiujiahao123
  • qiujiahao123
  • 2017-03-19 14:21
  • 553
    个人资料
    • 访问:39153次
    • 积分:832
    • 等级:
    • 排名:千里之外
    • 原创:40篇
    • 转载:4篇
    • 译文:6篇
    • 评论:12条
    最新评论