贝叶斯分类算法

Bayes' theorem (贝叶斯定理)

99封情书 提交于 2020-03-30 04:04:59
前言   AI时代的到来一下子让人感觉到数学知识有些捉襟见肘,为了不被这个时代淘汰,我们需要不断的学习再学习。其中最常见的就是贝叶斯定理,这个定理最早由 托马斯·贝叶斯 提出。   贝叶斯方法的诞生源于他生前为解决一个“ 逆向概率 ”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇论文之前,人们已经能够计算“正向概率”,如“袋子里N个白球,M个黑球,随机抓一个,抓到白球的概率”。而随之而来的另一个反过来的问题就是 “如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的“逆概”问题。   实际上,贝叶斯当时的论文只是对这个问题的一个直接的求解尝试,并不清楚他当时是不是已经意识到这里面包含着的深刻的思想。然而后来,贝叶斯方法席卷了概率论,并将应用延伸到各个问题领域,所有需要作出概率预测的地方都可以见到贝叶斯方法的影子,特别需要提的是: 贝叶斯是机器学习的核心方法之一 。这背后的深刻原因在于,现实世界本身就是不确定的,人类的观察能力是有局限性的(否则有很大一部分科学就没有必要做了——设想我们能够直接观察到电子的运行,还需要对原子模型争吵不休吗?),我们日常所观察到的只是事物表面上的结果,沿用刚才那个袋子里面取球的比方

贝叶斯、概率分布与机器学习

浪子不回头ぞ 提交于 2020-03-21 06:39:35
本文由LeftNotEasy原创,可以转载,但请保留出处和此行,如果有商业用途,请联系作者 wheeleast@gmail.com 一. 简单的说贝叶斯定理: 贝叶斯定理用数学的方法来解释生活中大家都知道的常识 形式最简单的定理往往是最好的定理,比如说中心极限定理,这样的定理往往会成为某一个领域的理论基础。机器学习的各种算法中使用的方法,最常见的就是贝叶斯定理。 贝叶斯定理的发现过程我没有找到相应的资料,不过我相信托马斯.贝叶斯(1702-1761)是通过生活中的一些小问题去发现这个对后世影响深远的定理的,而且我相信贝叶斯发现这个定理的时候,还不知道它居然有这么大的威力呢。下面我用一个小例子来推出贝叶斯定理: 已知:有N个苹果,和M个梨子,苹果为黄色的概率为20%,梨子为黄色的概率为80%,问,假如我在这堆水果中观察到了一个黄色的水果,问这个水果是梨子的概率是多少。 用数学的语言来表达,就是已知P(apple) = N / (N + M), P(pear) = M / (N + M), P(yellow|apple) = 20%, P(yellow|pear) = 80%, 求P(pear|yellow). 要想得到这个答案,我们需要 1. 要求出全部水果中为黄色的水果数目。 2. 求出黄色的梨子数目 对于1) 我们可以得到 P(yellow) * (N + M), P

第4章 朴素贝叶斯

前提是你 提交于 2020-03-09 10:58:29
朴素贝叶斯 分类算法、生成算法 假设用于分类的特征在类确定的条件都是条件独立的。 模型 P ( Y = C k ∣ X = x ) = P ( Y = C k ) ∏ j P ( X ( j ) = x ( j ) ∣ y = C k ) ∑ k P ( Y = C k ) ∏ j P ( X ( j ) = x ( j ) ∣ y = C k ) , k = 1 , 2 , ⋯   , K P(Y=C_k|X=x) = \frac {P(Y=C_k)\prod_jP(X^{(j)}=x^{(j)}|y=C_k)}{\sum_k P(Y=C_k)\prod_jP(X^{(j)}=x^{(j)}|y=C_k)}, k=1,2,\cdots,K P ( Y = C k ​ ∣ X = x ) = ∑ k ​ P ( Y = C k ​ ) ∏ j ​ P ( X ( j ) = x ( j ) ∣ y = C k ​ ) P ( Y = C k ​ ) ∏ j ​ P ( X ( j ) = x ( j ) ∣ y = C k ​ ) ​ , k = 1 , 2 , ⋯ , K 策略 使后验概率最大化 算法 最大似然估计 贝叶斯估计 来源: CSDN 作者: windmissing 链接: https://blog.csdn.net/mishifangxiangdefeng

朴素贝叶斯算法

大兔子大兔子 提交于 2020-03-08 08:59:55
朴素贝叶斯法是一种基于贝叶斯定定理和特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对于给定的输入$x$,利用贝叶斯定理求出后验概率最大输出的$y$。朴素贝叶斯法对条件概率分布作了条件独立假设,朴素贝叶斯法因为这个较强的假设而得名。 一、基本方法 假设输入空间$x\in \mathbb{R}^{n}$是n维向量的集合,输出空间为类别标签的集合$y= \left \{ c_{1},c_{2},...,c_{k} \right \}$,输入为特征向量$x\in \chi $,输出为类别标签$y\in \gamma$。$X$是定义在输入空间$\chi$上的随机向量。$Y$是定义在输出空间$\gamma$上的随机变量。$P\left ( X,Y \right )$是X和Y的联合概率分布。训练数据集: $T=\left \{ \left ( x_{1}, y_{1} \right ), \left ( x_{2}, y_{2} \right ),...,\left ( x_{N}, y_{N} \right ) \right \}$ 由$P\left ( X,Y \right )$独立同分布产生。 来源: https://www.cnblogs.com/xjlearningAI/p/12437028.html

朴素贝叶斯分类的原理与流程

北城以北 提交于 2020-03-06 23:52:39
朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想 真 的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。 朴素贝叶斯分类的正式定义如下: 1、设 为一个待分类项,而每个a为x的一个特征属性。 2、有类别集合 。 3、计算 。 4、如果 ,则 。 那么现在的关键就是如何计算第3步中的各个条件概率。我们可以这么做: 1、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。 2、统计得到在各类别下各个特征属性的条件概率估计。即 。 3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导: 因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有: 根据上述分析,朴素贝叶斯分类的流程可以由下图表示(暂时不考虑验证): 可以看到,整个朴素贝叶斯分类分为三个阶段: 第一阶段——准备工作阶段,这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性

02-27 朴素贝叶斯

柔情痞子 提交于 2020-02-28 07:06:37
文章目录 朴素贝叶斯 朴素贝叶斯学习目标 朴素贝叶斯引入 朴素贝叶斯详解 朴素贝叶斯构造 朴素贝叶斯基本公式 朴素贝叶斯参数估计 特征值为离散值 特征值为稀疏的离散值 特征值为连续值 三种不同的朴素贝叶斯 多项式朴素贝叶斯 伯努利朴素贝叶斯 高斯朴素贝叶斯 朴素贝叶斯流程 输入 输出 流程 朴素贝叶斯优缺点 优点 缺点 小结 朴素贝叶斯   朴素贝叶斯是基于贝叶斯公式与特征条件独立假设的分类方法(注:贝叶斯公式是数学定义,朴素贝叶斯是机器学习算法)。朴素贝叶斯基于输入和输入的联合概率分布,对于给定的输入,利用贝叶斯公式求出后验概率最大的输出 y y y 。即可以总结为以下三点 已知类条件概率密度函数表达式和先验概率 利用贝叶斯公式转换成后验概率 根据后验概率大小进行决策分类 朴素贝叶斯学习目标 朴素贝叶斯构造 朴素贝叶斯基本公式 朴素贝叶斯参数估计 多项式朴素贝叶斯、伯努利朴素贝叶斯、高斯朴素贝叶斯 朴素贝叶斯流程 朴素贝叶斯优缺点 朴素贝叶斯引入   假设现在有一个有两个类别的鸢尾花数据集,并且已经知晓每个数据的分类情况,并且假设数据的分布如下图所示。 # 朴素贝叶斯引入图例 from matplotlib . font_manager import FontProperties import matplotlib . pyplot as plt from sklearn

[机器学习] 朴素贝叶斯分类

荒凉一梦 提交于 2020-02-27 14:26:22
贝叶斯决策理论 一个数据集,分为两类,其中每个样本的分类我们都已知晓 一个新的点 ( x , y ) (x, y) ( x , y ) ,其分类未知。 按照什么方式来决定将这个点分到一类中呢?我们提出如下规则: 如果 p 1 ( x , y ) > p 2 ( x , y ) p_1(x,y)>p_2(x,y) p 1 ​ ( x , y ) > p 2 ​ ( x , y ) ,则 ( x , y ) (x,y) ( x , y ) 为红色( p 1 p_1 p 1 ​ )一类。 如果 p 2 ( x , y ) > p 1 ( x , y ) p_2(x,y)>p_1(x,y) p 2 ​ ( x , y ) > p 1 ​ ( x , y ) ,则 ( x , y ) (x,y) ( x , y ) 为蓝色( p 2 p_2 p 2 ​ )一类。 贝叶斯决策理论核心思想 :选择具有最高概率的决策。 朴素贝叶斯分类 正式定义 设 x = x= x = { a 1 , a 2 , . . . , a m a_1, a_2,...,a_m a 1 ​ , a 2 ​ , . . . , a m ​ } 为一个待分类项, a i a_i a i ​ 为 x x x 的每一个特征属性 有类别集合 C = C= C = { y 1 , y 2 , . . . , y n y_1, y_2

朴素贝叶斯算法

我与影子孤独终老i 提交于 2020-02-19 02:00:44
一、朴素贝叶斯综述 \quad 贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类是贝叶斯分类中最简单也是最常见的一种。 \quad 对于分类问题,其实谁都不陌生,日常生活中我们每天都进行着分类过程,例如,当你看到一个人,你的脑子下意识判断他是学生还是社会上的人;你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱”之类的话,其实这就是一种分类操作。 \quad 既然是贝叶斯分类算法,那么分类的数学描述又是什么呢? \quad 从数学角度来说,分类问题可做如下定义:已知集合 C = y 1 , y 2 , . . . , y n C=y_1,y_2,...,y_n C = y 1 ​ , y 2 ​ , . . . , y n ​ 和 I = x 1 , x 2 , . . . , x n I=x_1,x_2,...,x_n I = x 1 ​ , x 2 ​ , . . . , x n ​ ,确定映射规则 y = f ( x ) y=f(x) y = f ( x ) ,使得任意 x i ∈ I x_i\in I x i ​ ∈ I 有且仅有一个 y i ∈ C y_i\in C y i ​ ∈ C ,使得 y i ∈ f ( x i ) y_i\in f(x_i) y i ​ ∈ f ( x i ​ ) 成立。 \quad 其中

机器学习:朴素贝叶斯

纵然是瞬间 提交于 2020-02-15 00:20:45
朴素贝叶斯(Naive Bayesian)分类器可以给出一个最优的类别猜测结果,同时给出这个猜测的概率估计值 优点:在数据较少的情况下仍然有效,可以处理多类别问题 缺点:对于输入数据的准备方式较为敏感 贝叶斯准则 公式    \(\small P(C|X)=\frac{P(X|C)}{P(X)}P(C)\) 以文本分类为例    X 是一个词组 \(\small (x_{0}, x_{1}, x_{2}, ..., x_{n})\)    P(X) 是 X 组词出现的概率    P(C) 是标签 C 出现的概率    P(X|C) 是标签 C 出现 X 词组的概率    P(C|X) 是 X 词组是分类 C 的概率 又有    \(\small P(X) = P(x_{0})*P(x_{1})*P(x_{2})*...*P(x_{n})\)    \(\small P(X|C) = P(x_{0}|C)*P(x_{1}|C)*P(x_{2}|C)*...*P(x_{n}|C)\)    对于特定的 X ,由于 P(X) 是一样的 只需要比较 \(\small P(X|C_{i})P(C_{i})\) 和 \(\small P(X|C_{j})P(C_{j})\) 就可以知道是 X 是属于分类 i 的可能性大还是属于分类 j 的可能性大 并且可以求出 X 属于不同分类的概率 朴素

2.2:监督学习的基本分类模型(KNN、决策树、朴素贝叶斯)

 ̄綄美尐妖づ 提交于 2020-02-12 19:33:28
K近邻分类器(KNN) KNN:通过计算待分类数据点,与已有数据集中的所有数据点的距离。取距离最小的前K个点,根据“少数服从多数“的原则,将这个数据点划分为出现次数最多的那个类别。 sklearn中的K近邻分类器 在sklearn库中,可以使用sklearn.neighbors.KNeighborsClassifier创建一个K近邻分类器,主要参数有: • n_neighbors:用于指定分类器中K的大小( 默认值为5,注意与kmeans的区别 ) • weights:设置选中的K个点对分类结果影响的权重( 默认值为平均权重“uniform”,可以选择“distance”代表越近的点权重越高,或者传入自己编写的以距离为参数的权重计算函数 ) • algorithm:设置用于计算临近点的方法,因为当数据量很大的情况下计算当前点和所有点的距离再选出最近的k各点,这个计算量是很费时的,所以( 选项中有ball_tree、kd_tree和brute,分别代表不同的寻找邻居的优化算法,默认值为auto,根据训练数据自动选择 ) K近邻分类器的使用 创建一组数据 X 和它对应的标签 y: >>> X = [[0], [1], [2], [3]] >>> y = [0, 0, 1, 1] 使用 import 语句导入 K 近邻分类器: >>> from sklearn.neighbors