朴素贝叶斯与贝叶斯网络详解

news2025/1/29 13:51:46

文章目录

  • 一、背景
    • 1.1 贝叶斯方法的提出
    • 1.2 频率派与贝叶斯派的区别
  • 二、分类问题
  • 三、基础知识
    • 3.1 条件概率
    • 3.2 联合概率
    • 3.3 贝叶斯公式
    • 4.1 贝叶斯网络介绍
    • 4.2 贝叶斯网络的基本结构
      • 4.2.1 head-to-head(共同作用)
      • 4.2.2 tail-to-tail(共同原因)
      • 4.2.3 head-to-tail(因果迹)
      • 4.2.4 tail-to-head(证据迹)
  • 五、朴素贝叶斯
    • 5.1 朴素贝叶斯介绍
    • 5.2 朴素贝叶斯定义
    • 5.3 朴素贝叶斯三部曲
    • 5.4 估计类别下特征属性划分的条件概率以及Laplace校准
    • 5.5 朴素贝叶斯分类实例——检测SNS社区中的真实账号
  • 六、贝叶斯网络
    • 6.1 朴素贝叶斯的缺点
    • 6.2 贝叶斯网络
  • 参考资料

一、背景

长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大。而且概率虽然未知,但最起码是一个确定的值。比如如果问那时的人们一个问题:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?”他们会想都不用想,会立马告诉你,取出白球的概率就是1/2,要么取到白球,要么取不到白球,即θ只能有一个值,而且不论你取了多少次,取得白球的概率θ始终都是1/2,即不随观察结果X 的变化而变化。

频率学派之所以能得出这样的结论,是因为他们研究的对象是**”简单可数的“**。比如袋子里只有黑球或者白球、一个硬币抛出只有正面和反面、一个骰子只有1-6个点。

可是现实生活中的事物并没有那么简单直观。例如,要你评估一个人的创业成功可能性。难道这时你还可以直接说50%吗?还用”要么成功要么不成功“这句话去解释吗?很显然是不合理的,因为这件事情已经不是简单可数的了。影响创业成功与否的因素有很多,例如这个人是否勤奋、是否具有创业头脑、是否拥有一定的人脉、是否可以团结周围的伙伴同事等等。这是一个连续且不可数的事件空间,

1.1 贝叶斯方法的提出

在18世纪,贝叶斯发表了一篇名为《An essay towards solving a problem in the doctrine of chances》的论文。贝叶斯学派认为事物发生的概率是随机且未知的,但是可以通过样本去预测它。用一句话概括贝叶斯方法的观点就是:任何时候,我对世界总有一个主观的先验判断,但是这个判断会随着世界的真实变化而随机修正,我对世界永远保持开放的态度。

回到上面的例子:“有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率θ是多少?”贝叶斯认为取得白球的概率是个不确定的值,因为其中含有机遇的成分。比如,一个朋友创业,你明明知道创业的结果就两种,即要么成功要么失败,但你依然会忍不住去估计他创业成功的几率有多大?你如果对他为人比较了解,而且有方法、思路清晰、有毅力、且能团结周围的人,你会不由自主的估计他创业成功的几率可能在80%以上。这种不同于最开始的“非黑即白、非0即1”的思考方式,便是贝叶斯式的思考方式。

贝叶斯学派认为事物发生的概率是随机且未知的,但是可以通过样本去预测它。用贝叶斯学派的理论去回答上述创业问题:假如这个人比较勤奋,那么可以推断创业成功率在80%以上,这称作”先验概率估计“。但是随着公司的运营,你发现公司的财务状况非常差,此时可以推断创业成功率由80%下降到30%,这称作”后验概率估计“。贝叶斯学派的这种动态的估计方法,就是贝叶斯方法。贝叶斯方法思考问题遵循的方式是:

先验分布 + 观测结果 => 后验分布

此处给出先验概率和后验概率的解释:

  • 先验概率是 在全事件的背景下,A事件发生的概率,即P (A | Ω)
  • 后验概率是 在新事件B的背景下,A事件发生的概率,即P (A | B)

全事件一般是统计获得的,是没有实验前的概率,所以被称为先验概率。
新事件一般是通过实验获得的,如事件B,此时事件背景从全事件变成了事件B,该事件B对A发生的概率会产生影响,所以需要对A事件的概率做出修正,即从P (A | Ω)变成了P (A | B),所以被称为后验概率。

1.2 频率派与贝叶斯派的区别

频率派与贝叶斯派具有不同的思考方式:

  • 频率派把需要推断的参数θ看做是固定的未知常数,即概率虽然是未知的,但最起码是确定的一个值,同时,样本X 是随机的,所以频率派重点研究样本空间,大部分的概率计算都是针对样本X 的分布;
  • 而贝叶斯派的观点则截然相反,他们认为参数是随机变量,而样本X 是固定的,由于样本是固定的,所以他们重点研究的是参数的分布。

二、分类问题

可以说,利用贝叶斯算法,就是来解决分类问题的。贝叶斯算法是分类算法的一种,这类算法都以著名的贝叶斯定理为基础。

对于分类问题,大家都不陌生。说的夸张一点,我们每个人在每天的生活中,都会进行分类。例如,当你走在大街上,你会下意识地判断迎面走来的这个人是男性还是女性;当你走在路上看到一个穿着亮丽的人时,你会下意识地和身边的朋友说:”这个人肯定很有钱“。这些实际上都是分类操作。

这里必须明白,分类器往往是根据经验方法来构造的,因为现实生活中缺少足够多的信息去构造一个100%正确率的分类器,只是在某种程度上实现一定概率意义上正确的分类器。例如,医生给病人看病就是一个典型的分类问题。任何一个医生都不可能直接看出病人患了什么病,只是通过病人的体征、描述和身体检查单给出相对正确的结果,这时医生就是一个分类器。而这个分类器的效果好坏,取决于这位医生接受的教育、病人患病症状是否明显、医生的经验是否充足等因素。

所以通俗地说,利用贝叶斯算法解决问题,首先要得到的就是分类器。还是上个例子,想要获得一个诊断病情的分类器,就需要事先喂给它足够大的样本,例如患病体征A对应疾病B的概率是多少等等这样的概率关系。当样本处理完毕之后,说白了就是概率运算,分类器也就得到了。此时代入新的病人的病情,即可获得输出。

事实上,利用贝叶斯方法解决问题,也分为不同的方式。其中最简单的就是朴素贝叶斯,即NBN(Naive Bayesian Network)。之所以称为朴素贝叶斯,是因为它的思想真的很朴素,实现起来也较为容易,可行性很强,是我们解决问题最常用的一种方法。具体内容稍后阐述。

三、基础知识

在进入贝叶斯方法之前,我们需要掌握以下基础知识,它们是贝叶斯网络的重要概念组成部分。

3.1 条件概率

又称为后验概率,就是事件A在事件B已经发生的条件上发生的概率。表示为P (A | B),计算公式为:

在这里插入图片描述

3.2 联合概率

联合概率表示两个事件共同发生的概率。A与B的联合概率表示为:
在这里插入图片描述

即事件A和事件B同时发生的概率为:在A发生的情况下发生B,或者在B发生的情况下发生A。

3.3 贝叶斯公式

贝叶斯公式可以直接根据条件概率及联合概率的定义直接推出。即因为 P(A,B) = P(A)P(B|A) = P(B)P(A|B),所以 P(A|B) = P(A)P(B|A) / P(B)
在这里插入图片描述

P(A|B)是在B发生的情况下A发生的可能性,其中:

  • P(A)称为A的先验概率,表示事件B发生之前,我们对事件A的发生有一个基本的概率判断。
  • P(A|B)称为A的后验概率:表示其事件B发生之后,我们对事件A的发生概率重新评估。
  • P(B)称为B的先验概率,表示事件A发生之前,我们对事件B的发生有一个基本的概率判断。
  • P(B|A)称为B的后验概率:表示事件A发生之后,我们对事件B的发生概率重新评估。

贝叶斯公式之所以有用,是因为我们在日常生活中,很容易求出P (B | A),但是我们真正想要的是P (A | B),往往这个P (A | B)并不是那么直观易求的。贝叶斯公式就为我们打通了这条线路。

贝叶斯网络(Bayesian network),又称信念网络(Belief Network),或有向无环图模型(directed acyclic graphical model),是一种概率图模型。

4.1 贝叶斯网络介绍

贝叶斯网络中的节点表示随机变量,有向边表示变量之间有因果关系(非条件独立),两个用箭头连接的节点就会产生一个条件概率值,如下图所示:
在这里插入图片描述

G = ( I , E ) G=(I, E) G=(I,E) 表示一个DAG,其中 I I I是图形中所有节点的集合, E E E 是所有有向边的集合,函数 p a ( x ) pa(x) pa(x) 表示从子节点x到父节点的映射。令 x i x_i xi 表示DAG中某一节点i代表的随机变量,则概率 p ( x i ) p(x_i) p(xi) 可以表示成:

在这里插入图片描述
则称此DAG为贝叶斯网络模型。

注意,贝叶斯网络有一个极为重要的性质:每一个节点在其直接前驱节点的值制定后,这个节点条件独立于其所有非直接前驱前辈节点。

这条特性的重要意义在于明确了贝叶斯网络可以方便计算联合概率分布。一般情况下,多变量非独立联合条件概率分布有如下求取公式:

在这里插入图片描述

而在贝叶斯网络中,由于存在前述性质,任意随机变量组合的联合条件概率分布才可以被化简成上述带有映射关系 p a ( x ) pa(x) pa(x) 的计算公式。

许多经典的多元概率模型都是贝叶斯网络的特例,例如朴素贝叶斯模型、马尔科夫链、隐马尔科夫模型、卡尔曼滤波器、条件随机场等等。

4.2 贝叶斯网络的基本结构

三节点对应的三角结构是贝叶斯网络信息流动的最基本结构,下面介绍4种经典的信息流动结构。

4.2.1 head-to-head(共同作用)

根据上图以及链式法则,有P(a,b,c) = P(a) * P(b) * P(c|a,b)成立,因为P(c|a,b) = P(a,b,c)/P(a,b),将P(a,b,c)消除,从而得到P(a,b) = P(a)*P(b)。

因为我们可以得到:

  • 当c未知时,a和b是被阻隔的,是独立的,称之为head-to-head条件独立。
  • 当c已知时,a和b不独立,a的信息可以沿着c流向b。

我们可以形象地理解为,将abc想象成河流,两条小河(a、b)流入一条大河(c),当c是未知时,a-> c <-b之间的流动是阻断的,那么影响将无法沿着“a-> c <-b”流动。形如“a-> c <-b”的这种结构也称为一个v-结构(v-structure)。

4.2.2 tail-to-tail(共同原因)

同样的,根据上图和链式法则,我们可以得到:P(a,b,c) = P© * P(a|c) * P(b|c)。

  • 当c未知时,我们没办法通过上式得到P(a,b) = P(a) * P(b)。因此c未知时,a、b不独立,a可以通过c影响b。
  • 当c已知时,有P(a,b|c) = P(a,b,c) / P©,将上式的P(a,b,c)代入进来,就可以得到P(a,b|c) = P(a|c) * P(b|c),从而得到a和b在此条件下是独立的。因此当c已知时,a和b被阻断,a和b是独立的。
    我们可以形象地理解为,一条大河流到c节点的时候要分成两条支流,当c给定的时候,即c节点放开,此时a和b就是两条互不影响的支流,因此是相互独立的。

4.2.3 head-to-tail(因果迹)

同样的,根据上图和链式法则,我们可以得到:P(a,b,c) = P(a) * P(c|a) * P(b|c)。

  • 当c未知时,我们没办法通过上式得到P(a,b) = P(a)*P(b)。因此c未知时,a、b不独立,a可以通过c影响b。
  • 当c已知时,有P(a,b|c) = P(a,b,c) / P© 和 P(a,c) = P(a) * P(c|a),将这两式代入上述式子,即可得到P(a,b|c) = P(a|c) * P(b|c),从而得到a和b在此条件下是独立的。因此当c已知时,a和b被阻断,a和b是独立的。

4.2.4 tail-to-head(证据迹)

同样的,根据上图和链式法则,我们可以得到:P(a,b,c) = P(b) * P(c|b) * P(a|c)。

  • 当c未知时,我们没办法通过上式得到P(a,b) = P(a)*P(b)。因此c未知时,a、b不独立,a可以通过c影响b。
  • 当c已知时,有P(a,b|c) = P(a,b,c) / P© 和 P(b,c) = P(b) * P(c|b),将这两式代入上述式子,即可得到P(a,b|c) = P(a|c) * P(b|c),从而得到a和b在此条件下是独立的。因此当c已知时,a和b被阻断,a和b是独立的。

五、朴素贝叶斯

5.1 朴素贝叶斯介绍

朴素贝叶斯分类是一种非常简单的分类方法,它最突出的特点就是:假设分类项的的各个特征之间是相互独立的!

正是因为这个特点,才使得整个朴素贝叶斯的可操作性很高,并且思想简单易懂。

朴素贝叶斯的思想就是:对于给出的待分类项,求解在此分类项的条件下,各个类别哪个出现的概率最大,取概率最大的那个类别为该待分类项的类别。

通俗来说,就好比这么个道理:你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。

5.2 朴素贝叶斯定义

在这里插入图片描述

5.3 朴素贝叶斯三部曲

根据上述朴素贝叶斯的定义,可以看出朴素贝叶斯分类大致分为三个阶段:

第一阶段——准备工作阶段:确定待分类项的所属集合,例如{亚洲人,美洲人,非洲人},接着确定特征属性,例如{肤色,身高,眼睛颜色},与此同时要对这些特征属性进行划分,例如什么样的人种对应什么样的眼睛颜色。这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。这一阶段是唯一需要人工处理的阶段,其质量对于整个过程有着重要的影响,因为接下来分类器的质量很大程度上取决于特征属性、特征属性的划分和训练样本的质量。

第二阶段——分类器训练阶段:这个阶段就是生成分类器。主要工作就是计算每个类别在训练样本中的出现频率和在每个类别的条件上特征属性出现的概率。这一阶段的输入是特征属性和训练样本,输出是分类器。这一阶段是机械性阶段,可以由程序自动完成。

第三阶段——应用阶段:这个阶段就是利用分类器对待分类项进行分类,输入是分类器和待分类项,输出是待分类项与类别的映射关系。这一阶段也是机械性阶段,可由程序自动完成。

5.4 估计类别下特征属性划分的条件概率以及Laplace校准

在这里插入图片描述

5.5 朴素贝叶斯分类实例——检测SNS社区中的真实账号

下面举出一个用朴素贝叶斯解决实际问题的例子。

对于SNS(Social Networking Services)社区来说,虚假账号的存在是一个普遍性问题,作为SNS社区的运营商,他们希望检测出这些虚假账号,从而在一些运营分析报告中避免这些账号的干扰,从而加强对SNS社区的了解和监督。

如果采用人工检测,那么难度可想而知,如果可以引入自动检测机制,必将大大提升工作效率。这个问题说白了,就是对社区中的账号进行分类,是真实账号还是虚假账号,下面我们一步步实现这个过程。

首先设 C = 0 C=0 C=0 表示真实账号, C = 1 C=1 C=1 表示虚假账号。

第一步——确定特征属性及其划分:
这一步我们要找出能够区分真实账号和虚假账号的特征属性。在实际的应用中,特征属性的数量肯定是很多的,此处仅采用少量的特征属性进行说明。

我们选择三个特征属性:

  • a1 :日志数量/注册天数,
  • a2 :好友数量/注册天数,
  • a3:是否使用真实头像。

在SNS社区中,这三个特征属性都是可以直接从数据库中算出来的。

下面给出这三个特征属性的划分:
a1 : {a <= 0.05,0.05 < a < 0.2,a >= 0.2},
a2 : {a <= 0.1,0.1 < a < 0.8,a >= 0.8},
a3 : {a = 0(未采用),a = 1(采用)}

第二步——获取训练样本:

这里使用运维人员曾经人工检测过的1万个账号作为训练样本。

第三步——计算训练样本中每个类别的频率:

假设训练样本中共有10000个社交账号,真实账号有8900个,虚假账号有1100个,则有:

P ( C = 0 ) = 0.89 P(C=0)=0.89 P(C=0)=0.89
P ( C = 1 ) = 0.11 P(C=1)=0.11 P(C=1)=0.11

第四步——计算每个类别条件下各个特征属性划分的条件概率:
在这里插入图片描述
第五步——使用分类器进行鉴别:

在这里插入图片描述

六、贝叶斯网络

6.1 朴素贝叶斯的缺点

在第五章中,我们讨论了用朴素贝叶斯去解决SNS社区虚假账号的问题,在这个解决方案中,我们做出了如下假设:

  • 真实账号比非真实账号平均具有更大的日志密度、更大的好友密度、更多地使用真实头像。
    日志密度、好友密度和是否使用真实头像在账号真实性给定的条件下是独立的,也就是特征属性之间的独立性。
  • 但是第二条假设很有可能不成立,因为好友密度除了与账号真实性相关之外,还和是否使用真实头像有关。当你使用真实头像的时候,肯定是趋向于吸引更多的人加你为好友,从而拥有更大的好友密度。

6.2 贝叶斯网络

因此为了获得更准确的分类,我们采用如下假设:

  • 真实账号比非真实账号平均具有更大的日志密度、更大的好友密度、更多地使用真实头像。
  • 日志密度、好友密度和是否使用真实头像在账号真实性给定的条件下是独立的,也就是特征属性之间的独立性。
  • 使用真实头像的用户相比使用虚假头像的用户具有更大的好友密度。

上述的假设更符合真实情况,但是也伴随着一定的问题,那就是特征属性之间不再是相互独立的了,而是存在了依赖关系,使得朴素贝叶斯不再适用了。下图表示各个特征属性之间的关联:

在这里插入图片描述

。。。。。。

参考资料

  • 贝叶斯网络 Bayesian Network:https://zhuanlan.zhihu.com/p/542482587

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【北大是如何考DFS的】【我们一起60天准备考研算法面试(大全)-第十六天 16/60】【DFS】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

马斯克宣布成立xAI——引领开放人工智能时代的新纪元

马斯克宣布成立xAI——引领开放人工智能时代的新纪元 &#x1f7e2;一、前言&#x1f7e2;二、马斯克的背景与愿景&#x1f7e2;三、xAI的潜在研究方向&#x1f7e2;四、xAI面临的挑战&#x1f7e2;五、xAI的潜在影响&#x1f7e2;六、xAI与OpenAI的异同&#x1f7e2;七、对Ope…

人脸识别轻量版

github地址 https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB 下载后测试 前提是安装了pytorch环境&#xff0c;原始测试py文件是这个&#xff0c;是需要用命令行执行的 为了测试方便&#xff0c;我将它改成容易debug的 """ This c…

键入网址发生什么--基础网络知识

浏览器解析URL生成请求信息&#xff0c;发送给web服务器。 一、浏览器解析URL & 浏览器解析URL作用&#xff1a;确定了 Web 服务器和文件名 URL组成&#xff1a;http&#xff1a; // web服务器域名 /目录名/ / 目录名/ ....文件名 当没有具体文件路径名时&#xff…

SRT对比TCP协议的优缺点

主流的流媒体协议&#xff0c;如HTTP&#xff0c;HLS&#xff0c;RTMP是TCP协议&#xff0c;而RTSP既可以基于TCP也可基于UDP协议进行数据传输。 从趋势来看&#xff0c;新的流媒体协议大都选择UDP作为底层传输协议&#xff0c;其主要原因和流媒体业务本身的特性及TCP特性有关。…

[相遇 Bug] - ImportError: numpy.core.multiarray failed to import

背景: 因为最近在看点云模型, 在自己的环境上部署该项目: https://github.com/open-mmlab/OpenPCDet/tree/master 执行命令: 这里执行github项目给的demo.py文件, 命令格式如下: python demo.py --cfg_file cfgs/kitti_models/pointpillar.yaml --ckpt xxx/pointpillar_772…

找回删除的照片?这4招很简单!

“电脑上删除的照片还能找回来吗&#xff1f;我的照片刚刚被误删了很多张&#xff0c;现在想把它们恢复回来&#xff0c;还有成功的可能性吗&#xff1f;” 对于很多朋友来说&#xff0c;将照片保存下来是一件很美好的事。当我们想起某个场景时&#xff0c;我们能通过这些照片来…

Vue3 – 高级语法补充

1 Vue中自定义指令 2 Vue内置组件Teleport 3 Vue内置组件Suspense 4 Vue中安装插件的方式 5 Vue中渲染函数的使用 6 Vue中编写jsx的语法 Vue中自定义指令 自定义指令的绑定方法有两种&#xff0c;一种是局部的&#xff0c;一种是全局的。 指令可以将部分js代码转换成指令的…

前端 | (四)CSS基础及CSS选择器 | 尚硅谷前端html+css零基础教程2023最新

学习来源&#xff1a;尚硅谷前端htmlcss零基础教程&#xff0c;2023最新前端开发html5css3视频 文章目录 &#x1f4da;CSS基础&#x1f407;CSS简介&#x1f407;CSS编写位置⭐️行内样式⭐️内部样式⭐️外部样式 &#x1f407;样式表的优先级&#x1f407;CSS语法规范&#…

Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

关于Appium V2 Appium V2 beta版本在2021年发布&#xff0c;从2022年1月1号开始&#xff0c;Appium核心团队不会再维护Appium 1.x版本了&#xff0c;所有近期官方发布的平台驱动&#xff08;如Android平台的UIAutomator&#xff0c;IOS平台的XCUITest&#xff09;不再兼容Appi…

大数据分析案例-基于随机森林算法构建心力衰竭预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

云原生周刊:6 项 K8s 成本控制策略 | 2023.7.17

开源项目推荐 Base Image Finder 当使用容器扫描工具来识别已知漏洞&#xff08;CVE&#xff0c;或常见漏洞和暴露&#xff09;时&#xff0c;可能很难理解漏洞在容器中的位置&#xff0c;以及如何缓解这些漏洞。通常&#xff0c;最简单、最有效的缓解方法是更新 "基本映…

EasyPoi实战系列集合

历史文章&#xff08;文章累计480&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 导…

【黑马头条之对象存储服务MinIO】

本笔记内容为黑马头条项目的对象存储服务MinIO部分 目录 一、MinIO简介 二、MinIO特点 三、开箱使用 1、安装启动 2、管理控制台 四、快速入门 1、创建工程&#xff0c;导入pom依赖 五、封装MinIO为starter 1、创建模块heima-file-starter 2、配置类 3、封装操作mi…

VBA命令及语法列表之字典Dictionaries相关

【分享成果&#xff0c;随喜正能量】真正的修佛之人。首先&#xff0c;得明白自己的来处和归宿&#xff0c;懂得敬畏自己的生命和他人的生命&#xff0c;尽其所能释放善意。学会悲天悯人&#xff0c;渡人的同时渡己&#xff0c;始终走在止于至善的路上。真正的慈悲为怀&#xf…

有哪些方法可将PPT转成PDF?分享三个方法给大家!

将PPT&#xff08;演示文稿&#xff09;文件转换为PDF&#xff08;便携式文档格式&#xff09;是一种常见的需求&#xff0c;特别适用于共享演示文稿、打印或以静态格式保存的情况。本文将介绍三种简单易用的方法来实现PPT转PDF的操作&#xff0c;其中方法一是使用记灵在线工具…

MarkDown 生成目录的树结构

1. tree 命令的使用 Markdown没有办法直接生成目录的树结构&#xff0c;需要借助Windows下的tree命令&#xff0c;具体如下&#xff1a; 显示所有目录&#xff0c;不包含目录下的文件&#xff0c;tree 文件夹路径 显示所有目录&#xff0c;包含目录下的文件&#xff0c;tree …

命令行查看numpy版本

问题 查看numpy版本 解决方法 python -c "import numpy;print(numpy.version.version)"成功

OpenCV中reshape()函数详解-改变矩阵的通道数,对矩阵元素进行序列化

文章目录 1、函数原型2、示例3、结论&#xff1a; OpenCV中reshape()函数详解-改变矩阵的通道数&#xff0c;对矩阵元素进行序列化 在opencv中reshape函数&#xff0c;既可以改变矩阵的通道数&#xff0c;又可以对矩阵元素进行序列化 1、函数原型 Mat Mat::reshape(int cn, in…

echarts_雷达图

目录 雷达图(radar)需求[1] 复制案例[2] 色调统一[3] 配置项实现代码 雷达图(radar) 需求 [1] 复制案例 如上图&#xff0c;先复制一个最简单的雷达图 [2] 色调统一 直角系坐标都是使用xAxis/yAxis配置项&#xff0c;但是雷达图使用的是radar配置项配置坐标系。 配置项注解区…