文本分类实战
本文主要是针对实战来进行设置的,假设你之前已经了解了朴素贝叶斯和支持向量机(SVM
)的基础知识了。现在想从代码的层面去实战文本分类,那么这篇文章可以加深你对这两个算法的理解。
1.使用朴素贝叶斯进行文本分类
在sklearn
的实现中,涉及到朴素贝叶斯的主要是三个类:
1.1 GaussianNB
类
GaussianNB
假设特征的先验概率为正态分布,即满足下式:
P ( X j = x j ∣ Y = C k ) = 1 2 π σ 2 e x p ( − ( x j − μ k ) 2 2 σ k 2 ) P(X_j=x_j|Y=C_k)=\frac{1}{\sqrt{2\pi\sigma^2}}exp(-\frac{(x_j-\mu_k)^2}{2\sigma_k^2}) P(Xj=xj∣Y=Ck)=2πσ21exp(−2σk2(xj−μk)2)
其中 C k C_k Ck为Y的第k类类别。 μ k \mu_k μk和 σ k 2 \sigma_k^2 σk2为需要从训练集估计的值。
GaussianNB
会根据训练集求出 μ k \mu_k μk和 σ k 2 \sigma_k^2 σk2。 μ k \mu_k μk为在样本类别 C k C_k Ck中,所有 X j X_j Xj的平均值。 σ k 2 \sigma_k^2 σk2为在样本类别CkCk中,所有 X j X_j Xj的方差。
GaussianNB
类的主要参数仅有一个,即先验概率priors ,对应Y的各个类别的先验概率 P ( Y = C k ) P(Y=C_k) P(Y=Ck)</