Processing math: 100%

朴素贝叶斯

贝叶斯定理

X是代表一条数据(一个对象),由n个属性A1,A2,,An构成;H为某种假设,如数据X属于某个特定的类CP(H|X) 是在已知X的几个属性下,X属于某个类C的概率。贝叶斯定理如下: P(H|X)=P(X|H)P(H)P(X)

其中,P(H|X)是在条件X下,H的后验概率,P(H)H的先验概率。

朴素贝叶斯(Naive Bayesian)

  1. D是包含数据和其所属类的集合。每条数据由n维属性向量X=x1,x2,,xn表示。
  2. 假设数据集D有m个类C1,C2,,Cm,用朴素贝叶斯预测某一条数据X属于哪一类就变成了概率问题,即属于哪一类的概率最大。 P(Ci|X)=P(X|Ci)P(Ci)P(X)
    由于P(X)对于所有类为常数,所以只需要求出最大的P(X|Ci)P(Ci)
  3. 如果类的先验概率未知,通常假定属于哪个类是等概率的,即P(C1)=P(C2)==P(Cm),否则可以用P(Ci)=|Ci|/|D|来估计。
  4. 在属性很多的情况下,计算P(X|Ci)的开销可能会非常大,为了降低开销,可以做类条件独立的朴素假定。因此有如下等式。 P(X|Ci)=nk=1P(xk|Ci)=p(x1|Ci)p(x2|Ci)p(xn|Ci)
    对于数据的每个属性Ak,考察其值是离散的还是连续的,其中xk代表数据XAk属性的值。
    • 如果属性Ak的值是离散的,则P(xi|Ck)为数据集D中属于Ci类且属性Ak的值是xk的数据的数量除以属于Ci类数据的数量。
    • 如果属性Ak的值是连续的,通常假定此连续的属性值是服从均值为μ,标准差为σ的高斯分布,由下式定义 g(x,μ,σ)=12πσe(xμ)22σ2
      P(xk|Ci)=g(xk,μCi,σCi)
      其中μCiσCi是属于Ci类数据属性Xk均值和标准差。
  5. 对于每个类Ci 计算P(X|Ci)P(Ci)最后得出最大的Ci就是X的预测所属类

拉普拉斯校准

如果对类C1的数据,其属性值x1=1的数量为0,即某一项P(x1|Ci)=0,就会导致P(X|C_i)=0,不管其它后验概率P(x2n|Ci)是多少。为了避免这种情况发生,使用拉普拉斯校准:

如果对q个计数都加上1,则必须记住在用于计算概率的对应分母上加上q。

例如:假设在某数据集D中,属于类C1(有购买计算机行为)的数据有10000条,其中对于属性X1(收入等级),收入低的数据有0条,收入中等的数据有8000条,收入高的数据有2000条。

不使用拉普拉斯校准的情况下,这些事件发生的概率为0,0.8,0.2。

使用拉普拉斯校准分别为0+110000+38000+110000+32000+110000+3

校准后的概率与未校准的概率很接近,而且避免了0概率值。

qin

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏

打开支付宝扫一扫,即可进行扫码打赏哦

Gitalking ...