我们知道朴素贝叶斯模型通过数据学习其参数,即条件概率表。我正在尝试找出如何在sklearn中访问这些表。您有何建议?
回答:
您可以获取每个(特征,类别)组合的条件对数概率和出现次数。
基于文档的示例:
import numpy as npX = 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 BernoulliNBclf = 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]])