华电北风吹

日期:2015/12/12

朴素贝叶斯算法和高斯判别分析一样同属于生成模型。但朴素贝叶斯算法须要特征条件独立性如果,即样本各个特征之间相互独立。

一、朴素贝叶斯模型

朴素贝叶斯算法通过训练数据集学习联合概率分布p(x,y),其中x=(x1,x2,...,xn)∈Rn,y∈R。详细的对于K分类问题就是须要学习一个类别的先验概率分布p(y=ck),k=1,2,...,K和每一个类别下的条件概率分布(如式1-1)

p(x|y)=p(x1,x2,...,xn|y)(1-1)

因为朴素贝叶斯算法没有如果特征的分布,因此须要将每一个特征量化为离散型变量,然后学习各个特征水平下的条件概率。

如果各个特征xi被分别量化为Si个水平,那么共同拥有K+K∏ni=1Si个须要学习的參数。

可是,为了使朴素贝叶斯算法变得简单点—主要是降低參数个数,就强加了一个条件概率分布的独立性如果(详细如式1-2)

p(x|y)=p(x1,x2,...,xn|y)=∏ni=1P(xi|y)(1-2)

这样须要学习的參数个数就变为K+K∑ni=1Si个,大大的简化了模型。

二、朴素贝叶斯參数预计

在条件独立性如果下,贝叶斯模型的參数学习就简化为类别先验概率p(y=ck)和条件概率p(xi|y)的学习。

1、极大似然预计

对于训练数据集(x(i),y(i)),x(i)∈Rn,y(i)∈R,似然函数例如以下,

L(ϕy,ϕx|y)=∏mi=1p(x(i),y(i))=∏mi=1p(y(i))∏nj=1p(x(i)j|y(i))(2-1)

结合∑yϕy=1以及∑Sip(xi|y)=1,能够easy得到下式(简单的求偏导就可以,两式均是):

ϕy=k=∑mi=11{y(i)=k}m(2-2)

ϕxi=j|y=k=∑mi=11{y(i)=k⋂xi=j}∑mi=11{y(i)=k}(2-3)

2、古德-图灵预计

主要用于解决统计样本不足的概率预计问题,主要思想是在统计中相信可靠的统计数据,而对不可信的统计数据打折扣的一种概率预计方法。同一时候将折扣出来的那一小部分概率给予为看见的事件。

3、贝叶斯预计(拉普拉斯光滑)

在公式2-2和2-3中。会出现分子分母同为0的情况。解决这样的情况的方案例如以下:

ϕy=k=∑mi=11{y(i)=k}+λm+Kλ(2-4)

ϕxi=j|y=k=∑mi=11{y(i)=k⋂xi=j}+λ∑mi=11{y(i)=k}+Sjλ(2-5)

当中λ≥0.一般取λ=1。

三、朴素贝叶斯决策方法—最大后验概率

对于測试数据x∈Rn,朴素贝叶斯模型採用贝叶斯规则决策。详细表述例如以下:

p(y|x)=argmaxkp(y=k)p(x|y=k)

採用后验概率最大的类别作为模型输出类别。

如今细致想想感觉朴素贝叶斯跟k-means逻辑上的思路还是比較接近的。

ML—朴素贝叶斯的更多相关文章

  1. [置顶] 生成学习算法、高斯判别分析、朴素贝叶斯、Laplace平滑——斯坦福ML公开课笔记5

    转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9285001 该系列笔记1-5pdf下载请猛击这里. 本篇博客为斯坦福ML公开 ...

  2. [ML学习笔记] 朴素贝叶斯算法(Naive Bayesian)

    [ML学习笔记] 朴素贝叶斯算法(Naive Bayesian) 贝叶斯公式 \[P(A\mid B) = \frac{P(B\mid A)P(A)}{P(B)}\] 我们把P(A)称为"先 ...

  3. 朴素贝叶斯算法源码分析及代码实战【python sklearn/spark ML】

    一.简介 贝叶斯定理是关于随机事件A和事件B的条件概率的一个定理.通常在事件A发生的前提下事件B发生的概率,与在事件B发生的前提下事件A发生的概率是不一致的.然而,这两者之间有确定的关系,贝叶斯定理就 ...

  4. 贝叶斯、朴素贝叶斯及调用spark官网 mllib NavieBayes示例

    贝叶斯法则   机器学习的任务:在给定训练数据A时,确定假设空间B中的最佳假设.   最佳假设:一种方法是把它定义为在给定数据A以及B中不同假设的先验概率的有关知识下的最可能假设   贝叶斯理论提供了 ...

  5. 【十大算法实现之naive bayes】朴素贝叶斯算法之文本分类算法的理解与实现

    关于bayes的基础知识,请参考: 基于朴素贝叶斯分类器的文本聚类算法 (上) http://www.cnblogs.com/phinecos/archive/2008/10/21/1315948.h ...

  6. 朴素贝叶斯算法原理及Spark MLlib实例(Scala/Java/Python)

    朴素贝叶斯 算法介绍: 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法. 朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,在没有其它可用信息下,我 ...

  7. 3.朴素贝叶斯和KNN算法的推导和python实现

    前面一个博客我们用Scikit-Learn实现了中文文本分类的全过程,这篇博客,着重分析项目最核心的部分分类算法:朴素贝叶斯算法以及KNN算法的基本原理和简单python实现. 3.1 贝叶斯公式的推 ...

  8. 100天搞定机器学习|Day15 朴素贝叶斯

    Day15,开始学习朴素贝叶斯,先了解一下贝爷,以示敬意. 托马斯·贝叶斯 (Thomas Bayes),英国神学家.数学家.数理统计学家和哲学家,1702年出生于英国伦敦,做过神甫:1742年成为英 ...

  9. 机器学习---用python实现朴素贝叶斯算法(Machine Learning Naive Bayes Algorithm Application)

    在<机器学习---朴素贝叶斯分类器(Machine Learning Naive Bayes Classifier)>一文中,我们介绍了朴素贝叶斯分类器的原理.现在,让我们来实践一下. 在 ...

随机推荐

  1. [BZOJ1758][WC2010]重建计划(点分治+单调队列)

    点分治,对于每个分治中心,考虑求出经过它的符合长度条件的链的最大权值和. 从分治中心dfs下去取出所有链,为了防止两条链属于同一个子树,我们一个子树一个子树地处理. 用s1[i]记录目前分治中心伸下去 ...

  2. Educational Codeforces Round 45 (Div 2) (A~G)

    目录 Codeforces 990 A.Commentary Boxes B.Micro-World C.Bracket Sequences Concatenation Problem D.Graph ...

  3. [AGC016E]Poor Turkeys

    [AGC016E]Poor Turkeys 题目大意: 有\(n(n\le400)\)只火鸡,编号为\(1\)到\(n\),有\(m(m\le10^5)\)个人,每人指定了两只火鸡\(x\)和\(y\ ...

  4. shell十三问?

    shell 十三问: 1) 为何叫做 shell ?  2) shell prompt(PS1) 与 Carriage Return(CR) 的关系?  3) 别人 echo.你也 echo ,是问 ...

  5. Codeforces Round #357 (Div. 2) D. Gifts by the List 水题

    D. Gifts by the List 题目连接: http://www.codeforces.com/contest/681/problem/D Description Sasha lives i ...

  6. java中write(byte[] b)与write(byte[] b,int off,int len)区别

    public static void copyInputStreamT0OutputStream(InputStream in, OutputStream out) { byte[] buffer = ...

  7. Illegal instruction错误的定位---忽略编译期警告的代价

    在原计算机的linux c++程序可以正确跑起来,但是换了一台机器运行时出现致命错误,程序直接当掉,错误提示如下: Illegal instruction (core dumped) 造成改错的主要原 ...

  8. MySQL的转义符 ` 作用

    ` 是 MySQL 的转义符,避免和 mysql 的本身的关键字冲突,只要你不在列名.表名中使用 mysql 的保留字或中文,就不需要转义. 所有的数据库都有类似的设置,不过mysql用的是`而已.通 ...

  9. Android 上SuperUser获取ROOT权限原理解析

    Android 上SuperUser获取ROOT权限原理解析 一. 概述 本文介绍了android中获取root权限的方法以及原理,让大家对android 玩家中常说的“越狱”有一个更深层次的认识. ...

  10. PHP-系统流程

    我们来系统的了解下ThinkPHP框架开发的应用的标准执行流程: 用户URL请求 调用应用入口文件(通常是网站的index.php) 载入框架入口文件(ThinkPHP.php) 记录初始运行时间和内 ...