贝叶斯

贝叶斯神经网络 BNN

痞子三分冷 提交于 2019-12-02 12:14:12
1. 简介 贝叶斯神经网络不同于一般的神经网络,其权重参数是随机变量,而非确定的值。如下图所示: 2. 模型 假设 NN 的网络参数为 W,p(W) 是参数的先验分布,给定观测数据 D={X,Y},这里 X 是输入数据,Y 是标签数据。BNN 希望给出以下的分布: 其中: 这里 P(W|D) 是后验分布,P(D|W) 是似然函数,P(D) 是边缘似然。 从公式(53)中可以看出,用 BNN 对数据进行概率建模并预测的核心在于做高效近似后验推断,而 VI 是一个非常合适的方法。 BNN 不同于 DNN,可以对预测分布进行学习,不仅可以给出预测值,而且可以 给出预测的不确定性 。这对于很多问题来说非常关键,比如:机器学习中著名的 Exploration & Exploitation (EE)的问题,在强化学习问题中,agent 是需要利用现有知识来做决策还是尝试一些未知的东西;实验设计问题中,用贝叶斯优化来调超参数,选择下一个点是根据当前模型的最优值还是利用探索一些不确定性较高的空间。比如: 异常样本检测 ,对抗样本检测等任务,由于 BNN 具有不确定性量化能力,所以具有非常强的 鲁棒性 。 参考: 变分推断 来源: https://blog.csdn.net/rosefun96/article/details/102759917

matlab贝叶斯隐马尔可夫hmm模型实现

 ̄綄美尐妖づ 提交于 2019-12-02 03:34:18
原文链接: http://tecdat.cn/?p=7973 贝叶斯隐马尔可夫模型是一种用于分割连续多变量数据的概率模型。该模型将数据解释为一系列隐藏状态生成。每个状态都是重尾分布的有限混合,具有特定于状态的混合比例和共享的位置/分散参数。 该模型中的所有参数都配备有共轭先验分布,并通过变化的贝叶斯(vB)推理算法学习,其本质上与期望最大化相似。该算法对异常值具有鲁棒性,并且可以接受缺失值。 本文从未知的BRHMM生成一组数据序列 参数,并仅从这些数据中估算出 生成它们的模型。 结果绘制为 时间序列 设置状态,符号和特征的数量 NumState=2; NumSym=3; NumFeat=5; 设置序列数,每个序列点数和缺失值 NumSeq=2; NumPoint=100; NumMiss=20; 设置参数生成选项。TransParam=1/5 EmissParam=1/5; LocParam=2; DispParam=5; 设置采样选项 NumDeg=5; NumObs=1000; 打印 和显示状态 fprintf('\n') fprintf('Sampling data ... ') 生成用于采样的参数 [Trans,Emiss,Loc,Disp]=GenParam(NumState,NumSym,NumFeat,... TransParam,EmissParam

掘金笔记:朴素贝叶斯模型

瘦欲@ 提交于 2019-12-02 02:12:44
# 朴素贝叶斯模型 ## 1 - 基础定理与定义 - 条件概率公式: $$ P(A|B)=\dfrac{P(AB)}{P(B)} $$ - 全概率公式: $$ P(A)=\sum_{j=1}^N P(AB_i)=\sum_{j=1}^N P(B_i)P(A|B_i) $$ - 贝叶斯公式: $$ P(B_i|A)=\dfrac{P(AB_i)}{P(A)}=\dfrac{P(B_i)P(A|B_i)}{\sum_{j=1}^N P(B_i)P(A|B_i)} $$ - 概率加和规则: $$ P\left(X=x_i\right)=\sum_{j=1}^N P\left(X=x_i,Y=y_j\right) $$ $$ P\left(X\right)=\sum_Y P\left(X,Y\right) $$ - 概率乘积规则: $$ P\left(X=x_i,Y=y_j\right)=P\left(Y=y_j|X=x_i\right)P\left(X=x_i\right) $$ $$ P\left(X,Y\right)=P\left(Y|X\right)P\left(X\right) $$ - 生成学习方法: 利用训练数据学习$P(X|Y)$和$P(Y)$的估计,得到联合概率分布: $$ P(X,Y)=P(Y)P(X|Y) $$ 然后求得后验概率分布$P(Y|X)$.

朴素贝叶斯分类算法

為{幸葍}努か 提交于 2019-12-01 22:41:37
贝叶斯定理 是关于随机事件A和B的条件概率的一则定理(比如常见的:P(A|B)是在B发生的情况下A发生的可能性)。 朴素 的含义是各特征相互独立,且同等重要。某些 分类 算法均以贝叶斯定理为基础。由此产生了 朴素贝叶斯分类算法 。 朴素贝叶斯分类算法的思想基础是:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。 分类算法的主要任务是构造分类器。 评价分类器的质量可以从这个视角考虑下:首先要定义,分类器的正确率指分类器正确分类的项目占所有被分类项目的比率。通常使用回归测试来评估分类器的准确率,最简单的方法是用构造完成的分类器对训练数据进行分类,然后根据结果给出正确率评估。但这不是一个好方法,因为使用训练数据作为检测数据有可能因为过分拟合而导致结果过于乐观,所以一种更好的方法是 在构造初期将训练数据一分为二,用一部分构造分类器,然后用另一部分检测分类器的准确率 。 拉普拉斯平滑对于改善朴素贝叶斯分类器的分类效果有着积极的作用。拉普拉斯平滑:为了解决零概率的问题,法国数学家拉普拉斯最早提出用加1的方法估计没有出现过的现象的概率,所以加法平滑也叫做拉普拉斯平滑。假定训练样本很大时,每个分量x的计数加1造成的估计概率变化可以忽略不计,但可以方便有效的避免零概率问题。 示例1 计算先验概率和类条件概率 计算后验概率 因为P(是|X)>P(否

基于贝叶斯的文本分类实战

南楼画角 提交于 2019-12-01 18:52:50
2015-03-31 本文介绍如何使用scikit-learn工具包下的贝叶斯工具进行文本分类。 生成数据集 数据集是有8个分类的文本数据集,使用了结巴分词对每个文本分词,每个单词当作特征,再利用二元词串构造更多特征,然后去掉停用词,去掉出现次数太多和太少的特征,得到了19630个特征。取1998个样本用于训练,509个用于测试。基于 词袋模型 的思路将每个文本转换为向量,训练集和测试集分别转换为矩阵,并用python numpy模块将其保存为npy格式。这个预处理后的数据集保存在了 https://github.com/letiantian/dataset-for-classifying 。 关于贝叶斯 使用朴素贝叶斯分类器划分邮件 朴素贝叶斯的三个常用模型:高斯、多项式、伯努利 导入数据集 在 https://github.com/letiantian/dataset 下载text-classification.7z,解压后导入数据: $ ls test_data.npy test_labels.npy training_data.npy training_labels.npy $ ipython >>> import numpy as np >>> training_data = np.load("training_data.npy") >>> training_data

数据处理方法归纳

非 Y 不嫁゛ 提交于 2019-12-01 18:52:24
https://blog.csdn.net/qq_19528953/article/details/78785818 一 介绍 对于数据处理来说,整个处理的流程如下图所示: 数据预处理——通常包括特征选择、维规约、规范化等方法。 数据挖掘——这部分的方法和技术非常多,在处理时主要根据自己的目的来选择对应的方法最为恰当。 数据后处理——主要包括模式过滤、可视化等,目的是为了让数据挖掘的结果利于使用和观察。 为了让大家有一个清晰的框架,后面内容的思维导图如下展示: 二 了解数据 数据处理最关键的地方在于解决问题,并不是使用的方法越复杂越好。无论方法多么简单,只要解决问题就是好的方法 。为了解决数据处理的相关问题, 第一步是观察数据,了解数据相关的概念 ,然后对数据进行一些处理。这样对后面具体使用哪个方法来进行分析非常有用。 2.1数据预处理 数据预处理对于后续使用数据挖掘或者机器学习技术非常重要。在面临大数据的当下,数据的维度通常非常的多,因此 数据预处理的一个主要任务就是降低数据维度 。 2.1.1维归约 所谓维归约,就是要减少数据的特征数目,摒弃掉不重要的特征,尽量只用少数的关键特征来描述数据。人们总是希望看到的现象主要是由少数的关键特征造成的,找到这些关键特征也是数据分析的目的。维归约中主要方法很多,下面介绍几个: (1)主成分分析 主成分分析是一种统计方法

使用python进行贝叶斯统计分析

血红的双手。 提交于 2019-12-01 10:07:11
原文链接: http://tecdat.cn/?p=7637 本文讲解了使用PyMC3进行基本的贝叶斯统计分析过程. # Imports import pymc3 as pm # python的概率编程包 import numpy.random as npr # numpy是用来做科学计算的 import numpy as np import matplotlib.pyplot as plt # matplotlib是用来画图的 import matplotlib as mpl from collections import Counter # ? import seaborn as sns # ? # import missingno as msno # 用来应对缺失的数据 # Set plotting style # plt.style.use('fivethirtyeight') sns.set_style('white') sns.set_context('poster') %load_ext autoreload %autoreload 2 %matplotlib inline %config InlineBackend.figure_format = 'retina' import warnings warnings.filterwarnings('ignore')

通俗易懂的朴素贝叶斯分类

安稳与你 提交于 2019-12-01 08:35:52
概述 贝叶斯分类算法是统计学的一种概率分类方法,朴素贝叶斯分类是贝叶斯分类中最简单的一种。其分类原理就是利 用贝叶斯公式根据某特征的先验概率计算出其后验概率,然后选择具有最大后验概率的类作为该特征所属的类。之 所以称之为”朴素”,是因为贝叶斯分类只做最原始、最简单的假设:所有的特征之间是统计独立的。 1.条件概率公式 条件概率(Condittional probability),就是指在事件B发生的情况下,事件A发生的概率,用P(A|B)来表示。 根据文氏图可知:在事件B发生的情况下,事件A发生的概率就是P(A∩B)除以P(B)。 同理可得: 所以 全概率公式:如果事件 构成一个完备事件且都有正概率,那么对于任意一个事件B则 有: 2.贝叶斯推断 根据条件概率和全概率公式,可以得到贝叶斯公式如下 : P(A)称为"先验概率”(Prior probability),即在B事件发生之前,我们对A事件概率的一个判断。 P(A| B)称为"后验概率" (Posterior probability),即在B事件发生之后,我们对A事件概率的重新评估。 P(B |A)/P(B)称为"可能性函数”(Likely hood), 这是一个调整因子,使得预估概率更接近真实概率。 所以条件概率可以理解为:后验概率=先验概率*调整因子 如果”可能性函数">1,意味着"先验概率"被增强

极大似然小结

强颜欢笑 提交于 2019-12-01 07:29:36
在机器学习中,我们经常要利用极大似然法近似数据整体的分布,本篇文章通过介绍极大似然法及其一些性质,旨在深入浅出地解释清楚极大似然法。 0. 贝叶斯概率 首先看一下经典的贝叶斯公式: \[ p(Y|X)=\frac{p(X|Y)p(Y)}{p(X)} \] 其中, \(p(Y)\) 称为先验概率( \(prior\) ),即根据先验知识得出的关于变量 \(Y\) 的分布, \(p(X|Y)\) 称为似然函数( \(likelihood\) ), \(p(X)\) 为变量 \(X\) 的概率, \(p(Y|X)\) 称之为条件概率(给定变量 \(X\) 的情况下 \(Y\) 的概率, \(posterior\) ,后验概率)。 1. 似然函数 似然,即可能性;顾名思义,则似然函数就是关于可能性的函数了。在统计学中,它表示了模型参数的似然性,即作为统计模型中参数的函数。一般形式如下: \[ L(\omega)=p(D | \omega) = p(x_1, x_2, \cdots ,x_n| \omega) \] 其中, \(D\) 表示样本集 \(\{x_1,x_2,\cdots, x_n\}\) ,   \(\omega\) 表示参数向量。 似然函数表示了在不同的参数向量 \(\omega\) 下,观测数据出现的可能性的大小,它是参数向量 \(\omega\) 的函数。在某种意义上