朴素贝叶斯
1.引入
- 我们要确定一件事,算法得出的结论,永远不是100%确定,更多的是判断出了一种"样本的标签更可能是某类的可能性",而非一种"确定".我们通过模型算法的某些规定,来强行让算法为我们返回一个固定的分类结果,在很多时候,我们也希望能够理解算法判断出结果的可能性概率,例如:文章分类,希望可以得出该文章可以分到财经,体育,社会这几种不同类别的概率,而不是返回一个分类结果
- 我们都希望使用真正的概率来衡量可能性,即有礼真正的概率算法朴素贝叶斯
- 朴素贝叶斯:是一种直接衡量标签和数据之间的概率关系的有监督学习算法,是一种专注分类的算法。朴素贝叶斯的算法根源基于概率论和数理统计,因此它是概率模型
2.什么是贝叶斯推断/算法
2.1含义
- 贝叶斯推断(Bayesian inference)是一种统计学方法,用来估计统计量的某种性质。它是贝叶斯定理(Bayes’ theorem)的应用。英国数学家托马斯·贝叶斯(Thomas Bayes)在1763年发表的一篇论文中,提出的这个定理
- 贝叶斯推断与其他统计学推断方法截然不同。它建立在主观判断的基础上,即,你可以不需要客观的证据,先估计一个值,然后根据实际结果不断修正。
- 贝叶斯推断需要大量的计算,因此历史上很长一段时间,无法得到广泛应用。只有计算机诞生以后,它才获得真正的重视。人们发现,许多统计量是无法事先进行客观判断的,而互联网时代出现的大型数据集,再加上高速运算能力,为验证这些统计量提供了方便,也为应用贝叶斯推断创造了条件,它的威力正在日益显现。
2.1先验概率与后验概率
2.2什么是贝叶斯推断
- 贝叶斯推断含义:我们先预估一个"先验概率"(预估堵车的概率),然后加入实验结果(发生事故造成的堵车),看这个实验到底是增强还是减弱了"先验概率",由此得到更接近事实的"后验概率"
- 实验结果是后验概率,也就是事实上发生堵车的概率,如果先验概率越接近后验概率,说明在不知情的情况下发生堵车概率也就是先验概率越准确
2.3最大似然估计
理解案例
- 有一天,有个病人到医院看病。他告诉医生说自己头痛,然后医生根据自己的经验判断出他是感冒了,头痛的原因有很多种啊,比如感冒,中风,脑溢血,脑残。那么医生凭什么说那个病人就是感冒呢?
- 从概率的角度来研究这个问题。医生的大脑是这么工作的,他计算了一下:
- P(感冒|头痛)【头痛由感冒引起的概率】
- P(中风|头痛)【头痛由中风引起的概率】
- P(脑溢血|头痛)【头痛由脑溢血引起的概率】
- …
- 然后这个计算机大脑发现,P(感冒|头痛)是最大的,因此就认为呢,病人是感冒了。这个就叫最大似然估计。
- 后验概率
- P(感冒|头痛),P(中风|头痛),P(脑溢血|头痛),属于后验概率
- 事实上,后验概率起到了一个用途,根据一些发生的事实,分析结果产生的最可能结果,然后才能针对性地去解决问题
- 先验概率使用:
- p(脑残|头疼)=头疼中脑残的人数/头疼的人数,但是头疼样本数据好找,头疼人中脑残的样本不好找
- 就可以用先验概率
- 概率公式p(B|A)=P(A|B)P(B)/P(A)【B表示脑残,A表示头疼】
- p(脑残|头疼)=p(头疼|脑残)p(脑残)/p(头疼)【p(头疼|脑残)就是先验概率】
- 总结:后验概率在实际中一般是很难直接计算出来,相反先验概率就比较容易,因此一般会利用先验概率来计算后验概率
2.4朴素贝叶斯的优缺点
3.概率基础
-
概念:概率定义为一件事情发生的可能性。
-
概率计算准则:联合概率和条件概率
-
注意:
- 上述的求概率公式只是用于各个特征之间是条件独立(每个特征值之间没有必然关系)的。条件不独立指的是特征之间有关联的,例如:体重和是否喜欢吃零食这两个之间有关联
- 朴素贝叶斯只是适用于特征之间是条件独立的情况下,否则分类效果不好。这里朴素指的就是条件独立
- 朴素贝叶斯主要被广泛的适用于文档分类中
4.朴素贝叶斯的分类
4.1高斯分布
-
高斯分布【正态分布】
- 高斯分布就是当频率直方图的区间变得特别小时的拟合曲线,像座小山峰,其中两端特别小,越往中间越高
- 高斯分布有时也被称为正态分布,是一种在自然界大量的存在的、最为常见的分布形式。 现实生活中有很多现象均服从高斯分布,比如收入,身高,体重等,大部分都处于中等水平,特别少和特别多的比例都会比较低。
- 高斯分布是一种连续型变量的概率分布
- 一个事件发生(样本属于哪个类别)的概率也满足高斯分布
-
高斯分布概率密度公式
- 参数 μ 表示均值,𝛔参数表示标准差,均值对应正态分布的中间位置,标准差衡量了数据围绕均值分散的程度
-
小例子1
- 对大量的人口进行身高数据的随机采样,并且将采得的身高数据画成柱状图,得到如下图图形。这张图模拟展示了334个成人的统计数据,可以看出图中最多出现的身高在180cm左右2.5cm的区间里。
4.2高斯模型
- 通过假设p(xi|Y)是服从高斯分布,来估计训练集数据的每个样本特征分到每个类别Y上的条件概率,对于每个样本特征下的对应每个分类结果概率的取值,高斯朴素贝叶斯公式
4.3sklearn文本特征提取
TfidfVectorizer(求出Ni/N的值) - 什么是TF-IDF
- 在信息检索中,
tf-idf (词频-逆文档频率)是一种统计方法,用以评估一个单词在一个文档集合或语料库中的重要程度 - 原理
TF-IDF 实际上是TF*IDF ,主要思想是:如果某个词或短语在一篇文章中出现的频率高(即TF高),并且在其他文章中很少(IDF高),则认为此词或者短语具有很好的类别区分能力,适合用来分类 TF :表示一个给定词语t在一篇给定文档d中出现的频率.TF 越高,则词语t对文章d越重要,TF 越低,则词语t对文章d越不重要。
TF(w) =(词w在文档中出现的次数)/(文档的总词数)==p(F1|C)=Ni/N IDF :逆向文章频率.有些词可能在文本中频繁出现,但是不重要,即信息量少,如is,of,"我"等,这些单词在语料库中出现的频率也相当大,就可以利用这一点,降低其权重
4.4多项式模型
-
小例子1
-
计算出一篇文章为某些类别的概率(文章是固定的,在该文章为前提下求出所属类别的概率,因此文章就是概率论中条件概率的条件),最大概率的类型就是该文章的类别。 -
一篇文档为财经和军事的概率计算如下 w为给定文档的特征,也就是文章中拆分出来的不同词语
c为文档的类别(财经,体育,军事......)
P(财经|词1,词2,词3)==》P(词1,词2,词3|财经)*P(财经)/P(W)
P(军事|词1,词2,词3)==》P(词1,词2,词3|军事)*P(军事)/P(W)
上述两个公式中都有P(W),可以抵消,则公式简化为:
P(词1,词2,词3|财经)*P(财经)==》P(W|C)*P(C)
P(词1,词2,词3|军事)*P(军事)==>P(W|C)*P(C)
P(C):每个文档类别的概率(某个文档类别文章的数量/总文档数量)
P(W|C):给定类别下特征的概率,此处的特征就是预测文档中出现的词语
P(W|C)的计算方法:
P(F1|C)=Ni/N:F1为预测文档中的某一个词,C为指定的类别
Ni:F1这个词在C类别所有文档中出现的次数
N:所属类别C下的文档所有词出现的次数和
-
小例子2
-
注意:属于某个类别的概率为0,不合适 -
API
from sklearn.naive_bayes import MultinomialNB MultinomialNB(alpha=1.0,fit_piror=True,class_prior=None)
4.5伯努利模型
|