文章目录

  • 1.MultinomialNB
    • 实例
  • 2.GaussianNB
    • 实例
  • 3.BernoulliNB
    • 实例

1.MultinomialNB

假设特征的先验概率为多项式分布,多项式朴素贝叶斯分类器适用于具有离散特征的分类(例如,用于文本分类的字数统计)。多项式分布通常需要整数特征计数

from sklearn.naive_bayes import MultinomialNBMultinomialNB(*, alpha=1.0, fit_prior=True, class_prior=None)

Parameters

alpha : float, default=1.0
贝叶斯估计所添加的参数,alpha=1.0时,为拉普拉斯平滑

fit_prior : bool, default=True
表示是否要学习先验概率,如果为False,则所有样本输出时使用统一的类别先验概率(1 / 类别数)。
如果为True时,则可以利用第三个参数class_piror输入先验概率,或者不输入第三个参数,可以从训练集中自己计算先验概率,此时,第k个类别的先验概率=第k个类别样本数 / 总的样本数

class_prior : array-like of shape (n_classes,), default=None
该类的先验概率。
如果指定了先验,则不会根据数据进行调整。

Attributes

class_count_ : ndarray of shape (n_classes,)
拟合期间每个类别遇到的样本数

class_log_prior_ :ndarray of shape (n_classes, )
每个类的平滑经验对数概率

classes_ : ndarray of shape (n_classes,)
分类器已知的类标签

feature_count_ : ndarray of shape (n_classes, n_features)
拟合期间每个(类,特征)遇到的样本数。

feature_log_prob_ : ndarray of shape (n_classes, n_features)
给定一类特征的经验对数概率,P(x_i|y)

n_features_ : int
每个样本的特征数

Methods

fit(X, y[, sample_weight])
根据X,y拟合朴素贝叶斯分类器

get_params([deep])
获得这个估计器的参数

partial_fit(X, y[, classes, sample_weight])
根据一批样本在线更新参数

predict(X)
对测试向量X进行分类。

predict_log_proba(X)
返回测试向量X的对数概率估计

predict_proba(X)
返回测试向量X的概率估计

score(X, y[, sample_weight])
返回给定测试数据和标签上的准确率

set_params(**params)
设置此估算器的参数。

实例

>>> import numpy as np
>>> rng = np.random.RandomState(1)
>>> X = rng.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.GaussianNB

假设先验概率为高斯分布,GaussianNB为高斯朴素贝叶斯,可以通过partial_fit在线更新模型参数。

from sklearn.naive_bayes import GaussianNBGaussianNB(*, priors=None, var_smoothing=1e-09)

Parameters

priors : array-like of shape (n_classes,)
该类的先验概率。如果指定,则先验数据不会根据数据进行调整

var_smoothing : float, default=1e-9
所有特征的最大方差部分,已添加到方差中以提高计算稳定性。

Attributes

class_count_ : ndarray of shape (n_classes,)
每个类中观察到的训练样本数

class_prior_ : ndarray of shape (n_classes,)
每类的概率

classes_ : ndarray of shape (n_classes,)
分类器已知的类标签

epsilon_ : float
方差绝对相加值

sigma_ : ndarray of shape (n_classes, n_features)
每个类的每个特征的方差

theta_ : ndarray of shape (n_classes, n_features)
每个类的每个特征的均值

Methods
同上

实例

>>> import numpy as np
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> Y = np.array([1, 1, 1, 2, 2, 2])
>>> from sklearn.naive_bayes import GaussianNB
>>> clf = GaussianNB()
>>> clf.fit(X, Y)
GaussianNB()
>>> print(clf.predict([[-0.8, -1]]))
[1]
>>> clf_pf = GaussianNB()
>>> clf_pf.partial_fit(X, Y, np.unique(Y))
GaussianNB()
>>> print(clf_pf.predict([[-0.8, -1]]))
[1]

3.BernoulliNB

先验为伯努利分布的朴素贝叶斯;像MultinomialNB一样,此分类器适用于离散数据。区别在于,虽然MultinomialNB可以处理出现次数,但BernoulliNB是为二进制/布尔功能而设计的。

from sklearn.naive_bayes import BernoulliNBBernoulliNB(*, alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None)

Parameters

alpha : float, default=1.0
贝叶斯估计所添加的参数,alpha=1.0时,为拉普拉斯平滑

binarize : float or None, default=0.0
用于将样本特征二值化(映射为布尔值)的阈值。如果为None,则假定输入已经由二进制向量组成

fit_prior : bool, default=True
表示是否要学习先验概率,如果为False,则所有样本输出时使用统一的类别先验概率(1 / 类别数)。
如果为True时,则可以利用第三个参数class_piror输入先验概率,或者不输入第三个参数,可以从训练集中自己计算先验概率,

class_prior : array-like of shape (n_classes,), default=None
该类的先验概率。
如果指定了先验,则不会根据数据进行调整。

Attributes
其余与MultinomialNB一样

coef_ : ndarray of shape (n_classes, n_features)
镜像feature_log_prob_将伯努利解释为线性模型

intercept_ : ndarray of shape (n_classes,)
镜像class_log_prior_将伯努利解释为线性模型

Methods
同上

实例

>>> import numpy as np
>>> rng = np.random.RandomState(1)
>>> X = rng.randint(5, size=(6, 100))
>>> Y = np.array([1, 2, 3, 4, 4, 5])
>>> from sklearn.naive_bayes import BernoulliNB
>>> clf = BernoulliNB()
>>> clf.fit(X, Y)
BernoulliNB()
>>> print(clf.predict(X[2:3]))
[3]

如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论留言!


4.1 API : MultinomialNB、GaussianNB、BernoulliNB相关推荐

  1. 朴素贝叶斯的三个常用模型:高斯(GaussianNB)、多项式(multinomial model)、伯努利(Bernoulli model)

    文本分类 在文本分类中,假设我们有一个文档d∈X,X是文档向量空间(document space),和一个固定的类集合C={c1,c2,-,cj},类别又称为标签.显然,文档向量空间是一个高维度空间. ...

  2. 外网访问arm嵌入式linux_嵌入式Linux系统编程——文件读写访问、属性、描述符、API

    Linux 的文件模型是从 Unix 的继承而来,所以 Linux 继承了 UNIX 本身的大部分特性,然后加以扩展,本章从 UNIX 系统接口来描述 Linux 系统结构的特性. 操作系统是通过一系 ...

  3. 常用API(Object、String、StringBuffer、用户登陆注册)

    常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...

  4. Spring3.1新属性管理API:PropertySource、Environment、Profile

    2019独角兽企业重金招聘Python工程师标准>>> Spring3.1提供了新的属性管理API,而且功能非常强大且很完善,对于一些属性配置信息都应该使用新的API来管理.虽然现在 ...

  5. MSIL 教程(二):数组、分支、循环、使用不安全代码和如何调用Win32 API(转)...

    转自:http://www.cnblogs.com/Yahong111/archive/2007/08/16/857574.html 续上文[翻译]MSIL 教程(一) ,本文继续讲解数组.分支.循环 ...

  6. Singleton、MultiThread、Lib——实现单实例无锁多线程安全API

        前阵子写静态lib导出单实例多线程安全API时,出现了CRITICAL_SECTION初始化太晚的问题,之后查看了错误的资料,引导向了错误的理解,以至于今天凌晨看到另一份代码,也不多想的以为s ...

  7. 转载-- http接口、api接口、RPC接口、RMI、webservice、Restful等概念

    http接口.api接口.RPC接口.RMI.webservice.Restful等概念 收藏 Linux一叶 https://my.oschina.net/heavenly/blog/499661 ...

  8. 饿了么高稳定、高性能、高可用、高容错API架构实践!

    什么是 API Everything? 先简单介绍一下 API,就是相当于前端比如 Web 访问到后端的服务接口,这中间有一个隔离,适配给外部各端进行访问,隔离是起到安全性的考虑,还有一个协议转换的考 ...

  9. 谈API网关的背景、架构以及落地方案--转

    原文地址:http://chuansong.me/n/465796751848 Chris Richardson曾经在他的博客上详细介绍过API网关,包括API网关的背景.解决方案以及案例.对于大多数 ...

  10. 人人都是 API 设计者:我对 RESTful API、GraphQL、RPC API 的思考

    有一段时间没怎么写文章了,今天提笔写一篇自己对 API 设计的思考.首先,为什么写这个话题呢?其一,我阅读了<阿里研究员谷朴:API 设计最佳实践的思考>一文后受益良多,前两天并转载了这篇 ...

最新文章

  1. 进入docker容器之后,找不到rosbag命令(ros已经安装)
  2. 谢百三:救市后股民应牢记教训?
  3. ubuntu的apt及pip自动下载换源脚本
  4. php使用fputcsv进行大数据的导出
  5. 华为鸿蒙乌鸦快爷,华为鸿蒙第一批名单
  6. cf 165 div2 解题报告
  7. 光棍节程序员闯关秀-解密
  8. 2012年3月份第2周51Aspx源码发布详情
  9. 讲解三层代码讲解(DLL规则层如何接收服务器的数据,又如何交回给服务器)--第四课(*****) DATE :2004-06-01...
  10. 详解JAVA的getBytes()方法
  11. Activiti学习之根据条件判断流程走向
  12. UE4 打包设置全屏模式和窗口模式方法
  13. 信息学奥赛一本通-2069:【例2.12 】糖果游戏
  14. 为迎接南京大学2012年110周年校庆 在京校友名录重编工作开始了
  15. scratch设计跑酷游戏_我如何使用Scratch设计游戏
  16. 利用jsp内置对象实现的简易聊天室
  17. 号称下一代互联网的 Web3.0 到底是个啥?
  18. Mac下安装MacPorts卡住了,“正在运行软件包脚本”,完美解决!
  19. 解决打开S7-PLCSIM Advanced V3.0报错NetGroup Packet Filter Driver (NPF)
  20. 笔记: 计算天区面积的方法

热门文章

  1. ASP.NET以编程的方式动态的添加Css引用
  2. SQL Server 2005混合模式登录配置
  3. SQL 和T-SQL学习(一)
  4. laravel 图片
  5. spring框架Annotation之CRUD
  6. 怎么用Excel来批量生成SQL语句
  7. 转载AWS 基础知识
  8. Eclipse JSP 页面设置 charset=UTF-8
  9. 前端Swiper滑动的时候最右一个反弹回去了
  10. .ashx文件与.ashx.cs