贝叶斯定理
设X是代表一条数据(一个对象),由n个属性A1,A2,…,An构成;H为某种假设,如数据X属于某个特定的类C。P(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)
- 设D是包含数据和其所属类的集合。每条数据由n维属性向量X=x1,x2,…,xn表示。
- 假设数据集D有m个类C1,C2,…,Cm,用朴素贝叶斯预测某一条数据X属于哪一类就变成了概率问题,即属于哪一类的概率最大。
P(Ci|X)=P(X|Ci)P(Ci)P(X)由于P(X)对于所有类为常数,所以只需要求出最大的P(X|Ci)P(Ci)。
- 如果类的先验概率未知,通常假定属于哪个类是等概率的,即P(C1)=P(C2)=⋯=P(Cm),否则可以用P(Ci)=|Ci|/|D|来估计。
- 在属性很多的情况下,计算P(X|Ci)的开销可能会非常大,为了降低开销,可以做类条件独立的朴素假定。因此有如下等式。
P(X|Ci)=n∏k=1P(xk|Ci)=p(x1|Ci)p(x2|Ci)⋯p(xn|Ci)对于数据的每个属性Ak,考察其值是离散的还是连续的,其中xk代表数据X的Ak属性的值。
- 如果属性Ak的值是离散的,则P(xi|Ck)为数据集D中属于Ci类且属性Ak的值是xk的数据的数量除以属于Ci类数据的数量。
- 如果属性Ak的值是连续的,通常假定此连续的属性值是服从均值为μ,标准差为σ的高斯分布,由下式定义
g(x,μ,σ)=1√2πσe−(x−μ)22σ2P(xk|Ci)=g(xk,μCi,σCi)其中μCi和σCi是属于Ci类数据属性Xk均值和标准差。
- 对于每个类Ci 计算P(X|Ci)P(Ci)最后得出最大的Ci就是X的预测所属类
拉普拉斯校准
如果对类C1的数据,其属性值x1=1的数量为0,即某一项P(x1|Ci)=0,就会导致P(X|C_i)=0,不管其它后验概率P(x2…n|Ci)是多少。为了避免这种情况发生,使用拉普拉斯校准:
如果对q个计数都加上1,则必须记住在用于计算概率的对应分母上加上q。
例如:假设在某数据集D中,属于类C1(有购买计算机行为)的数据有10000条,其中对于属性X1(收入等级),收入低的数据有0条,收入中等的数据有8000条,收入高的数据有2000条。
不使用拉普拉斯校准的情况下,这些事件发生的概率为0,0.8,0.2。
使用拉普拉斯校准分别为0+110000+3,8000+110000+3,2000+110000+3。
校准后的概率与未校准的概率很接近,而且避免了0概率值。
Gitalking ...