前置知识

条件概率
贝叶斯公式
(贝叶斯模型还是很好理解的,主要基于高中就学到过的条件概率。)

贝叶斯定理

P(A),P(B)分别是事件A,B发生的概率,而P(A|B)是在事件A在事件B发生的前提下发生的概率,P(AB)是事件A,B同时发生的概率。那么我们的有公式:

那么贝叶斯定理是:

注:P(AB)=P(A)P(B)的充分必要条件是事件A和事件B相互独立。用通俗的语言讲就是,事件A是否发生不会影响到事件B发生的概率。

朴素贝叶斯

设样本属性集合为x{x1,x2,x3…xn},n为数目,xi为取值;设c为类别集合,把样本划分为某一类,c={y1,y2,y3…ym}.
假设属性特征相互独立,贝叶斯公式可写为:

拉普拉斯平滑系数

朴素贝叶斯API

这些是基于应用贝叶斯定理和强(朴素)特征独立性假设的监督学习方法。

naive_bayes.BernoulliNB(*[, alpha, ...])Naive Bayes classifier for multivariate Bernoulli models.naive_bayes.CategoricalNB(*[, alpha, ...])Naive Bayes classifier for categorical features.naive_bayes.ComplementNB(*[, alpha, ...])The Complement Naive Bayes classifier described in Rennie et al. (2003).naive_bayes.GaussianNB(*[, priors, ...])Gaussian Naive Bayes (GaussianNB).naive_bayes.MultinomialNB(*[, alpha, ...])Naive Bayes classifier for multinomial models.

MultinomialNB多项式模型的朴素贝叶斯分类器。

多项式Naive Bayes分类器适用于具有离散特征的分类(例如,文本分类的字数)。多项式分布通常需要整数特征计数。然而,在实践中,分数计数(如tf-idf)也可能有效。

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

参数:

  • alpha: float, default=1.0
    添加剂(拉普拉斯/利德斯通)平滑参数(0表示无平滑)。
  • fit_prior: bool, default=True
    是否学习课堂先验概率。如果错误,将使用统一的优先权。
  • class_prior: array-like of shape (n_classes,), default=None
    类别的先验概率。如果指定,则不根据数据调整优先级。

BernoulliNB多元贝努利模型的朴素贝叶斯分类器

与MultinomialNB一样,该分类器适用于离散数据。不同之处在于,虽然MultinomalNB可以处理出现次数,但BernoulliNB是为二进制/布尔特征设计的。

class sklearn.naive_bayes.BernoulliNB(*, alpha=1.0, binarize=0.0, fit_prior=True, class_prior=None

参数:

  • binarize: float or None, default=0.0
    样本特征的二值化(映射到布尔值)阈值。如果无,则假定输入已经包含二进制矢量。

CategoricalNB分类特征的朴素贝叶斯分类器。

分类朴素贝叶斯分类器适用于具有分类分布的离散特征的分类。每个特征的类别都是从分类分布中得出的。

class sklearn.naive_bayes.CategoricalNB(*, alpha=1.0, fit_prior=True, class_prior=None, min_categories=None)

参数:

  • min_categories:int or array-like of shape (n_features,), default=None
    每个功能的最小类别数。
    integer:将每个要素的最小类别数设置为每个要素的n_categories。
    array-like:shape(n_features,)其中n_categories[i]包含输入的第i列的最小类别数。
    None(default):根据训练数据自动确定类别数。

ComplementNB互补朴素贝叶斯分类器。

互补朴素贝叶斯分类器旨在纠正标准多项式朴素贝叶斯分类器所做的“严重假设”。它特别适合不平衡的数据集。

class sklearn.naive_bayes.ComplementNB(*, alpha=1.0, fit_prior=True, class_prior=None, norm=False)

参数:

  • norm: bool, default=False
    是否执行权重的第二次规格化。默认行为反映了在Mahout和Weka中发现的实现,它们不遵循本文表9中描述的完整算法。

GaussianNB高斯朴素贝叶斯

可以通过partial_fit在线更新模型参数。

class sklearn.naive_bayes.GaussianNB(*, priors=None, var_smoothing=1e-09)[source]

参数:

  • priors:array-like of shape (n_classes,)
    类别的先验概率。如果指定,则不根据数据调整优先级。
  • var_smoothing:float, default=1e-9
    所有特征中最大方差的一部分,添加到方差中以保持计算稳定性。

朴素⻉叶斯优缺点

优点:

  • 朴素⻉叶斯模型发源于古典数学理论,有稳定的分类效率
  • 对缺失数据不太敏感,算法也⽐较简单,常⽤于⽂本分类
  • 分类准确度⾼,速度快

缺点:

  • 由于使⽤了样本属性独⽴性的假设,所以如果特征属性有关联时其效果不好
  • 需要计算先验概率,⽽先验概率很多时候取决于假设,假设的模型可以有很多种,因此在某些时候会由于假设 的先验模型的原因导致预测效果不佳

参考

1.黑马学习

机器学习模型5——贝叶斯分类器相关推荐

  1. 机器学习实验 - 朴素贝叶斯分类器

    目录 一.报告摘要 1.1 实验要求 1.2 实验思路 1.3 实验结论 二.实验内容 2.1 方法介绍 2.2 实验细节 2.2.1 实验环境 2.2.2 实验过程 2.2.3 实验与理论内容的不同 ...

  2. 机器学习算法 - 朴素贝叶斯分类器

    ​ 一.算法简介 1.1 背景 监督学习分为生成模型 (generative model) 与判别模型 (discriminative model) 判别模型:SVM, LR, KNN, NN, CR ...

  3. 机器学习:朴素贝叶斯分类器,决策函数向量化处理,mask使用技巧

    文章目录 前面实现的朴素贝叶斯分类器,决策函数是非向量化的: 借助于numpy向量化处理,相当于并行计算,注意mask使用技巧,用途较广: 前面实现的朴素贝叶斯分类器,决策函数是非向量化的: 前面提到 ...

  4. 机器学习实战 朴素贝叶斯分类器

    基于概率论的分类方法: 朴素贝叶斯 我的微信公众号: s406205391; 欢迎大家一起学习,一起进步!!! k-近邻算法和决策树会给出"该数据属于哪一类"的明确回答.不过,分类 ...

  5. 0基础讲解机器学习算法-朴素贝叶斯分类器

    朴素贝叶斯分类器可以说是最经典的基于统计的机器学习模型了.首先,暂且不管贝叶斯是什么意思,朴素这个名字放在分类器中好像有所深意. 一查,发现这个分类器的英文是"Naïve Bayes&quo ...

  6. 机器学习笔记(七)贝叶斯分类器

    7.贝叶斯分类器 7.1贝叶斯决策论 贝叶斯决策论(Bayesiandecision theory)是概率框架下实施决策的基本方法.对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如 ...

  7. 机器学习-4.朴素贝叶斯分类器

    EduCoder:机器学习-朴素贝叶斯分类器 第1关:条件概率 第2关:贝叶斯公式 第3关:朴素贝叶斯分类算法流程 编程要求: 根据提示,完成fit与predict函数,分别实现模型的训练与预测.(P ...

  8. python 贝叶斯分类器sklearn_使用sklearn自带的贝叶斯分类器进行文本分类和参数调优...

    数据挖掘入门与实战 公众号: datadw Part 1: 本篇内容简介 在前一篇文章完整手写一个朴素贝叶斯分类器,完成文本分类,我们使用首先假设在文档中出现的单词彼此独立,利用贝叶斯定理,完成了一个 ...

  9. 第九课.朴素贝叶斯分类器

    目录 朴素贝叶斯算法原理 朴素贝叶斯参数估计 极大似然估计 贝叶斯估计 朴素贝叶斯算法流程 实验:Numpy实现朴素贝叶斯分类器 朴素贝叶斯算法原理 若P(X)P(X)P(X)表示事件XXX发生的概率 ...

最新文章

  1. Android 中文 API (27) —— SeekBar.OnSeekBarChangeListener
  2. swift3.0 Runtime 增加属性
  3. html弹窗页面控制大小,使用JS弹出新窗口,并设置窗口的大小和位置等相关属性,传递参数...
  4. 文件系统对性能的影响
  5. throw()使用小结
  6. 图解:为什么非公平锁的性能更高?
  7. 走向.NET架构设计—第五章—业务层模式,原则,实践(后篇)
  8. 关于项目404解决方法:前提条件:项目路径都是正确的
  9. 2019年第五届计蒜之道复赛总结
  10. MySQL下载安装、配置与使用(win7x64)
  11. java基础 泛型类的定义
  12. rar linux下载64位下载地址,Linux中下载WinRAR并使用它解压rar文件
  13. c语言实验报告评语大全,c语言实验报告(学生).doc
  14. 微软输入法数字有间隔_Word 2016中使用微软拼音输入法,换行后输入数字、标点时会没有输入进去,需要再输入一次...
  15. 使用hexo+gitee免费搭建个人博客全网最详细
  16. matlab 按照字符串运行,matlab中将字符串视为语句运行的方法——eval()函数
  17. c语言程序设计精髓 第13周练兵题
  18. 寒假宅喵java学习
  19. GitHub无法访问下载
  20. 秋招面试题系列- - -Java工程师(十一)

热门文章

  1. ASP.NET MVC 5 - 给电影表和模型添加新字段
  2. 数据库优化的四大方法
  3. tuxedo错误码6_tuxedo错误
  4. python画图坐标轴自定义符号文字等
  5. 安装eli5库的踩雷
  6. cisco2960升级ios并更新配置
  7. FarPoint.Win.Spread 自定义表头
  8. 新手刚开始运营shopee,要做什么有利于店铺发展?
  9. 怎么把xml文件到url post方法 android,如何在android中使用http post发送xml文件。我在哪里把xml文件放在代码中...
  10. 【python 可视化】数据透视表的用法及画饼图