sklearn.naive_bayes.MultinomialNB()函数解析

除了MultinomialNB之外,还有GaussianNB就是先验为高斯分布的朴素贝叶斯,BernoulliNB就是先验为伯努利分布的朴素贝叶斯。

class sklearn.naive_bayes.MultinomialNB(alpha=1.0, 
										fit_prior=True, 
										class_prior=None)

MultinomialNB假设特征的先验概率为多项式分布,即如下式:
在这里插入图片描述

其中, P ( X j = X j l ∣ Y = C k ) P(X_j = X_{jl} | Y = C_k) P(Xj=XjlY=Ck) 是第 k k k 个类别的第 j j j 维特征的第 l l l 个取值条件概率。 m k m_k mk是训练集中输出为第 kkk 类的样本个数。λλλ 为一个大于0的常数,尝尝取值为1,即拉普拉斯平滑,也可以取其他值。

参数:

  • alpha:浮点型可选参数,默认为1.0,其实就是添加拉普拉斯平滑,即为上述公式中的λ ,如果这个参数设置为0,就是不添加平滑;
  • fit_prior:布尔型可选参数,默认为True。布尔参数fit_prior表示是否要考虑先验概率,如果是false,则所有的样本类别输出都有相同的类别先验概率。否则可以自己用第三个参数class_prior输入先验概率,或者不输入第三个参数class_prior,让MultinomialNB自己从训练集样本来计算先验概率,此时的先验概率为 P ( Y = C k ) = m k / m P(Y=C_k)=m_k/m P(Y=Ck)=mk/m。其中m为训练集样本总数量, m k m_k mk为输出为第k类别的训练集样本数。
  • class_prior:可选参数,默认为None。

在这里插入图片描述

还有其他参数:

在这里插入图片描述

例子:

>>> import numpy as np
>>> X = np.random.randint(5, size=(6, 100))
>>> y = np.array([1, 2, 3, 4, 5, 6])
>>> from sklearn.naive_bayes import MultinomialNB
>>> clf = MultinomialNB()
>>> clf.fit(X, y)
MultinomialNB()
>>> print(clf.predict(X[2:3]))
[3]
  • 2
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值