MapReduce之基于符号数据的朴素贝叶斯分类
简介
个类{
}中的某一类。NBC有很多应用,如垃圾邮件过滤和文档分类等。
以垃圾邮件分类为例。使用NBC的垃圾邮件过滤器将把各个电子邮件分配到两个簇之一:垃圾邮件和非垃圾邮件。由于NBC是一个监督型学习方法,它有两个不同的阶段:
- 阶段1:训练
这个阶段使用一个有限的数据样本实例集合中的训练数据建立一个分类器(在下一个阶段使用)。这就是所谓的监督型学习方法,即从一个样本学习,然后使用这个信息来完成新数据分类。
训练数据
朴素贝叶斯分类器生成器
朴素贝叶斯分类器
- 阶段2:分类
在这个阶段中,使用训练数据和贝叶斯定理将新数据分类到阶段1中明确的某一个类别中
分类过程
新数据=={
}
类C是{}的一个成员
新数据X
朴素贝叶斯分类器
类C
符号训练数据
以如下数据为例,数据来自《Machine Learning》
示例符号训练数据
天气 | 温度 | 湿度 | 风力 | 是否可以打球(分类) |
Sunny | Hot | High | Weak | No |
Sunny | Hot | High | Strong | No |
Overcast | Hot | High | Weak | Yes |
Rain | Mild | High | Weak | Yes |
Rain | Cool | Normal | Weak | Yes |
Rain | Cool | Normal | Strong | No |
Overcast | Cool | Normal | Strong | Yes |
Sunny | Mild | High | Weak | No |
Sunny | Cool | Normal | Weak | Yes |
Rain | Mild | Normal | Weak | Yes |
Sunny | Mild | Normal | Strong | Yes |
Overcast | Mild | High | Strong | Yes |
Overcast | Hot | Normal | Weak | Yes |
Rain | Mild | High | Strong | No |
- ”是否可以打球“列是分类列,这里有两个类别{yes,no}
- 每个数据集有4个属性,天气(outlook),温度(temperature),湿度(humidity),风力(wind),各个数据实例是一个
维属性值向量:
- 训练数据的大小 为14,
- 目标是使用这个训练数据建立一个分类系统,分类系统会根据天气条件来确定是否可以打网球
朴素贝叶斯分类器
先用简单的形式化表示来描述贝叶斯理论:令A和B是两个事件,P(A)和P(B)为A和B的概率(均不为0),则
由此得出贝叶斯理论的一般形式:令A是一个互斥事件序列{},其并集是整个样本空间,令E是某个事件且
,对于所有的
,
,则:
对于所有的
贝叶斯理论用于分类的形式化描述如下:令是一个需要分类的数据实例,令
是不同类别的一个有限集合,使用贝叶斯理论,可以预测一个给定
的类别
;
在第三步和第四步的转换过程中,由于分母不会改变,在整个计算过程中作为一个常量,所以去掉了分母。
朴素贝叶斯示例
在这个NBC示例中,如何对以下输入数据分类
答案是Yes还是No,对于这个例子,有两个类:
根据贝叶斯分类,可以有:
在这里:
如果,则
的分类为
=Yes,否则,分类为
=No
下面是
的条件概率计算:
(打球)的9中情况中,有4中情况
,因此,
,还可以表示为
的9中情况中,有2中情况
,因此,
,还可以表示为
同理可以表示为,
接下来是计算
的条件概率:
的5种情况中,有0中情况
,因此,
,同理表示为
的5中情况中,有2种情况
,因此,
,同理可以表示为
同理
插入这些值,可以得到:
由于,则将X分类为
在下一篇博客中,将讲解如何利用MapReduce去实现这个过程