朴素贝叶斯原理

朴素贝叶斯的介绍

朴素贝叶斯算法(Naive Bayes, NB) 是应用最为广泛的分类算法之一。它是基于贝叶斯定义和特征条件独立假设的分类器方法。由于朴素贝叶斯法基于贝叶斯公式计算得到,有着坚实的数学基础,以及稳定的分类效率。NB模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。

条件概率: 表示事件A在另外一个事件B已经发生条件下的发生概率,P(A|B)

在女神喜欢的条件下,职业是程序员的概率?

  1. 女神喜欢条件下,有 2、3、4、7 共 4 个样本
  2. 4 个样本中,有程序员 3、4 共 2 个样本
  3. 则 P(程序员|喜欢) = 2/4 = 0.5

联合概率: 表示多个条件同时成立的概率,P(AB) = P(A) P(B|A)

职业是程序员并且体型匀称的概率?

  1. 职业是程序员有 1、3、4 共 3 个样本,则其概率为:3/7
  2. 在职业是程序员,体型是匀称有 3 共 1 个样本,则其概率为:⅓
  3. 则即是程序员又体型匀称的概率为:3/7 * ⅓ = 1/7

联合概率 + 条件概率:

在女神喜欢的条件下,职业是程序员、体重超重的概率? P(AB|C) = P(A|C) P(B|AC)

  1. 喜欢的条件下,有 2、3、4、7 共 4 个样本
  2. 在这 4 个样本中,职业是程序员有 3、4 共 2 个样本,则其概率为:2/4=0.5
  3. 在在 2 个样本中,体型超重的有 4 共 1 个样本,则其概率为:½ = 0.5
  4. 则 P(程序员, 超重|喜欢) = 0.5 * 0.5 = 0.25

 

 贝叶斯公式

 

  1. P(C) 表示 C 出现的概率
  2. P(W|C) 表示 C 条件 W 出现的概率
  3. P(W) 表示 W 出现的概率

朴素贝叶斯算法假设所有特征的出现相互独立互不影响,每一特征同等重要,又因为其简单,而且具有很好的可解释性一般。相对于其他精心设计的更复杂的分类算法,朴素贝叶斯分类算法是学习效率和分类效果较好的分类器之一。朴素贝叶斯算法一般应用在文本分类,垃圾邮件的分类,信用评估,钓鱼网站检测等。

 莺尾花数据集

import warnings
warnings.filterwarnings('ignore')
import numpy as np
# 加载莺尾花数据集
from sklearn import datasets
# 导入高斯朴素贝叶斯分类器
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
X, y = datasets.load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 使用高斯朴素贝叶斯进行计算
clf = GaussianNB(var_smoothing=1e-8)
clf.fit(X_train, y_train)
# 评估
y_pred = clf.predict(X_test)
acc = np.sum(y_test == y_pred) / X_test.shape[0]
print("Test Acc : %.3f" % acc)# 预测
y_proba = clf.predict_proba(X_test[:1])
print(clf.predict(X_test[:1]))
print("预计的概率值:", y_proba)
预计的概率值: [[1.63542393e-232 2.18880483e-006 9.99997811e-001]]

 朴素贝叶斯算法

朴素贝叶斯法 = 贝叶斯定理 + 特征条件独立。

indexX1:天气的好坏X2:是否周末Y是否出门
1出门
2出门
3不出门
4出门
5不好出门
6不好不出门

 

a. 当出门的条件下,X_1是天气不好的概率:

p(X1=不好|Y=出门)=p(X1=不好,Y=出门)/p(Y=出门)=1/4

b. 出门的概率

p(Y=出门)=4/6 

c. X_1天气不好的概率

p(X1=不好)=2/6

d. 在X_1天气不好的情况下,出门的概率:

p(Y=出门|X1=不好)=1/2

为了简化联合概率的计算,朴素贝叶斯在贝叶斯基础上增加特征条件独立假设,特征之间是互为独立的。

联合概率的计算即可简化为:

  1. P(程序员,超重|喜欢) = P(程序员|喜欢) * P(超重|喜欢)
  2. P(程序员,超重) = P(程序员) * P(超重)

拉普拉斯平滑系数 

 由于训练样本的不足,导致概率计算时出现 0 的情况。为了解决这个问题,我们引入了拉普拉斯平滑系数。

 

  1. α 是拉普拉斯平滑系数,一般指定为 1
  2. Ni 是 F1 中符合条件 C 的样本数量
  3. N 是在条件 C 下所有样本的总数
  4. m 表示所有独立样本的总数

朴素贝叶斯的优缺点 

朴素贝叶斯算法主要基于经典的贝叶斯公式进行推倒,具有很好的数学原理。而且在数据量很小的时候表现良好,数据量很大的时候也可以进行增量计算。朴素贝叶斯模型与其他分类方法相比具有最小的理论误差率。。解决特征之间的相关性,我们还可以使用数据降维(PCA)的方法,去除特征相关性,再进行朴素贝叶斯计算。 

朴素贝叶斯分类器基于特征条件独立假设,即假设各个特征之间相互独立。在垃圾邮件分类中,这个假设通常能够成立,因为邮件中的单词出现与否可以被认为是相互独立的事件。朴素贝叶斯分类器可以计算出给定特征下某个类别的概率,这对于垃圾邮件分类来说非常有用。通过比较垃圾邮件和正常邮件的概率,可以对邮件进行分类。垃圾邮件分类涉及到大量的特征(例如单词),朴素贝叶斯能够很好地处理这种高维数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/448810.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【动态规划】【记忆化搜索】【回文】1312让字符串成为回文串的最少插入次数

作者推荐 【动态规划】【字符串】【表达式】2019. 解出数学表达式的学生分数 本文涉及知识点 动态规划汇总 记忆化搜索 回文 字符串 LeetCode1312. 让字符串成为回文串的最少插入次数 给你一个字符串 s ,每一次操作你都可以在字符串的任意位置插入任意字符。 请…

物流自动化移动机器人|HEGERLS三维智能四向穿梭车助力优化企业供应链

智能化仓库/仓储贯穿于物流的各个环节,不局限于存储、输送、分拣、搬运等单一作业环节的自动化,更多的是利用科技手段实现整个物流供应链流程的自动化与智能化,将传统自动化仓储物流各环节进行多维度的有效融合。 例如在数智化物流仓储的建设…

故障诊断 | 一文解决,CNN-LSTM卷积神经网络-长短期记忆神经网络组合模型的故障诊断(Matlab)

效果一览 文章概述 故障诊断 | 一文解决,CNN-LSTM卷积神经网络-长短期记忆神经网络组合模型的故障诊断(Matlab) 模型描述 CNN-LSTM模型是一种结合了卷积神经网络(Convolutional Neural Network)和长短期记忆神经网络(Long Short-Term Memory)的组合模型,常用于数据故障…

微信小程序新手入门教程三:基础语法介绍

WXML(WeiXin Markup Language)是框架设计的一套标签语言,可以与各种组件相结合,进行页面构建。 一 常用标签 wxml的语法结构与我们熟悉的html很像,但在细节处略有不同,我们可以参考html标签对比记忆。wxm…

备战蓝桥杯---搜索(DFS基础1)

何为深搜&#xff1f; 即不撞南墙不罢休。 话不多说&#xff0c;直接看题&#xff1a; 我们可以把这看成深搜的模板题&#xff0c;下面是AC代码&#xff1a; #include<bits/stdc.h> using namespace std; int a[15];//存值并输出 int vis[15]; int n18; void dfs(int …

浅谈Zookeeper及windows下详细安装步骤

1. Zookeeper介绍 1.1 分布式系统面临的问题 分布式系统是一个硬件或软件组件分布在不同的网络计算机上&#xff0c;彼此之间仅仅通过消息传递进行通信和协调的系统。 面临的问题&#xff1a;系统每个节点之间信息同步及共享 以一个小团队为例,面临的问题 通过网络进行信息…

无人机森林防火解决方案,无人机低空监测系统解决森林防火技术

我国森林资源较为贫乏&#xff0c;森林覆盖率约为13%左右&#xff0c;人均森林占有面积仅为世界平均值的1/6&#xff0c;但森林大火每年都有发生&#xff0c;如何解决森林防火的问题&#xff0c;又成为林业工作的重中之重。 无人机中低空监测系统具有机动快速、使用成本低、维护…

算法学习——华为机考题库2(HJ11 - HJ20)

算法学习——华为机考题库2&#xff08;HJ11 - HJ20&#xff09; HJ11 数字颠倒 描述 输入一个整数&#xff0c;将这个整数以字符串的形式逆序输出 程序不考虑负数的情况&#xff0c;若数字含有0&#xff0c;则逆序形式也含有0&#xff0c;如输入为100&#xff0c;则输出为0…

Github处理clone慢的解决方案

Github设置代理clone依然慢的解决方案 1、前提&#xff1a;科学上网 注意&#xff1a; 必须要有科学上网&#xff01;必须要有科学上网&#xff01;必须要有科学上网&#xff01;重要的事情说三遍&#xff1b; 2、http/https方案&#xff08;git clone时使用http&#xff09…

例34:窗体增加20宽度

建立一个EXE工程&#xff0c;在窗体上放一个标签。输入代码&#xff1a; Sub Form1_WM_LButtonUp(hWndForm As hWnd, MouseFlags As Long, xPos As Long, yPos As Long)Me.WidthMe.Width20Me代指本窗体End SubSub Form1_Label1_WM_LButtonDown(hWndForm As hWnd, MouseFlags A…

数据结构篇-05:哈希表解决字母异位词分组

本文对应力扣高频100 ——49、字母异位词分组 哈希表最大的特点就是它可以把搜索元素的时间复杂度降到O(1)。这一题就是要我们找到 “字母异位词” 并把它们放在一起。 “字母异位词”就是同一个单词中字母的不同组合形式。判断“字母异位词”有两个视角&#xff1a;1、所含字…

大数据信用报告查询费用一般要多少钱?

一些不少朋友在申贷的时候被拒贷之后&#xff0c;得到的原因就是因为大数据不良被拒&#xff0c;这时候很多人都反过来查询自己的大数据信用报告&#xff0c;而查询的价格也是不少朋友都比较关注的&#xff0c;那大数据信用报告查询费用一般要多少钱呢?下面本文就为你介绍一下…