朴素贝叶斯模型

朴素贝叶斯模型是一组非常简单快速的分类方法,通常适用于维度非常高的数据集。因为运行速度快,可调参数少。是一个快速粗糙的分类基本方案。

naive Bayes classifiers

贝叶斯分类

朴素贝叶斯分类器建立在贝叶斯分类方法的基础上。数学基础是贝叶斯定理。 一个描述统计量条件概率关系的公式。

在贝叶斯分类中,我们希望确定一个具有某些特征的样本 属于 某类标签的概率。 通常记为 P(L|特征)





需要确定俩种标签,定义为L1和L2. 计算俩个标签的后验概率的比值

现在需要一种模型。帮我们计算每个标签的P(特征|Li).这种模型被称为生成模型。

因为它可以训练处生成输入数据的假设随机过程(概率分布)

为每中标签设置生成模型 是贝叶斯分类器训练过程的主要部分。

之所以称为朴素 。是因为 如果对每种标签的生成模型进行非常简单的假设,就能找到每种类型 生成模型的近似解,然后就可以使用贝叶斯分类。

不同类型的朴素贝叶斯分类器是有对数据的不同假设决定的。

高斯朴素贝叶斯

Gaussian naive Bayes 。 假设每个标签的数据都服从简单的高斯分布。

原始数据如下:

假设数据服从高斯分布,且变量无协方差 (线性无关)

只需要找出每个标签的所有样本点均值 和 标准差。再定义一个高斯分布。就可以拟合模型了。

每个椭圆曲线表示每个标签的高斯生成模型。 越靠近椭圆中心的可能性越大。

通过每种类型的生成模型,可以计算出任意数据点的似然估计 P (特征|L1) 。

然后根据贝叶斯定理计算出 后验概率比值, 从而确定每个数据点可能性最大的标签。

评估器 GaussianNB实现:

预测标签:

可以在分类结果中看到一条稍显 弯曲 的边界

通常:高斯朴素贝叶斯的边界 是二次方曲线。

多项式朴素贝叶斯

假设特征是由一个简单多项式分布 生成的。 多项分布式可以描述 各种类型样本 出现次数的概率。

  • 文本分类

    特征:分类文本的单词出现次数。

    执行了15分钟。。。淦。

选择四类新闻,下载训练集和测试集

看其中一篇新闻:

为了让这些数据能用于机器学习,需要将每个字符串的内容转换成数值向量。

将模型应用到训练数据上。

用混淆矩阵 统计 结果。

Python数据科学手册-机器学习:朴素贝叶斯分类的更多相关文章

  1. Python数据科学手册-机器学习介绍

    机器学习分为俩类: 有监督学习 supervised learning 和 无监督学习 unsupervised learning 有监督学习: 对数据的若干特征与若干标签之间 的关联性 进行建模的过 ...

  2. Python数据科学手册-机器学习:线性回归

    朴素贝叶斯是解决分类任务的好起点,线性回归是解决回归任务的好起点. 简单线性回归 将数据拟合成一条直线. y = ax + b , a 是斜率, b是直线截距 原始数据如下: 使用LinearRegr ...

  3. Python数据科学手册-机器学习: k-means聚类/高斯混合模型

    前面学习的无监督学习模型:降维 另一种无监督学习模型:聚类算法. 聚类算法直接冲数据的内在性质中学习最优的划分结果或者确定离散标签类型. 最简单最容易理解的聚类算法可能是 k-means聚类算法了. ...

  4. Python数据科学手册-机器学习: 流形学习

    PCA对非线性的数据集处理效果不太好. 另一种方法 流形学习 manifold learning 是一种无监督评估器,试图将一个低维度流形嵌入到一个高纬度 空间来描述数据集 . 类似 一张纸 (二维) ...

  5. Python数据科学手册-机器学习: 主成分分析

    PCA principal component analysis 主成分分析是一个快速灵活的数据降维无监督方法, 可视化一个包含200个数据点的二维数据集 x 和 y有线性关系,无监督学习希望探索x值 ...

  6. Python数据科学手册-机器学习: 决策树与随机森林

    无参数 算法 随机森林 随机森林是一种集成方法,集成多个比较简单的评估器形成累计效果. 导入标准程序库 随机森林的诱因: 决策树 随机森林是建立在决策树 基础上 的集成学习器 建一颗决策树 二叉决策树 ...

  7. Python数据科学手册-机器学习: 支持向量机

    support vector machine SVM 是非常强大. 灵活的有监督学习算法, 可以用于分类和回归. 贝叶斯分类器,对每个类进行了随机分布的假设,用生成的模型估计 新数据点 的标签.是属于 ...

  8. Python数据科学手册-机器学习之特征工程

    特征工程常见示例: 分类数据.文本.图像. 还有提高模型复杂度的 衍生特征 和 处理 缺失数据的填充 方法.这个过程被叫做向量化.把任意格式的数据 转换成具有良好特性的向量形式. 分类特征 比如房屋数 ...

  9. Python数据科学手册-机器学习之模型验证

    模型验证 model validation 就是在选择 模型 和 超参数 之后.通过对训练数据进行学习.对比模型对 已知 数据的预测值和实际值 的差异. 错误的模型验证方法. 用同一套数据训练 和 评 ...

随机推荐

  1. 10分钟实现dotnet程序在linux下的自动部署

    背景 一直以来,程序署都是非常麻烦且无聊的事情,在公司一般都会有 devops 方案,整个 cicd 过程涉及的工具还是挺多的,搭建起来比较麻烦.那么对于一些自己的小型项目,又不想搭建一套这样的环境, ...

  2. ansible概述、安装、模块介绍

    一.Ansible介绍 Ansible是一 个基于Python开发的配置管理和应用部署工具,现在也在自动化管理领域大放异彩. 它融合了众多老牌运维工具的优点,Pubbet和Saltstack能实现的功 ...

  3. 如何使用API接口批量查询图书信息?

    之前小编讲过在Excel表格中根据ISBN查询图书信息可以使用我们的图书查询公式,但偶然间发现少部分书籍由于年份久远导致查不出来,今天小编就教给大家另一种查询图书信息的方式,即通过API接口返回的JS ...

  4. 【我的面试-01】Web前端开发实习岗-面试题总结

    简单开头 首先技术面试官会根据简历里所写的项目和个人掌握技术栈提问(我不知道已经改过多少次简历了,因为前期投简历是真的是沉在茫茫大海,捞漂流瓶都捞不到的那种) 我的技术栈:(Vue还在苦苦的自学当中, ...

  5. Linux学习系列--用户(组)新增、查看和删除

    在实际的工作中,在接触Linux的用户组管理的时候,一般来说都是在系统开建设的时候设置好,root权限由特定的负责人保管用户密码,避免误操作带来不必要的麻烦. 在具体使用的时候,会利用相关的命令设置一 ...

  6. 重写并自定义依赖的原生的Bean方法

    转载请注明出处: 在项目开发过程中,往往是直接应用很多jar包中依赖且声明好的Bean,拿来即用,但很多场景也需要对这些原生的Bean 进行自定义,定制化封装,这样在项目使用的过程中,可以使用自定义的 ...

  7. mysql防SQL注入搜集

    SQL注入 例:脚本逻辑 $sql = "SELECT * FROM user WHERE userid = $_GET[userid] "; 案例1:SELECT * FROM ...

  8. 【Java中的线程】java.lang.Thread 类分析

    进程和线程 联想一下现实生活中的例子--烧开水,烧开水时是不是不需要在旁边守着,交给热水机完成,烧开水这段时间可以去干一点其他的事情,例如将衣服丢到洗衣机中洗衣服.这样开水烧完,衣服洗的也差不多了.这 ...

  9. Spark: Cluster Computing with Working Sets

    本文是对spark作者早期论文<Spark: Cluster Computing with Working Sets>做的翻译(谷歌翻译),文章比较理论,阅读起来稍微有些吃力,但读完之后总 ...

  10. ROS机械臂 Movelt 学习笔记4 | Move Group 接口 Python

    Python 的使用总是比 C++ 简单许多,Move Group 的 Python 接口更为便捷,也为使用者提供了很多用于操纵机器人和机械臂的函数,能够和 C++ 接口实现相同的功能: 设置机械臂的 ...