前言
本人大数据专业初入大三刚刚接触机器学习这一课程,最近在学习这本书《机器学习实战》。本书第四章的内容为基于概率论的分类方法,在经过几天的学习之中,发现要了解贝叶斯算法以及深层度了解其原理要比之前KNN算法和决策树算法要难一点,所以我没有那么着急更新下篇。先把要细致了解贝叶斯的算法的前提理论弄明白才能更好掌握使用贝叶斯分类器。因为本人之前学过概率论,但我这篇文章将化整为零,详细了解贝叶斯算法。
当然初入一些算法和机器学习的一些库还不是很熟练掌握,有待提升自己的编程结合能力。在此领域本人有诸多不明确疑问,可能文章会有些许错误,望大家在评论区指正,本篇文章错误将会不断更正维护。
一、条件概率
就是事件A在另外一个事件B已经发生条件下的发生概率。条件概率表示为P(A|B),读作“在B条件下A的概率”。
若是全集,A,B是其中的事件(子集),P表示事件发生的概率,则
联合概率
表示两个事件共同发生的概率。A与B的联合概率表示为 P(AB) 或者P(A,B),或者P(A∩B)。
条件概率可以这么理解为:
P(AB)/P(B)的意思:是事件B发生的条件之下,同时也共同发生了A事件和B事件的概率。很明显B事件是前提之下已经发生过的,在此基础下发生A事件之后必然发生了B事件,即为(A|B)。
事件A和事件B都为同一试验下所得到的不同数据集合,一般来说事件A和事件B都是有交集的。若没有交集则它们的条件概率为0.给出下图更容易理解:
二、乘法定律
设P(A)>0,则有P(AB)=P(B|A)P(A)=P(A|B)P(B)
设A、B、C为事件,且P(AB)>0,则有
P(AB)不容易直接求得,通常用P(A|B)x P(B)或P(B|A)x P(A)间接求得。
根据乘法定律我们可推广:
设A1、A2、....An为n个事件,n>=2,且P(A1A2A3...An-1)>0,则有:
三、全概率公式
内容:如果事件B1、B2、B3…Bn 构成一个完备事件组,即它们两两互不相容,其和为全集;并且P(Bi)大于0,则对任一事件A有
P(A)=P(A|B1)*P(B1) + P(A|B2)*P(B2) + ... + P(A|Bn)*P(Bn).
(或者:p(A)=P(AB1)+P(AB2)+...+P(ABn)).(其中A与Bn的关系为交)
下图可为P(A)=P(A|B1)*P(B1)+P(A|B2)*P(B2)+P(A|B3)*P(B3)
(中间蓝色部分为事件A)
全概率公式的主要用途在于它可以将一个复杂事件的概率计算问题,分解为若千个简单事件的概率计算问题,最后应用概率的可加性求出最终结果。由此我们便可开展对贝叶斯公式的计算。
四、贝叶斯公式
按照乘法法则:P(A∩B)=P(A)*P(B|A)=P(B)*P(A|B),可以立刻导出。如上公式也可变形为:P(B|A)=P(A|B)*P(B)/P(A)。
由此定义:设Λ为实验E的一个样本空间,A为E的事件,B1,B2....Bn为Λ的一个划分,且P(A)>0,P(Bi)>0(i=1,2...N),则
其中我们可以发现就是全概率公式中求的P(A),所以我们又可推得: (i=1,2....n)
得到这一步就可以做很多应用和预测了,我们挑选一道经典的例题:
(2).在仓库中随机地取一只元件,若已知取到的是合格品,为分析此合格品出自何厂,求此合格品出由两家工厂生产的概率分别是多少
这里就核对一下答案吧,
P(A)=0.868
P(B1|A)=0.39
P(B2|A)=0.61
不要用计算机自带的计算器写:
我怎么说我一直算不对....
五、先验概率和后验概率
我们根据以往的数据或者经验得到关于一个事件发生的概率,这个概率叫做先验概率。
在我们得到了先验概率之后,根据先验概率和现得的数据推算关于这件事发生的概率,这个概率为后验概率。
对于贝叶斯分类:
设X是类标号未知的数据样本。设H为某种假定,如数据样本X属于某特定的类C。对于分类问题,我们希望确定P(H|X),即给定观测数据样本X,假定H成立的概率。
P(H|X)=P(X|H)P(H)/P(X)
P(H)是先验概率,或者称H的先验概率。P(X|H)代表假设H成立的情况下,观察到X的概率。
P(H|X)是后验概率,或称条件X下的H的后验概率。
先验概率泛指一类事物发生的概率,通常根据以往的数据资料或者主观判断所确定的概率。
后验概率涉及的是某个特定条件下一个具体事物发生的概率。
六、朴素贝叶斯分类
朴素贝叶斯分类器是一系列以假设特征之间强(朴素)独立下运用贝叶斯定理为基础的简单概率分类器。该分类器模型会给问题实例分配用特征值表示的类标签,类标签取自有限集合。它不是训练这种分类器的单一算法,而是一系列基于相同原理的算法:所有朴素贝叶斯分类器都假定样本每个特征与其他特征都不相关。
工作过程:
每个数据样本用一个n维特征向量X={x1,x2...,xn}表示,分别描述对n个属性A1,A2...An样本的n个度量。
假定有m个类C1,C2,..,Cm,给定一个未知的数据样本X(即没有类标号),分类器将预测X属于具有最高后验概率(条件X下)的类)。也就是说,朴素贝叶斯分类将未知的样本分配给类Ci(1<=i<=m)当且仅当对任意的j=1,2,...,m,j不等于i。这样,最大化。其最大的类Ci称为最大后验假定。根据贝叶斯定理 (i=1,2....n)
由于P(X)对于所有类为常数,只需要最大即可。
如果Ci类的先验概率未知,则通常假定这些类是等概率的,即P(C1)=P(C2)=....=P(Cm),因此问题就转换为对P(X|Ci)的最大化(P(X|Ci))常被称为给定Ci时数据X的似然度,而使P(X|Ci)最大的假设Ci称为最大似然假设。否则,需要最大化P(X|Ci)*P(Ci)。注意,类的先验概率可以用P(Ci)=si/s计算,其中si是类Ci中的训练样本数,而s是训练样本总数。
给定具有许多属性的数据集,计算P(X|C1)的开销可能非常大。为降低计算P(X|C1)的开销,可以做类条件独立的偶素假定。
P(AB)=P(A)P(B)
给定样本的类标号,假定属性值互相条件独立,即在属性间,不存在依赖关系。
对未知样本X分类,也就是对每个类C1,计算P(X|C1)*P(C1)。
样本X被指派到C1,当且仅当P(C1|X)>P(C1|X),1<=j<=m,j不等于i。
最后根据一个实例来推断一下吧~
总结
这篇文章很多参照了重庆大学余俊良老师的讲解,这些基本概念还是很好理解的,下一篇将开始模式算法和补充了。