Python数据科学手册-机器学习:朴素贝叶斯分类
朴素贝叶斯模型
朴素贝叶斯模型是一组非常简单快速的分类方法,通常适用于维度非常高的数据集。因为运行速度快,可调参数少。是一个快速粗糙的分类基本方案。
naive Bayes classifiers
贝叶斯分类
朴素贝叶斯分类器建立在贝叶斯分类方法的基础上。数学基础是贝叶斯定理。 一个描述统计量条件概率关系的公式。
在贝叶斯分类中,我们希望确定一个具有某些特征的样本 属于 某类标签的概率。 通常记为 P(L|特征)


需要确定俩种标签,定义为L1和L2. 计算俩个标签的后验概率的比值
现在需要一种模型。帮我们计算每个标签的P(特征|Li).这种模型被称为生成模型。
因为它可以训练处生成输入数据的假设随机过程(概率分布)
为每中标签设置生成模型 是贝叶斯分类器训练过程的主要部分。
之所以称为朴素 。是因为 如果对每种标签的生成模型进行非常简单的假设,就能找到每种类型 生成模型的近似解,然后就可以使用贝叶斯分类。
不同类型的朴素贝叶斯分类器是有对数据的不同假设决定的。
高斯朴素贝叶斯
Gaussian naive Bayes 。 假设每个标签的数据都服从简单的高斯分布。
原始数据如下:

假设数据服从高斯分布,且变量无协方差 (线性无关)
只需要找出每个标签的所有样本点均值 和 标准差。再定义一个高斯分布。就可以拟合模型了。

每个椭圆曲线表示每个标签的高斯生成模型。 越靠近椭圆中心的可能性越大。
通过每种类型的生成模型,可以计算出任意数据点的似然估计 P (特征|L1) 。
然后根据贝叶斯定理计算出 后验概率比值, 从而确定每个数据点可能性最大的标签。
评估器 GaussianNB实现:

预测标签:

可以在分类结果中看到一条稍显 弯曲 的边界
通常:高斯朴素贝叶斯的边界 是二次方曲线。
多项式朴素贝叶斯
假设特征是由一个简单多项式分布 生成的。 多项分布式可以描述 各种类型样本 出现次数的概率。
- 文本分类
特征:分类文本的单词出现次数。
执行了15分钟。。。淦。

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

看其中一篇新闻:

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

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

用混淆矩阵 统计 结果。

Python数据科学手册-机器学习:朴素贝叶斯分类的更多相关文章
- Python数据科学手册-机器学习介绍
机器学习分为俩类: 有监督学习 supervised learning 和 无监督学习 unsupervised learning 有监督学习: 对数据的若干特征与若干标签之间 的关联性 进行建模的过 ...
- Python数据科学手册-机器学习:线性回归
朴素贝叶斯是解决分类任务的好起点,线性回归是解决回归任务的好起点. 简单线性回归 将数据拟合成一条直线. y = ax + b , a 是斜率, b是直线截距 原始数据如下: 使用LinearRegr ...
- Python数据科学手册-机器学习: k-means聚类/高斯混合模型
前面学习的无监督学习模型:降维 另一种无监督学习模型:聚类算法. 聚类算法直接冲数据的内在性质中学习最优的划分结果或者确定离散标签类型. 最简单最容易理解的聚类算法可能是 k-means聚类算法了. ...
- Python数据科学手册-机器学习: 流形学习
PCA对非线性的数据集处理效果不太好. 另一种方法 流形学习 manifold learning 是一种无监督评估器,试图将一个低维度流形嵌入到一个高纬度 空间来描述数据集 . 类似 一张纸 (二维) ...
- Python数据科学手册-机器学习: 主成分分析
PCA principal component analysis 主成分分析是一个快速灵活的数据降维无监督方法, 可视化一个包含200个数据点的二维数据集 x 和 y有线性关系,无监督学习希望探索x值 ...
- Python数据科学手册-机器学习: 决策树与随机森林
无参数 算法 随机森林 随机森林是一种集成方法,集成多个比较简单的评估器形成累计效果. 导入标准程序库 随机森林的诱因: 决策树 随机森林是建立在决策树 基础上 的集成学习器 建一颗决策树 二叉决策树 ...
- Python数据科学手册-机器学习: 支持向量机
support vector machine SVM 是非常强大. 灵活的有监督学习算法, 可以用于分类和回归. 贝叶斯分类器,对每个类进行了随机分布的假设,用生成的模型估计 新数据点 的标签.是属于 ...
- Python数据科学手册-机器学习之特征工程
特征工程常见示例: 分类数据.文本.图像. 还有提高模型复杂度的 衍生特征 和 处理 缺失数据的填充 方法.这个过程被叫做向量化.把任意格式的数据 转换成具有良好特性的向量形式. 分类特征 比如房屋数 ...
- Python数据科学手册-机器学习之模型验证
模型验证 model validation 就是在选择 模型 和 超参数 之后.通过对训练数据进行学习.对比模型对 已知 数据的预测值和实际值 的差异. 错误的模型验证方法. 用同一套数据训练 和 评 ...
随机推荐
- 深度学习基础-基于Numpy的感知机Perception构建和训练
1. 感知机模型 感知机Perception是一个线性的分类器,其只适用于线性可分的数据. f(x) = sign(w.x + b) 其试图在所有线性可分超平面构成的假设空间中找 ...
- Java学习第二周
这一周观看了黑马程序员毕向东的教学视频学习了数组的创建:数组元素的使用及遍历,类的声明,成员方法的声明,构造器的声明 数据类型[] 数组名 = new 数据类型[长度];数据类型[] 数组名 = {数 ...
- 配置git的ssh
Linux,Windows就在git bash here里面输 ① 初始化git账户 git config --global user.name "Eisen" git confi ...
- 【一知半解】synchronied
synchronized是什么 synchronized是java同步锁,同一时刻多个线程对同一资源进行修改时,能够保证同一时刻只有一个线程获取到资源并对其进行修改,因此保证了线程安全性. synch ...
- RK3568开发笔记(四):在虚拟机上使用SDK编译制作uboot、kernel和buildroot镜像
前言 上一篇搭建好了ubuntu宿主机开发环境,本篇的目标系统主要是开发linux+qt,所以需要刷上billdroot+Qt创建的系统,为了更好的熟悉原理和整个开发过程,选择从零开始搭建rk35 ...
- Solution -「校内题」Xorequ
0x00 前置芝士 数位dp考试里出现的小神题?? 显然考场会选择打表找规律. 数位dp + 矩阵快速幂 0x01 题目描述 给定正整数 \(n\),现有如下方程 \(x \bigoplus 3x = ...
- C++ 加速(卡常)技巧【超级 快读、快写】
C++ \texttt{C++} C++ 加速技巧 快读快写 快读 inline int read() { int x = 0, w = 0; char ch = 0; while (!isdigit ...
- GCD Compression
题目大意: 有一个数组 a 其中有 2n 个数,把它压缩进数组 b,b 的大小是 n-1. 所谓的"压缩"指的是两种操作: 首先舍弃 a 当中的两个数(你可以任意选择). 然后每次 ...
- LeetCode题解-20.有效的括号
题目 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右括号闭合. 左括号必须以正确的顺序闭合. 示例 ...
- 一键到位「GitHub 热点速览 v.22.32」
作者:HelloGitHub-小鱼干 上上周在 B 站观看了智能键盘--瀚文的制作过程,本周 GitHub 热榜上出现了它的软硬件开源项目 HelloWord-Keyboard,如果你的动手能力强不妨 ...