朴素贝叶斯算法

04 朴素贝叶斯法——读书笔记

久未见 提交于 2019-12-14 01:02:03
一、相关概念: 先验概率: 是指事件发生前的预判概念,也可以说是“因”发生的概率,即表示为 P(X)。 条件概率: 是指事件发生后求得反向条件概率,也可以说是在“因”的条件下,“果”发生的概率,即表示为 P(Y|X)。 后验概率: 一个事件发生后导致另一个事件发生的概率,也可以说是在“果”出现的情况下,是什么“因”导致的概率,即表示为P(X|Y)。 似然概率: 类似于条件概率,即“因”的条件下,“果”发生的概率,即表示为 P(Y|X)。 贝叶斯定理:(又称条件概率定理) P ( Y ∣ X ) = P ( X ∣ Y ) ∗ P ( Y ) P ( X ) P(Y|X)=\frac{P(X|Y)*P(Y)}{P(X)} P ( Y ∣ X ) = P ( X ) P ( X ∣ Y ) ∗ P ( Y ) ​ 二、朴素贝叶斯法概述: 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于该模型,对于给定的输入 x x x ,利用贝叶斯定理求出后验概率最大的输出 y y y . 先验概率分布、条件概率分布、联合概率分布: 已知输入空间 χ ⫅ R n \chi \subseteqq R^{n} χ ⫅ R n 为 n n n 维向量的集合,输出空间为类标记集合 γ = { c 1 , c 2 , .

分类算法之朴素贝叶斯分类

早过忘川 提交于 2019-12-12 16:47:12
贝叶斯分类是一类分类 算法 的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到的朴素贝叶斯分类算法,希望有利于他人理解。 1 分类问题综述 对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你看到一个人,你的脑子下意识判断他是学生还是社会上的人;你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱”之类的话,其实这就是一种分类操作。 既然是贝叶斯分类算法,那么分类的数学描述又是什么呢? 从数学角度来说,分类问题可做如下定义:已知集合 和 ,确定映射规则y = f(x),使得任意 有且仅有一个 ,使得 成立。 其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合(特征集合),其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f。 分类算法的内容是要求给定特征,让我们得出类别,这也是所有分类问题的关键。那么如何由指定特征,得到我们最终的类别,也是我们下面要讲的,每一个不同的分类算法,对应着不同的核心思想。 本篇文章,我会用一个具体实例,对朴素贝叶斯算法几乎所有的重要知识点进行讲解。 2 朴素贝叶斯分类 那么既然是朴素贝叶斯分类算法,它的核心算法又是什么呢? 是下面这个贝叶斯公式: 换个表达形式就会明朗很多

朴素贝叶斯法

心不动则不痛 提交于 2019-12-07 18:58:31
朴素贝叶斯法 朴素贝叶斯(naive bayes) 法是基于贝叶斯定理和特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布,然后基于此分布,对给定的输入 \(x\) 利用贝叶斯定理求其后验概率最大的输出。 一、朴素贝叶斯法的学习 1.1 基本方法 设输入空间 \(\chi \subseteq R^n\) 为n维向量的集合,输出空间维类标记集合 \(Y = \{c_1,c_2,...,c_k\}\) 。输入特征向量 \(x \in \chi\) ,输出为类标记 \(y \in Y\) 。 \(p(x,y)\) 是 \(x,y\) 的联合概率分布。训练的数据集: \[ T = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_n\} \] 由 \(p(x,y)\) 独立同分布产生。 要得到训练数据集的联合概率分布,先得学习以下先验概率和条件概率: \[ \begin{align} p(Y=c_k) ,k=1,2,...,K \notag \\ p(X=x|Y=c_k) = p(x^{(1)},x^{(2)},...,x^{(n)}|c_k) \tag{1} \end{align} \] 其中(1)的条件概率分布,不太好算,假设每个 \(x^{(l)}\) 由 \(a\) 个数值可供选择,那么计算(1)式就需要考虑 \(a

朴素贝叶斯

Deadly 提交于 2019-12-06 14:42:58
朴素贝叶斯 (一)引言 朴素贝叶斯是一种基于贝叶斯定理和特征条件独立性假设的常见的机器学习分类算法。假设给定一个训练数据集,首先根据特征条件独立性假设来学习输入/输出 的联合概率分布(学习得到一个模型)。然后根据该模型,对于给定的新的样本数据(即不在训练数据集中),利用贝叶斯定理求出后验概率最大的输出y(类别标签)。 目标 :给定样本数据 , 我们要求的是 。其中 代表类别,共有k个类(Mnist数据集k为10)。为了求 ,我们要用到贝叶斯定理来求后验概率。下面先介绍一下贝叶斯定理(先验概率、后验概率)。 (二)理解贝叶斯公式 此部分参考博客( https://www.cnblogs.com/yemanxiaozu/p/7680761.html )。 (1) 先验概率: 根据客观事实和统计频率得出的概率。 (2) 后验概率: 某件事情已经发生了,在这个事实下,判断导致这件事情发生的不同原因的概率。后验概率要用先验概率来求解(贝叶斯公式)。 (3) 不正经例子(这个例子造着玩的,觉得有问题请看下个例子或直接转参考的博客): 有一个班级只有小倪、小杨和班花小柳三人。重磅消息:小柳和班里的某个人交往了。已知小倪(高富帅)各方面都优于小杨且小柳只能被追,问小柳的交往对象是小倪的概率是多少?(假设你回答是80%,那么你已经进行了一次后验概率的猜测。)下面用贝叶斯公式来求解一下:

朴素贝叶斯算法

最后都变了- 提交于 2019-12-06 03:08:46
简介 机器学习算法中,有种依据概率原则进行分类的朴素贝叶斯算法,正如气象学家预测天气一样,朴素贝叶斯算法就是应用先前事件的有关数据来估计未来事件发生的概率 公式 P(A|B) = P(A)*P(B|A)/P(B) 解释: P(A): A事件发生的概率。 P(B): B事件发生的概率。 P(A | B) 表示在B事件发生的情况下, A事件发生的概率。 P(B | A) 表示在A事件发生的情况下, B事件发生的概率。 P(A ∩ B) 表示事件A与事件B同时发生的概率。 案例 我们知道P(垃圾邮件)和P(Viagra)是相互独立的,则容易计算P(垃圾邮件&Viagra),即这两个事件同时发生的概率。20%*5%=1% 对于该案例来说 P(spam): 是垃圾邮件的概率。 P(Viagra): 邮件中有伟哥单词的概率。 P(spam | Viagra): 已知邮件中有伟哥词汇, 该邮件是垃圾邮件的概率。 P(Viagra | spam): 已知是垃圾邮件, 该邮件中有伟哥单词的概率。 计算贝叶斯定理中每一个组成部分的概率,我们必须构造一个频率表 P(spam|Viagra)=P(Viagra|spam) P(spam)/P(Viagra)=(4/20) (20/100)/(5/100)=0.8 因此,如果电子邮件含有单词Viagra,那么该电子邮件是垃圾邮件的概率为80%。所以

朴素贝叶斯

岁酱吖の 提交于 2019-12-05 11:23:49
基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对于给定的输入,利用贝叶斯定理求出后验概率最大的输出 \(y\) 。 朴素贝叶斯法通过训练数据集学习联合概率分布 \(P(X,Y)\) 。具体地,学习以下先验概率分布及条件概率分布。先验概率分布: \[P(Y=c_k),\quad k=1,2,\cdots,K\] 条件概率分布: \[P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k),\quad k=1,2,\cdots, K\] 于是基于上面两个概率就学到了联合概率分布。但条件概率分布有指数级数量的参数,其估计实际上是不可行。 朴素贝叶斯法对条件概率分布做了条件独立性假设: \[\begin{aligned} P(X=x|Y=c_k) & =P(X^{(1)}=x^{(1)},\cdots,X^{(n)}=x^{(n)}|Y=c_k) \\ & = \prod \limits_{j=1}^n P(X^{(j)}=x^{(j)}|Y=c_k) \end{aligned}\] 朴素贝叶斯法实际上学习到生成数据的机制,属于生成模型。条件独立假设等于说用于分类的特征在类确定的条件下都是条件独立的。这一假设使朴素贝叶斯法变得简单

朴素贝叶斯实现垃圾信息分类

那年仲夏 提交于 2019-12-04 21:05:32
朴素贝叶斯实现垃圾信息分类 代码github 1.贝叶斯定义( 贝叶斯算法介绍 ) P( A |B) = P(B| A ) * P(B) / P( A ) 2.训练过程 中文分词(以下简称特征),过滤掉中英文符号,数字,字母,单个词 将所有特征组成一个去重的词向量列表 计算各个特征在所有分类下的概率 3.分类预测 将待分类数据,分词,向量化 根据贝叶斯公式计算各个分类下的概率,取最大概率即分类结果 4.优化 概率取对数,防止四舍五入对概率的影响 每个特征加1,防止单个特征概率为0 5.总结 训练 9000 条数据,预测 2000 条数据,正确率在 95 %左右 接下来还需要对特征进行处理,提高正确率,如过滤掉只出现一次的特征,加入语义相关性分析等 来源: CSDN 作者: 暗栈擎空 链接: https://blog.csdn.net/hua0704/article/details/78270046

朴素贝叶斯进行新闻分类

拈花ヽ惹草 提交于 2019-12-04 06:52:35
数据来源 通过爬虫,爬取腾讯新闻三个分类每个分类大约1000条左右数据,存入excel 以上是大体的数据,三列分别为title、content、class;由于这里讲的的不是爬虫,爬虫部分省略 项目最终结构 其中主要逻辑在native_bayes.py文件中实现,utils.py为部分工具函数,tr_model.m为tf_idf模型,train_model为我们用朴素贝叶斯训练出来的分类模型。110.txt为预测时的文章内容 使用 通过run方法,来训练一个模型,predict方法去预测输入新闻的类别,代码的大部分解释都在注释里 代码实现 native_bayes.py 1 import os 2 import pandas as pd 3 from sklearn.feature_extraction.text import TfidfVectorizer 4 from sklearn.model_selection import train_test_split 5 from sklearn.naive_bayes import MultinomialNB 6 from sklearn.externals import joblib 7 8 from two_naive_bayes.utils import cut_word, rep_invalid_char 9 10 11

算法 - 朴素贝叶斯分类算法

泄露秘密 提交于 2019-12-04 04:52:52
带你搞懂朴素贝叶斯分类算法 带你搞懂朴素贝叶斯分类算 贝叶斯分类是一类分类 算法 的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。而朴素朴素贝叶斯分类是贝叶斯分类中最简单,也是常见的一种分类方法。这篇文章我尽可能用直白的话语总结一下我们学习会上讲到的朴素贝叶斯分类算法,希望有利于他人理解。 1 分类问题综述 对于分类问题,其实谁都不会陌生,日常生活中我们每天都进行着分类过程。例如,当你看到一个人,你的脑子下意识判断他是学生还是社会上的人;你可能经常会走在路上对身旁的朋友说“这个人一看就很有钱”之类的话,其实这就是一种分类操作。 既然是贝叶斯分类算法,那么分类的数学描述又是什么呢? 从数学角度来说,分类问题可做如下定义:已知集合 和 ,确定映射规则y = f(x),使得任意 有且仅有一个 ,使得 成立。 其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合(特征集合),其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f。 分类算法的内容是要求给定特征,让我们得出类别,这也是所有分类问题的关键。那么如何由指定特征,得到我们最终的类别,也是我们下面要讲的,每一个不同的分类算法,对应着不同的核心思想。 本篇文章,我会用一个具体实例,对朴素贝叶斯算法几乎所有的重要知识点进行讲解。 2 朴素贝叶斯分类 那么既然是朴素贝叶斯分类算法

19_朴素贝叶斯总结

删除回忆录丶 提交于 2019-12-03 01:52:22
1.朴素贝叶斯算法不需要调参,训练集误差大,结果肯定不好。 2.朴素贝叶斯分类优缺点   优点: 朴素贝叶斯模型发源于古典数学理论,有稳定的分类效率。       对缺失数据不太敏感 ,算法也比较简单。       常用于文本分类, 分类准确度高,速度快。   缺点: 需要知道先验概率P(F1,F2,…|C),因此在某些时候会由于假设的先验 模型的原因导致预测效果不佳。 3.对缺失数据不太敏感,是指文本中缺少一些词,对结果影响不大。  假设了文章中一些词语和另外一些词语是独立没关系的,不太靠谱。  在训练集中去进行统计词这些工作,会对结果造成干扰。   来源: https://www.cnblogs.com/cwj2019/p/11769126.html