朴素贝叶斯(Naive Bayes)是基于贝叶斯定理与特征条件独立性假设的分类算法
贝叶斯定理定义如下:
P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) (1) P(Y|X) = \frac {P(X|Y)P(Y)}{P(X)} \tag{1} P(Y∣X)=P(X)P(X∣Y)P(Y)(1)
其中 P ( Y ∣ X ) P(Y|X) P(Y∣X)为后验概率, P ( X ∣ Y ) P(X|Y) P(X∣Y)为条件概率,即似然函数(概率), P ( Y ) P(Y) P(Y)为先验概率
根据条件独立性假设可知各个特征之间相互条件独立,因此式(1)可写为:
P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) = ∏ i = 1 n P ( x i ∣ Y ) P ( Y ) P ( X ) P(Y|X) = \frac {P(X|Y)P(Y)}{P(X)} = \prod_{i=1}^{n}P(x_i|Y) \frac {P(Y)}{P(X)} P(Y∣X)=P(X)P(X∣Y)P(Y)=i=1∏nP(xi∣Y)P(X)P(Y)
其中 n n n为特征数目, x i x_i xi为 X X X在 i i i个特征上的取值, Y ∈ { c 0 , c 1 , . . . c k } Y\in \{ c_0, c_1,...c_k\} Y∈{c0,c1,...ck}, k k k为类别数量
由于在给定数据集下, P ( X ) P(X) P(X)对所有 P ( x i ∣ Y ) P(x_i|Y) P(xi∣Y)和 P ( Y ) P(Y) P(Y)都是相同的, 所以 P ( Y ∣ X ) = ∏ i = 1 n P ( x i ∣ Y ) P ( Y ) P ( X ) ∝ ∏ i = 1 n P ( x i ∣ Y ) P ( Y ) P(Y|X) = \prod_{i=1}^{n}P(x_i|Y) \frac {P(Y)}{P(X)}∝\prod_{i=1}^{n}P(x_i|Y) {P(Y)} P(Y∣X)=i=1∏nP(xi∣Y)P(X)P(Y)∝i=1∏nP(xi∣Y)P(Y)
朴素贝叶斯是一种概率生成模型,可用最大似然估计(MLE)或最大后验估计(MAP)对条件概率 P ( X ∣ Y ) P(X|Y) P(X∣Y)和先验概率 P ( Y ) P(Y) P(Y)进行参数求解;然后基于求解模型,对给定数据求出最大的后验概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)即为最终输出类别
其中 P ( Y ) P(Y) P(Y)一般是输入数据中各类别的相对频率,而 P ( X ∣ Y ) P(X|Y) P(X∣Y)可假设为高斯分布,多项式分布,伯努利分布等
参考官方文档:点击查看
当 P ( X ∣ Y ) P(X|Y) P(X∣Y)假设为高斯分布时,称作高斯朴素贝叶斯可通过sklearn库中naive_bayes下的GaussianNB类实现
有关参数:
使用案例
>>> import numpy as np
>>> from sklearn.naive_bayes import GaussianNB
>>> clf = GaussianNB() #实例化高斯朴素贝叶斯模型对象
>>> X = np.array([[1, 1], [3, 2], [4, 7], [2, 5]]) #数据
>>> y = np.array([1, 1, 0, 0]) #类别
>>> clf.fit(X, y) #拟合求解
>>> clf.var_
[[1.00..., 1.00...], [1.00..., 0.25...]]
>>> clf.theta_
[[3.00..., 6.00...], [2.00..., 1.50...]]
>>> clf.classes_
[0, 1]
>>> clf.class_prior_
[0.5, 0.5]
>>> clf.epsilon_
5.68...e-9
>>> clf.n_features_in_
2
>>> clf.predict_proba(X)
[[0.00..., 1.00...], [0.00..., 0.99...],
[1.00..., 0.00...], [1.00..., 0.00...]]
>>> clf.predict([[1, 3], [5, 2]])
[1, 1]
>>> clf.score(X, y)
1.0
另外naive_bayes下通过MultinomialNB类实现 P ( X ∣ Y ) P(X|Y) P(X∣Y)为多项式分布;通过BernoulliNB类实现 P ( X ∣ Y ) P(X|Y) P(X∣Y)为伯努利分布;此外对 P ( X ∣ Y ) P(X|Y) P(X∣Y)的其余假设,点击查看