机器学习基础算法-朴素贝叶斯

1、为什么可以使用bayes对未知数据进行分类
  1. 首先要了解bayes的概率、条件概率,以及将条件概率应用到分类中
  2. bayes的概率是一个逆向概率,详细内容查看bayestheory.md
  3. 可以使用bayes主要是因为在知道某个条件的基础上,可以反推某一事件发生的概率
  4. 在机器学习中使用的样本数据就是我们提前知道的一些信息,这些就是已知的信息
  5. 这些已知的信息在bayes的定理中,就是先验概率的影响因子
  6. 利用bayes定理计算所有分类的概率,哪个概率高,这个未知的数据就是这个分类
2、bayes分类过程
  1. 根据所有训练文章(在课本中就是所有句子)搞了一个训练的词表,这个词表中包含了文章中出现的所有单词
  2. 将每个句子转换为数值型的词向量,词向量的长度就是词表的长度
  3. 根据分类标签,构建每一类别的出现的单词总数(这里面每个单词单独计算总数),构建结果是一个长度为词表长度的词向量
  4. 计算每一个类别的条件概率(每一类出现的每个单词总数/这类的总词数)
  5. 当有新的句子进行计算的时候,将这个新的句子转换为词向量,计算每个类别的概率,这个概率哪个大,就是哪个类别
3、困惑

我不知道为什么书上面用下面的代码计算某一个未知类别

p1 = sum(vec2Classify * p1Vec) + log(pClass1)  
p0 = sum(vec2Classify * p0Vec) + log(1.0 - pClass1)
if p1 > p0:
    return 1
else:
    return 0
上面变量的含义:vec2Classify待分类词向量,p1Vec为类别A的概率向量,p0Vec为类别B的概率向量,pClass1为A的先验概率

上面个我不懂的 地方在于为什么p1Vec可以和待分类向量直接乘,按照贝叶斯公式,应该先计算p(vec2Classify)和p(vec2Classify|A),这两个还没有求,就直接乘,这个是为什么?

上面的疑惑,我后期再学习的时候,再补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值