我们知道朴素贝叶斯模型从数据中学习其参数,这些参数是条件概率表。 我正在尝试找出如何在 sklearn 中访问此类表。 我可以有你的建议吗?
您可以获取每个(特征、类)的条件对数概率和发生计数。
基于文档的示例:
import numpy as np
X = np.random.randint(2, size=(6, 10))
Y = np.array([1, 1, 1, 2, 1, 2])
X
#array([[0, 1, 1, 0, 1, 1, 0, 1, 1, 0],
[1, 1, 1, 0, 1, 1, 0, 0, 0, 0],
[1, 0, 1, 1, 0, 0, 1, 0, 0, 0],
[1, 0, 1, 1, 0, 1, 0, 0, 0, 1],
[0, 0, 1, 0, 0, 0, 0, 1, 1, 1],
[1, 1, 0, 1, 0, 0, 1, 0, 0, 0]])
from sklearn.naive_bayes import BernoulliNB
clf = BernoulliNB()
clf.fit(X, Y)
clf.feature_count_
#
array([[2., 2., 4., 1., 2., 2., 1., 2., 2., 1.],
[2., 1., 1., 2., 0., 1., 1., 0., 0., 1.]])
clf.feature_log_prob_
#
array([[-0.69314718, -0.69314718, -0.18232156, -1.09861229, -0.69314718,
-0.69314718, -1.09861229, -0.69314718, -0.69314718, -1.09861229],
[-0.28768207, -0.69314718, -0.69314718, -0.28768207, -1.38629436,
-0.69314718, -0.69314718, -1.38629436, -1.38629436, -0.69314718]])