朴素贝叶斯法
分类算法的内容是要求给定特征,让我们得出类别,这也是所有分类问题的关键
基本概念:
贝叶斯定理P(H|D)=P(D|H)*P(H)/P(D)

我们通过对上面式子,可以把一个难求的问题变成三个相对简单的求解
朴素贝叶斯算法是假设各个特征之间相互独立
H类别集合(向量) D项集合(特征集合)其中每一个元素都是待分类项分类算法的任务就是构造分类器f。
P(H):先验 也就是样本中类别的概率 在没有任何数据的时候我所认为参数的分布
P(D|H):似验 样本中得到的
P(H|D):后验 需要最后计算的 由于需要高纬积分,很难计算
P(D):证据
由1可知,特征向量 X 的维度不一定是一维的,可能是多维的:X=(x1,x2,x3,....xn)
因此样本类别Y的取值 这里写图片描述 是跟 样本的每一个维度取值有关的。因此可由贝叶斯定理得出下式:

则似验计算如右:

则根据全概率公式,证据:

一般来说,证据概率是一个常量
1.3.1首先我们要先抽象出偏差的概念
如果一个硬币总是正面朝上,我们就说它的偏差是1,各占一半就是0.5
1.3.2选择似然
1.求极大似然函数估计值的一般步骤:
(1) 写出似然函数;
(2) 对似然函数取对数,并整理;(此步骤根据题意可以省略)
(3) 求导数;
(4) 解似然方程 。
1.3.3选择先验
1.3.4计算后验
1.3.5画图
朴素贝叶斯分类的正式定义如下:
1、设X = {a1,a2,...,am}为一个待分类项,而每个a为x的一个特征属性。
2、有类别集合C={y1,y2,...yn}
3、计算P(y1|x),P(y2|x),.....P(yn|x)
4、如果 P(Yk|x) = max{P(y1|x),P(y2|x),.....P(yn|x)},则xshuyuYk
那么现在的关键就是如何计算第3步中的各个条件概率。我们可以这么做:
1、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。
2、统计得到在各类别下各个特征属性的条件概率估计。即

3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:

因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有:

我们来看一个直观的例子:已知:在夏季,某公园男性穿凉鞋的概率为1/2,女性穿凉鞋的概率为2/3,并且该公园中男女比例通常为2:1,问题:若你在公园中随机遇到一个穿凉鞋的人,请问他的性别为男性或女性的概率分别为多少?
从问题看,就是上面讲的,某事发生了,它属于某一类别的概率是多少?即后验概率。
设:由已知可得:男性和女性穿凉鞋相互独立,所以
(若只考虑分类问题,只需要比较后验概率的大小,的取值并不重要)。
由贝叶斯公式算出:

朴素贝叶斯分类的优缺点
优点:
算法逻辑简单,易于实现(算法思路很简单,只要使用贝叶斯公式转化!)
分类过程中时空开销小(假设特征相互独立,只会涉及到二维存储)
缺点:
理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。
而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进。
总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。
高斯朴素贝叶斯模型
在高斯朴素贝叶斯模型中,特征向量X的特征 通常为 连续型变量,并且假定所有特征的取值是符合高斯分布的
在多项分布朴素贝叶斯模型中,特征向量X的特征 通常为 离散型变量,并且假定所有特征的取值是符合多项分布的,可用于文本分类。
在伯努利朴素贝叶斯模型中,每个特征的取值是布尔型,或以0和1表示,所以伯努利模型中,每个特征值为0或者1。
在文本分类中,多项分布朴素贝叶斯是以文本的单词为粒度(以特征为粒度)进行计算的,即计算该单词特征在对应的文档中出现的次数,而伯努利朴素贝叶斯是为文本为粒度(以样本为粒度)进行计算的,即计算存在该单词特征的文档个数。因此伯努利朴素贝叶斯模型在一定程度上忽略了同一个文档中的单词的词频
import numpy#二项分布生成器a = numpy.random.binomial(n=10, p=0.7, size = 100)print(a)a_count= 0EX=0Ex=0Dx=0for i in a: while i == 7: a_count = a_count+1 break Ex = Ex+a[i]for j in a: Dx = (a[i]-Ex)*(a[i]-Ex)print(a_count)print(Ex/100)print(Dx/100)
蒙特卡洛模拟和马尔可夫链
网友评论