目录
原理解释
1.贝叶斯原理是英国数学家托马斯.贝叶斯提出的.
2.正向概率是N个球里有M个黑球,我们第一次取出黑球的概率.
逆向概率是我们事先不知道球的数量,而是通过我们摸出来球的颜色,来判断袋子里球的比例.
3.先验概率:通过经验来判断事情发生的概率,比如夏天下雨的概率多.
后验概率:发生结果之后,推测原因的概率.比如某人患有"贝叶死",那么他患病的原因可能是A,B,C.患有病的概率是因为原因A的概率就是后验概率.
条件概率: P(A/B),事件A 在另一个事件B 已经发生的条件下发生的概率.
似然函数(likelihood function):似然就是可能性的意思,她是关于统计参数的函数可以把模型训练的过程理解为求参数估计的过程.
4.贝叶斯原理:求解后验概率
贝叶斯公式推导:
6.朴素贝叶斯是一种简单但是极为强大的预测建模算法
朴素贝叶斯它之所以朴素就是它假设属性是相互独立的,因此对实际情况有所约束,如果属性之间相互关联,那么分类的准确率会降低.不过在大部分情况下,朴素贝叶斯的分类效果都不错.
朴素贝叶斯公式:
7.朴素贝叶斯常用于文本分类,尤其是对英文分类效果好.它还常用于垃圾文本过滤,情感预测,推荐系统.
8.朴素贝叶斯分类器工作流程:
(1)准备阶段:确定特征属性,获取训练样本.
(2)训练阶段:计算每个类别 p(Cj),对每个特征计算所有划分的条件概率 p(A/Cj) .
(3)应用阶段:对每个类别计算 p(A/Cj).p(Cj),其最大值时分类 Cj 即为类别
9.sklearn (scikit-learn) 给我们提供了3个朴素贝叶斯分类算法. 高斯朴素贝叶斯:特征变量是连续变量,符合高斯分布(正态分布),比如人的身高,物体的长度. 多项式朴素贝叶斯:特征变量是离散变量,符合多项分布,在文档分类中特征变量体现在一个单词出现的次数,或者单词的TF-IDF 值等. 伯努利朴素贝叶斯:特征变量是布尔变量,符合0/1分布,在文档中特征是单词是否出现. 文本分类用伯努利朴素贝叶斯与多项式朴素贝叶斯. 伯努利朴素贝叶斯是以文件为粒度.单词出现为1,不出现为0. 而多项式朴素贝叶斯是以单词为粒度,计算某文件的具体出现次数. 高斯朴素贝叶斯适合处理连续变量,且符合高斯(正态)分布. 10.TF-IDF :是一种统计方法,用来评估某个词语都一个文件集或文档库中其中一个文件的重要程度. TF:term frequency 词频,一个词的重要程度与它在这个文档中出现的次数成正比 IDF:inverse document frequency 逆向文档频率 ,指一个单词在文档中的区分度.它认为淡出出现在文章的次数越少,就越能通过这个单词吧文档与其他文档区分来 TF-IDF是TF与IDF的乘积.这样我们倾向于找到TF,IDF都高的单词进行区分.即这个单词在一个文档中 出现频率高,同事又很少出现在其他文档中,这样的单词适合分类. 词频TF = 单词出现的次数/这个文档的总单词数 逆向文档频率 IDF = log(文档总数 / 该单词出现的文档数+1) --分母+1是防止分母为0 在 sklearn 中我们直接使用 TfidfVectorizer 类,它可以帮我们计算单词 TF-IDF 向量的值。在这个类中,取 sklearn 计算的对数 log 时,底数是 e,不是 10。 11.对文档分类的阶段: 准备阶段:分词,加载停用词,计算单词权重 分类阶段:生成分类器,分类器预测,计算正确率 12 相对于其他更复杂的方法,朴素贝叶斯学习期和分类器都很快,分类条件的解耦意味着可以独立把每个特征 视为一维分布来估计.这样反过来可以缓解维度灾难带来的问题. 13.虽然朴素贝叶斯是一个很好的分类器,但是不是很好的估计器,不能太重视从predict_proba输出的概率.
离散数据案例
针对这个问题,我们先确定一共有 3 个属性,假设我们用 A 代表属性,用 A1, A2, A3 分别为身高 = 高、体重 = 中、鞋码 = 中。
一共有两个类别,假设用 C 代表类别,那么 C1,C2 分别是:男、女,在未知的情况下我们用 Cj 表示。
那么我们想求在 A1、A2、A3 属性下,Cj 的概率,用条件概率表示就是 P(Cj|A1A2A3)。根据贝叶斯的公式,我们可以得出:
因为一共有 2 个类别,所以我们只需要求得 P(C1|A1A2A3) 和 P(C2|A1A2A3) 的概率即可,然后比较下哪个分类的可能性大,就是哪个分类结果。
在这个公式里,因为 P(A1A2A3) 都是固定的,我们想要寻找使得 P(Cj|A1A2A3) 的最大值,就等价于求 P(A1A2A3|Cj)P(Cj) 最大值。
我们假定 Ai 之间是相互独立的,那么:P(A1A2A3|Cj)=P(A1|Cj)P(A2|Cj)P(A3|Cj)
然后我们需要从 Ai 和 Cj 中计算出 P(Ai|Cj) 的概率,带入到上面的公式得出 P(A1A2A3|Cj),最后找到使得 P(A1A2A3|Cj) 最大的类别 Cj。
我分别求下这些条件下的概率:P(A1|C1)=1/2, P(A2|C1)=1/2, P(A3|C1)=1/4,P(A1|C2)=0, P(A2|C2)=1/2, P(A3|C2)=1/2,所以 P(A1A2A3|C1)=1/16, P(A1A2A3|C2)=0。
因为 P(A1A2A3|C1)P(C1)>P(A1A2A3|C2)P(C2),所以应该是 C1 类别,即男性。
连续数据案例
问题: 由于身高、体重、鞋码都是连续变量,不能采用离散变量的方法计算概率。而且由于样本太少,所以也无法分成区间计算。怎么办呢?
这时,可以假设男性和女性的身高、体重、鞋码都是正态分布,通过样本计算出均值和方差,也就是得到正态分布的概率密度函数。
https://zhidao.baidu.com/question/428047892.html
有了密度函数,就可以把值代入,算出某一点的密度函数的值(概率)。
比如,男性的身高是均值 179.5、标准差为 3.697 的正态分布。所以男性的身高为 180 的概率为 0.1069。
你可以使用 EXCEL 的 NORMDIST(x,mean,standard_dev,cumulative) 函数 NORMDIST(180,179.5,3.697,0)=0.1069
-cumulative取值为逻辑值,即 False 或 True。它决定了函数的形式。当为 TRUE 时,函数结果为累积分布;为 False 时,函数结果为概率密度
同理我们可以计算得出男性体重为 120 的概率为 0.000382324,男性鞋码为 41 号的概率为 0.120304111。所以我们可以计算得出:P(A1A2A3|C1)=P(A1|C1)P(A2|C1)P(A3|C1)=0.10690.0003823240.120304111=4.9169e-6 同理我们也可以计算出来该人为女的可能性:P(A1A2A3|C2)=P(A1|C2)P(A2|C2)P(A3|C2)=0.000001474890.0153541440.120306074=2.7244e-9 很明显这组数据分类为男的概率大于分类为女的概率。