朴素贝叶斯算法

朴素贝叶斯学习笔记

社会主义新天地 提交于 2020-01-28 07:26:23
本文为学习《统计学习方法》、《机器学习实战》朴素贝叶斯相关的笔记。 朴素贝叶斯,是基于 贝叶斯定理 和 特征条件独立假设 的分类方法。 特征条件独立假设是指:给定一个实例的类标签,实例中的每个属性的出现都独立于实例中其他属性的出现。这也是算法被称为朴素贝叶斯的原因。 公式推导 我们有数据集 ,其中输入为特征向量 ,输出为类标记 。朴素贝叶斯要通过数据集学习先验概率和条件概率。 先验概率: 这里代表数据集中的每个类别的概率 条件概率: 这里代表在类别为 时,输入的特征向量中的每一个特征值为对应的 的概率。 对条件概率分布作条件独立性的假设,即特征之间不相关,可以得出 在分类时,对于给定的 ,通过学习到的模型计算得到后验概率 ,将后验概率最大的类作为 的类输出。后验概率计算根据贝叶斯定理进行 : 将 上上式代入上式,可得 ,代表在后验概率最大时对应的 值。 一个例子 这个例子来自于《机器学习实战》,是根据词条中词汇的出现判断其是否是侮辱性词条。 我们构造以下数据: def loadDataSet(): postingList=[['my', 'dog', 'has', 'flea', 'problems', 'help', 'please'], ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'], ['my',

task5 贝叶斯

爱⌒轻易说出口 提交于 2020-01-26 08:33:15
知识点梳理¶ 相关概念(生成模型、判别模型) 先验概率、条件概率 贝叶斯决策理论 贝叶斯定理公式 极值问题情况下的每个类的分类概率 下溢问题如何解决 零概率问题如何解决? 优缺点 sklearn 自带代码块 from sklearn . naive_bayes import GaussianNB from sklearn . datasets import load_iris import pandas as pd from sklearn . model_selection import train_test_split iris = load_iris ( ) X_train , X_test , y_train , y_test = train_test_split ( iris . data , iris . target , test_size = 0.2 ) clf = GaussianNB ( ) . fit ( X_train , y_train ) print ( "Classifier Score:" , clf . score ( X_test , y_test ) ) 相关概念 生成模型:在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。它给观测值和标注数据序列指定一个联合概率分布。在机器学习中

基于朴素贝叶斯的定位算法

ε祈祈猫儿з 提交于 2020-01-24 03:53:12
LBS定位技术从方法上可分成三类:基于三角关系的定位技术、基于场景分析的定位技术、基于临近关系的定位技术(唐毅和杨博雄,2003)。 本博文首先对基于三角关系的定位技术进行了介绍,并对其中的应用最广泛的代表GPS进行阐述。 一、基于三角关系的定位方法 该技术的基本原理很简单,可以抽象成如下问题:已知A、B、C三个点的坐标,以及该三点至D点的距离(分别是d0,d1,d2),求D点的坐标。可以列出以下公式(式1),三个方程三个未知数,能求出唯一解。这种定位技术根据测量得出的数据,利用几何三角关系计算被测物体的位置,它是最主要的,也是应有最广的一种定位技术。 二、GPS GPS(全球定位系统)的空间部分使用24颗高度约2.02万千米的卫星组成卫星星座。卫星分布在六个中距离近圆形轨道面上(每轨道面四颗),轨道倾角为55度。卫星的分布使得在全球的任何地方,任何时间都可观测到四颗以上的卫星。 (1)为什么至少使用4颗卫星? GPS定位的基本原理即前面提到的三角关系法。接收机接收各个卫星Si发送的消息Mi,消息Mi不仅包含着卫星Si的空间坐标,还包括卫星发送消息的时间Ti。接收机在接收Mi后就可根据本地接收机的时间与卫星发送消息时间之差来计算距离di:di = c*T;其中c是光速,T是时间差。然而,由于各种原因,包括大气、建筑物,时钟误差等等因素,光速c以及时间差T是具有误差的

监督学习

早过忘川 提交于 2020-01-22 21:08:15
1 监督学习   利用一组带标签的数据, 学习 从输入到输出的映射 , 然后将这种映射关系应用到未知数据, 达到 分类 或者 回归 的目的   (1) 分类: 当输出是离散的, 学习任务为分类任务          输入: 一组有标签的训练数据(也叫观察和评估), 标签 表明了这些数据(观察)的所属类别, 图中"猫"和"狗"就是标签     输出: 分类模型根据这些训练数据, 训练自己的模型参数, 学习出一个适合这组数据的分类器, 当有新数据(非训练数据)需要进行类别判断, 就可以将这组数据作为输入送给学习好的 分类器 进行判断(得到标签)     训练集: 训练模型已经标注的数据, 用来建立模型发现规律     测试集: 已标注的数据, 只不过把标注隐藏了, 再送给训练好的模型, 比对结果与原来的标注, 评判该模型的学习能力       一般来说, 获得了一组标注好的数据, 70%当做训练集, 30%当做测试集 , 另外还有交叉验证法, 自助法来评估学习模型     评价标准       1) 准确率         所有预测对的         把正类预测成正类(TP)         把负类预测成负类(TN)         准确率 = (TP+TN)/总数量       2) 精确率         以二分类为例         预测为正的样本是真的正样本        

机器学习task06_朴素贝叶斯

旧街凉风 提交于 2020-01-21 12:30:32
贝叶斯决策论(Bayesian decision theory) 是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。 具体来说,若我们决策的目标是最小化分类错误率,贝叶斯最优分类器要对每个样本 x,选择能使后验概率 P( c | x )最大的类别 c 标记。在现实任务中后验概率通常难以直接获得。从这个角度来说,机器学习所要实现的是基于有限的训练样本集尽可能准确地估计出后验概率 P( c | x )。大体来说,主要有两种策略:给定x,可通过直接建模P( c | x )来预测c,这样得到的是“判别式模型”,例如,决策树、BP神经网络、支持向量机等等;也可先对联合概率分布P( x,c )建模,然后在由此获得P( c | x ),这样得到的是“生成式模型” 朴素贝叶斯分类器 基于贝叶斯公式来估计后验概率P( c | x )的主要困难在于:类条件概率P( x | c )是所有属性上的联合概率,难以从有限的训练样本直接估计而得。因此朴素贝叶斯分类器采用了“属性条件独立性假设”:对已知类别,假设所有属性相互独立。也就是说,假设每个属性独立的对分类结果发生影响。 sklearn接口 from sklearn.naive_bayes import GaussianNB from sklearn

机器学习——贝叶斯和朴素贝叶斯

China☆狼群 提交于 2020-01-19 11:39:52
贝叶斯判定准则: 最小化总体风险,只需在每个样本上选择能使条件风险R(c|x)最小的类别标记 一、极大似然估计 1.估计类的常用策略 :先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计。即概率模型的训练过程就是参数估计过程。 2.参数估计两大学派 :频率主义学派和贝叶斯学派。 (1)频率主义 :参数虽然未知,但却是客观存在的固定值,因此,可通过优化似然函数等准则来确定参数值(最大似然)。 (2)贝叶斯学派 :参数是未观察到的随机变量,本身也可以有分布,因此,可假定参数服从一个先验分布,然后基于观察到的数据来计算参数的后验分布。 二、朴素贝叶斯 (1)思想: 对于给定的待分类项x,通过学习到的模型计算后验概率分布,即:在此项出现的条件下各个目标类别出现的概率,将后验概率最大的类作为x所属的类别。后验概率根据贝叶斯定理计算。 (2)关键: 为避免贝叶斯定理求解时面临的组合爆炸、样本稀疏问题,引入了条件独立性假设。 即假设各个特征之间相互独立 (3)工作原理: 贝叶斯公式:    对条件概率做了条件独立假设,公式为: (4)工作流程: 1)准备阶段: 确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本。 2)训练阶段: 对每个类别计算在样本中的出现频率p(y),并且计算每个特征属性划分对每个类别的条件概率p(yi | x

Spark.ml - -朴素贝叶斯Naive Bayes

[亡魂溺海] 提交于 2020-01-19 05:12:47
前言 朴素贝叶斯分类器是低方差高偏差的分类器,假设各个特征之间存在条件独立性假设:对于给定的类别,所有的特征相互独立。显然,这个假设把问题想的太简单了,但朴素贝叶斯在文本分类任务上确实拥有很好的效果。 朴素贝叶斯模型是一组非常简单快速的分类算法,通常适用于维度非常高的数据集。因为运行速度快,而且可调参数少,因此非常适合为分类问题提供快速粗糙的基本方案。之所以称为“朴素”或“朴素贝叶斯”,是因为如果对每种标签的生成模型进行非常简单的假设,就能找到每种类型生成模型的近似解,然后就可以使用贝叶斯分类。朴素贝叶斯的思想基础是:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。 朴素贝叶斯算法包括 高斯NB (假设每个标签的数据都服从简单的高斯分布,适用于特征是 连续变量 )、 多项式NB (假设特征是由一个简单多项式分布生成的,适用于 离散特征 的情况)和 伯努利NB (假设特征服从伯努利分布,适用于 离散特征 的情况。不同于多项式贝叶斯模型的是, 伯努利模型中每个特征的取值只能是1和0 ,以文本分类为例,某个单词在文档中出现过,则其特征值为1,否则为0) 特点 优点 训练和预测的速度非常快。 直接使用概率预测。 通常很容易解释。 可调参数(如果有的话)非常少。 适用于 假设分布函数与数据匹配(实际中很少见)。 各种类型的区分度很高

概率、统计、最大似然估计、最大后验估计、贝叶斯定理、朴素贝叶斯、贝叶斯网络

匆匆过客 提交于 2020-01-18 02:17:58
这里写自定义目录标题 概率和统计是一个东西吗? 概率函数与似然函数 最大似然估计(MLE) 最大后验概率估计 最大后验估计的例子 贝叶斯派观点 VS 频率派观点 贝叶斯定理 朴素贝叶斯分类器 朴素贝叶斯分类器实例 贝叶斯网络 贝叶斯网络的结构形式 因子图 从贝叶斯网络来观察朴素贝叶斯 概率和统计是一个东西吗? 概率(probabilty)和统计(statistics)看似两个相近的概念,其实研究的问题刚好相反。 概率研究的问题是,已知一个模型和参数,怎么去预测这个模型产生的结果的特性(例如均值,方差,协方差等等)。 举个例子,我想研究怎么养猪(模型是猪),我选好了想养的品种、喂养方式、猪棚的设计等等(选择参数),我想知道我养出来的猪大概能有多肥,肉质怎么样(预测结果)。 统计是,有一堆数据,要利用这堆数据去预测模型和参数。 仍以猪为例。现在我买到了一堆肉,通过观察和判断,我确定这是猪肉(这就确定了模型。在实际研究中,也是通过观察数据推测模型是/像高斯分布的、指数分布的、拉普拉斯分布的等等),然后,可以进一步研究,判定这猪的品种、这是圈养猪还是跑山猪还是网易猪,等等(推测模型参数)。 一句话总结: 概率是已知模型和参数,推数据。统计是已知数据,推模型和参数。 显然, 本文解释的MLE(最大似然估计)和MAP(最大后验估计)都是统计领域的问题。它们都是用来推测参数的方法(不是推测模型

从负无穷学习机器学习(三)朴素贝叶斯

别来无恙 提交于 2019-12-28 19:46:20
一、朴素贝叶斯介绍 朴素贝叶斯是一种基于贝叶斯理论的有效监督学习算法,之所以称之为”朴素“,是因为它是基于样本特征之间互相独立的”朴素”假设。 正因如此,不需要考虑样本特征之间的关系,贝叶斯分类器的效率非常高。 朴素贝叶斯有三种方法: 伯努利朴素贝叶斯(Bernoulli Naive Bayes) 高斯贝叶斯(Gaussian Naive Bayes) 多项式贝叶斯(Multinomial Naive Bayes) # 导入numpy import numpy as np # 将X,y赋值为np数组 导入数据 X = np . array ( [ [ 0 , 1 , 0 , 1 ] , [ 1 , 1 , 1 , 0 ] , [ 0 , 1 , 1 , 0 ] , [ 0 , 0 , 0 , 1 ] , [ 0 , 1 , 1 , 0 ] , [ 0 , 1 , 0 , 1 ] , [ 1 , 0 , 0 , 1 ] ] ) y = np . array ( [ 0 , 1 , 1 , 0 , 1 , 0 , 0 ] ) # 对不同分类计算每个特征为1的数量 counts = { } for label in np . unique ( y ) : counts [ label ] = X [ y == label ] . sum ( axis = 0 ) # 打印计数结果

朴素贝叶斯算法原理小结

↘锁芯ラ 提交于 2019-12-20 02:16:01
    文本主题模型之LDA(一) LDA基础      文本主题模型之LDA(二) LDA求解之Gibbs采样算法      文本主题模型之LDA(三) LDA求解之变分推断EM算法     在前面我们讲到了基于矩阵分解的LSI和NMF主题模型,这里我们开始讨论被广泛使用的主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,以下简称LDA)。注意机器学习还有一个LDA,即线性判别分析,主要是用于降维和分类的,如果大家需要了解这个LDA的信息,参看之前写的 线性判别分析LDA原理总结 。文本关注于隐含狄利克雷分布对应的LDA。 1. LDA贝叶斯模型     LDA是基于贝叶斯模型的,涉及到贝叶斯模型离不开“先验分布”,“数据(似然)”和"后验分布"三块。在 朴素贝叶斯算法原理小结 中我们也已经讲到了这套贝叶斯理论。在贝叶斯学派这里: 先验分布 + 数据(似然)= 后验分布     这点其实很好理解,因为这符合我们人的思维方式,比如你对好人和坏人的认知,先验分布为:100个好人和100个的坏人,即你认为好人坏人各占一半,现在你被2个好人(数据)帮助了和1个坏人骗了,于是你得到了新的后验分布为:102个好人和101个的坏人。现在你的后验分布里面认为好人比坏人多了。这个后验分布接着又变成你的新的先验分布,当你被1个好人(数据)帮助了和3个坏人(数据