系统学习朴素贝叶斯-三种模型

  1. 概率论相关数学公式
    条件概率:这里写图片描述
    相互独立事件:这里写图片描述
    贝叶斯定理:这里写图片描述
  2. 朴素贝叶斯分类器
    众所周知,朴素贝叶斯是一种简单但是非常强大的线性分类器。它在垃圾邮件分类,疾病诊断中都取得了很大的成功。它只所以称为朴素,是因为它假设特征之间是相互独立的,但是在现实生活中,这种假设基本上是不成立的。那么即使是在假设不成立的条件下,它依然表现的很好,尤其是在小规模样本的情况下。但是,如果每个特征之间有很强的关联性和非线性的分类问题会导致朴素贝叶斯模型有很差的分类效果。
    朴素贝叶斯指的两方面:
    –|朴素:各个特征之间相互独立
    –|贝叶斯:基于贝叶斯定理
    证明过程
    1.设事件A1,B1,B2,在B1、B2同时发生的前提下,A发生的概率为这里写图片描述
    2.设B1,B2相互独立,则上式可以变换:这里写图片描述
    3.于是得到如下公式:
    这里写图片描述
    4.推广:
    假设有F1,F2,F3,..Fn个特征,即n维特征
    有C1,C2,C3,…Cm个类别,m维类别,得到模型如下:
    这里写图片描述
    C可以分别取每个类别,C1,C2等等,P(F1 | C1)即代表在C1所属类别下F1特征出现的条件概率。最后求出每个类别出现的概率,取最大值即是预测值最有可能出现的类别。
    由于分母项是常数,对每一项都相同,因此在求值的过程中我们常将其忽略。
  3. 举个例子
    根据症状和职业来判定其最可能得什么病。
    这里写图片描述
    现在有一个人,是一个打喷嚏的建筑工人,请问患上感冒的概率有多大?
    P(感冒|打喷嚏,建筑工人)=P(打喷嚏|感冒)P(建筑工人|感冒)*P(感冒)/P(打喷嚏,建筑工人)=2/3 1/3 * 3/6 /(3/6 * 2/6)=0.667
    同理可以求得患其他病的原因,求其最大值即可得到最可能患的病,其中分母是可以不用求得,这里我也求了一下。
    注意: 在我们求条件概率时可能会出现 某一特征出现可能性为0的情况,这样概率就是0了,因此我们需要做平滑处理。
    –|拉普拉斯平滑
    在求先验概率:这里写图片描述
    其中K为类别的个数,lambda为算子,当lambda取1时即为拉普拉斯平滑,当取值在[0,1]时为Lidstone平滑。
    求后验概率(即条件概率):
    设M维特征的第j维有L个取值,则某维特征的某个取值ajl,在给定某分类ck下的条件概率为:
    这里写图片描述
    其中Li为第i维特征最大取值

  4. 代码实现:

这里附上GitHub网址可以下载:
https://github.com/hangdj/native_bayes/blob/master/native_bayes_1.py
# coding:utf-8
import numpy
def loadDataSet():  # 构建一个简单的文本集,以及标签信息 1 表示侮辱性文档,0表示正常文档
        postingList = [['my', 'dog', 'has', 'flea', 'problem', 'help', 'please'],
                       ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],
                       ['my', 'dalmation', 'is', 'so', 'cute', 'I', 'love', 'him'],
                       ['stop', 'posting', 'ate', 'my', 'steak', 'how', 'to', 'stop', 'him'],
                       ['mr', 'licks', 'ate', 'my', 'steak', 'how', 'to', 'stop', 'him'],
                       ['quit', 'buying', 
  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值