前言
朴素贝叶斯。我们称之为“朴素”,是因为整个形式化过程只做最原始,最简单的假设。
1,基于贝叶斯决策理论的分类方法
贝叶斯决策理论的核心思想,就是在统计数据中,选择最高概率的决策。考虑点有几种
a,使用knn,进行1000次距离计算 (计算量太大)
b,使用决策树,分布延x轴,y轴划分数据 (不会非常成功)
c,计算数据点属于每个类别的概率,并进行比较 (选择这个)
2,条件概率
先验概率P(A):在不考虑任何情况下,A事件发生的概率
条件概率P(B|A):A发生的情况下,B发生的概率
后验概率P(A|B):B发生之后,对A事件发生的概率的重新评估。后验概率就是条件概率
例子理解:
已知:A桶{gray:2,black:2} B桶{gray:1,black:2},验证条件概率公式
p(gray|bucketB)=B桶中的灰色球1/3
p(gray and bucketB) 所有球中既是灰色球又在B桶中的概率 1/7
p(bucketB) 小球在B桶的概率3/7
p(gray|bucketB)=p(gray and bucketB)/p(bucketB)
3,使用条件概率来分类
全概率:如果A和构成样本的一个划分,那么事件B的概率为:A和
的概率分别乘以B对这两个事件的概率之和
基于条件概率,全概率的贝叶斯定律数学公式
朴素贝叶斯算法
基于”特征之间是独立的"这一朴素假设,应用贝叶斯定理的监督学习算法
真正需要比较的是数据点来自哪个类别。比如比较p(c1|x,y) 和p(c2|x,y)。
应用贝叶斯准则得到
使用这些定义,可以定义贝叶斯准则为:
如果p(c1|x,y)>p(c2|x,y) ,那么属于类别c1;反之属于c2
4,使用朴素贝叶斯进行文档分类
机器学习的一个重要应用就是文档的自动分类。在文档分类中,整个文档(如一封电子邮件)是实例,而电子邮件的某些元素则构成特征。朴素贝叶斯是用于文档分类的常用算法
朴素贝叶斯的一般过程
(1)收集数据:可以使用任何方法。
(2)准备数据:需要数值型或者布尔型数据
(3)分析数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好
(4)训练算法:计算不同的独立特征的条件概率
(5)测试算法:计算错误率
(6)使用算法:一个常见的朴素贝叶斯应用是文档分类。可以在任意的分类场景中使用朴素贝叶斯
5,使用python进行文本分类
从文本中获取特征值,这里的特征值就是词条
5.1,准备数据:从文本中构建词向量
给定一篇文档,该文档就会变为词向量
from numpy import *
#创建一些简单的实验样本
def loadDataSet():
postingList=[['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'],
['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'],
['my', 'dalmation', 'is', 'so', 'cute', 'I', 'love', 'him'],
['stop', 'posting', 'stupid', 'worthless', 'garbage'],