分类算法(1)——朴素贝叶斯

来源:互联网 发布:贷款app源码 编辑:程序博客网 时间:2024/06/13 17:46

分类算法之朴素贝叶斯

==============================================

朴素贝叶斯算法是一种基于贝叶斯公式的分类算法。原理相对比较简单。

贝叶斯公式:

这里写图片描述

朴素贝叶斯就是围绕着这个公式产生的。
一个简单分类问题Class{c1,c2}
对于一条数据X其包含若干属性设为a1a2a3(简单起见这里只列举三个)。
则朴素贝叶斯就是要计算x属于c1c1两类的概率,然后择优选取。
这两个概率都由贝叶斯公式导出,这里只列举x属于C1的情况。
P(x属于C1)的概率可以表述为:

P(xc1)=P(x|c1)P(c1)

这里我们假设各属性之间独立。
则公式可以进一步简化为:
P(xc1)=P(a1|c1)P(a2|c1)P(a3|c1)P(c1)

其中
P(ai|c1)=P(aic1)p(c1)

至此基本概念已经结束。

这里先给一个例子:
比如要预测一个房子的价格(50K 或者 <50K)为了方便起见,我们用0表示前一类,1表示后一类。
房子的价格受很多因素影响,比如是否有阳台,是否在市区,是否在6层以下等等。简单起见,这里取三个属性,房间个数{1,2,3}, 房子面积(60,140),是否有阳台(0,1)。分别设为a1a2a3
朴素贝叶斯是一种监督式学习算法。故需要通过训练数据来学习得到一个模型,接着通过该模型来预测。
首先选择一个些待分类数据作为训练数据。计算其中各标签的比例。即可得到上述所有的p(ci)值这里对应p(0)p(1)。之后同理可以计算各个属性在某个具体类别中的比例。比如计算价格为50K的房子中房间个数为1的比例,等等。对应到上面的P(aicj)。至此模型就可以构建完全。

有人可能会问到之前关于房子面积是连续型数据应该怎么处理。这里提供两种思路。

  1. 将连续型数据分成若干小区间,将每个区间看做一个点,即可与离散型数据统一起来。
  2. 利用概率分布计算分布曲线上对应的值。一般来说使高斯分布模型。
原创粉丝点击