判别分析2|Bayes判别分析|Fisher判别分析|软件求解

Bayes判别分析

引入先验信息

距离判别只要求知道总体的数字特征,不涉及总体的分布函数
当均值和协方差未知时,就用样本的均值和协方差矩阵做估计值。距离判别方法简单实用,但没有考虑到每个总体出现的机会大小,即先验概率,没有考虑到错判的损失。比如医疗诊断中癌症病人和正常人的分辨。贝叶斯判别法正是为了解决这两个问题提出的判别分析方法

Bayes统计的基本思想是:假定对所研究的对象已有一定的认识,常用先验概率分布来描述这种认识,然后我们取得一个样本,用样本来修正已有的认识(先验概率分布),得到后验概率分布,各种统计推断都通过后验概率分布来进行。将Bayes思想用于判别分析,就得到贝叶斯分类器。贝叶斯公式如下:
P ( B i ∣ A ) = P ( A ∣ B i ) P ( B i ) ∑ P ( A ∣ B i ) P ( B i ) P(B_{i}| A)=\frac{P(A| B_{i})P(B_{i})}{\sum P(A| B_{i})P(B_{i})} P(BiA)=P(ABi)P(Bi)P(ABi)P(Bi)

贝叶斯分类器:
判别函数:后验概率计算公式,
判别准则:后验概率最大原则
设有总体 G i ( i = 1 , 2 , … , k ) G_{i}(i=1,2,\dots,k) Gi(i=1,2,,k),具有概率密度函数 f i ( x ) f_{i}(x) fi(x),并且有先验知识
知道 G i G_{i} Gi发生的概率是 P i P_{i} Pi。由贝叶斯公式计算样本 x 0 ∈ G i x_{0}\in G_{i} x0Gi
后验概率为:
P ( G i ∣ x 0 ) = p i f i ( x 0 ) ∑ p j f j ( x 0 ) P(G_{i}| x_{0})= \frac{p_{i}f_{i}(x_{0})}{\sum p_{j}f_{j}(x_{0})} P(Gix0)=pjfj(x0)pifi(x0)
判别规则:若
P ( G l ∣ x 0 ) = p l f l ( x 0 ) ∑ p j f j ( x 0 ) = m a x 1 ≤ i ≤ k p i f i ( x 0 ) ∑ p j f j ( x 0 ) P(G_{l}| x_{0})= \frac{p_{l}f_{l}(x_{0})}{\sum p_{j}f_{j}(x_{0})}=max_{1\le i\le k} \frac{p_{i}f_{i}(x_{0})}{\sum p_{j}f_{j}(x_{0})} P(Glx0)=pjfj(x0)plfl(x0)=max1ikpjfj(x0)pifi(x0)
x 0 x_{0} x0判给 G l G_{l} Gl
若要同时考虑到错判的损失,模型可进一步修正。设C(j/i)表示将第i类错判到第j类所造成的损失。请看下面Bayes判别准则。

定理:若各类总体 G 1 , G 2 , … , G k G_{1},G_{2},\dots,G_{k} G1,G2,,Gk的先验概率为
{ a i , i = 1 , 2 , 3 , … , k } \left\{ a_{i},i=1,2,3,\dots,k\right\} {ai,i=1,2,3,,k}
各类密度函数 { f i ( x ) } \left\{ f_{i}(x)\right\} {fi(x)}。第i类错判到第j类所造成的损失 { C ( j / i ) } \left\{ C(j/i)\right\} {C(j/i)}
构造判别函数
h j ( x ) = ∑ j = 1 k q i C ( j / i ) f i ( x ) h_{j}(x)=\sum_{j=1}^{k} q_{i}C(j/i)f_{i}(x) hj(x)=j=1kqiC(j/i)fi(x)
对任意样本x,判别规则是

h i ( x ) = m i n 1 ≤ j ≤ k h j ( x ) h_{i}(x)=min_{1\le j\le k}h_{j}(x) hi(x)=min1jkhj(x)
x ∈ G i , i = 1 , 2 , 3 , … , k x \in G_{i},\ i= 1,2,3,\dots,k xGi, i=1,2,3,,k
{ h j ( x ) } \left\{ h_{j}(x)\right\} {hj(x)}描述了将其他类样本划分到第j类的可能产生的损失。
这个判别规则,理论上使平均错判损失最小。

两类问题时的Bayes判别准则为
x ∈ G 1 , 若 q 2 C ( 1 / 2 ) f 2 ( x ) − q 1 C ( 2 / 1 ) f 1 ( x ) < 0 x\in G_{1},\ 若q_{2}C(1/2)f_{2}(x)-q_{1}C(2/1)f_{1}(x)<0 xG1, q2C(1/2)f2(x)q1C(2/1)f1(x)<0
f 1 ( x ) f 2 ( x ) > q 2 C ( 2 / 1 ) q 1 C ( 1 / 2 ) \frac{f_{1}(x)}{f_{2}(x)}> \frac{q_{2}C(2/1)}{q_{1}C(1/2)} f2(x)f1(x)>q1C(1/2)q2C(2/1)

v ( x ) = f 1 ( x ) f 2 ( x ) , d = q 2 C ( 2 / 1 ) q 1 C ( 1 / 2 ) v(x)=\frac{f_{1}(x)}{f_{2}(x)},\ d=\frac{q_{2}C(2/1)}{q_{1}C(1/2)} v(x)=f2(x)f1(x), d=q1C(1/2)q2C(2/1)
{ x ∈ G 1 若 v ( x ) > d x ∈ G 2 若 v ( x ) < d 待判 若 v ( x ) = d \left\{\begin{matrix} x\in G_{1}\quad 若v(x)>d \\ x\in G_{2}\quad 若v(x)<d \\ 待判\quad 若v(x)=d \end{matrix}\right. xG1v(x)>dxG2v(x)<d待判v(x)=d
当给定不同的分布假设时,判别函数 v ( x ) v(x) v(x)具有更简单形式
当两总体错分损失相等时,两个总体的Bayes判别法则为:
{ x ∈ G 1 : 若 P ( G 1 ∣ x ) ≥ P ( G 2 ∣ x ) x ∈ G 2 : 若 P ( G 1 ∣ x ) < P ( G 2 ∣ x ) \left\{\begin{matrix} x\in G_{1}:若P(G_{1}| x)\ge P(G_{2}|x) \\ x\in G_{2}:若P(G_{1}| x)< P(G_{2}|x) \end{matrix}\right. {xG1:P(G1x)P(G2x)xG2:P(G1x)<P(G2x)
更进一步对正态分布分类总体:
若两总体的协方差矩阵相等,化解上述的判别规则得到等价的线性判别规则
若协方差矩阵不相等,则判别函数为二次函数。
再进一步,当p1=p2时,Bayes判别就是距离判别
Bayes分类器有很高的理论价值,在实际使用时有很多的假设难以满足

Fisher判别分析

首先考虑只有两个属性变量的二分类判别分析问题。
分类思想就寻找一个方向,也就是图上的虚线方向,沿着这个方向朝和这个虚线垂直的一条直线进行投影会使得这两类分得最清楚。可以看出,如果向其他方向投影,判别效果不会比这个好。
![[Pasted image 20240823153937.png]]

投影之后,再用前面讲到的距离判别方法对样本进行分类
费歇(Fisher)判别法是一种线性判别的方法。它的工作思路是对原数据系统进行坐标变换,寻求能将类别总体尽可能分开的投影方向,使得投影后的数据点,同一类别的尽量聚拢,不同类别产生的尽量拉开。
优点:没有做分布假设。

Fisher判别函数或典型判别函数
Y ^ 1 ( x ) = c ^ 11 x 1 + ⋯ + c ^ p 1 x p \hat{Y}_{1}(x)=\hat{c}_{11}x_{1}+\dots+\hat{c}_{p1}x_{p} Y^1(x)=c^11x1++c^p1xp
寻找一个投影方向
( c ^ 11 , c ^ 21 , … , c ^ p 1 , ) T (\hat{c}_{11},\hat{c}_{21},\dots,\hat{c}_{p1},)^{T} (c^11,c^21,,c^p1,)T
样本点投影后的点集
{ c ^ 11 x 1 i + ⋯ + c ^ p 1 x p i } i = 1 n \left\{ \hat{c}_{11}x_{1i}+\dots+\hat{c}_{p1}x_{pi} \right\}_{i=1}^{n} {c^11x1i++c^p1xpi}i=1n
计算该点集的组内离差平方和、组间离差平方和
I = 组间离差平方和 组内方差和 I= \frac{组间离差平方和}{组内方差和} I=组内方差和组间离差平方和
选择方向 ( c ^ 11 , c ^ 21 , … , c ^ p 1 , ) T (\hat{c}_{11},\hat{c}_{21},\dots,\hat{c}_{p1},)^{T} (c^11,c^21,,c^p1,)T应使得I值达到最大。

在这个方向,最大限度地反映不同类的个体之间的差异,在这个方向上产生的变量称之为第一个典型变量
Y ^ 1 ( x ) = c ^ 11 x 1 + ⋯ + c ^ p 1 x p \hat{Y}_{1}(x)=\hat{c}_{11}x_{1}+\dots+\hat{c}_{p1}x_{p} Y^1(x)=c^11x1++c^p1xp
就是第一个典型判别函数。同样通过投影可以找到第二个方向,建立第二个典型变量,和第二个典型判别函数。直到找到t个。 t ≤ k t\le k tk
k是总体的个数。

使用典型判别函数判别×的类

把所有类的各个指标的均值(非标准化数据的均值),代入典型判别函数,得出各类中心典型函数的值
把需要判别的点x的p个指标的值,代入典型判别函数,得出这个点的典型函数值,与哪个类中心的典型函数值最近,就判别这个点属于这个类(投影后最近距离判别)

两类问题时,设有
{ X 1 ( 1 ) , X 2 ( 1 ) , … , X n 1 ( 1 ) } ∈ G 1 , { X 1 ( 2 ) , X 2 ( 2 ) , … , X n 2 ( 2 ) } ∈ G 2 , \left\{ X_{1}^{(1)},X_{2}^{(1)},\dots,X_{n1}^{(1)} \right\}\in G_{1},\ \left\{ X_{1}^{(2)},X_{2}^{(2)},\dots,X_{n_{2}}^{(2)} \right\}\in G_{2},\ {X1(1),X2(1),,Xn1(1)}G1, {X1(2),X2(2),,Xn2(2)}G2, 
一个投影方向和典型判别函数
U = ( c 1 , c 2 , … , c p ) T , Y 1 ( x ) = c 11 x 1 + ⋯ + c p 1 x p U=(c_{1},c_{2},\dots,c_{p})^{T},\ Y_{1}(x)=c_{11}x_{1}+\dots+c_{p1}x_{p} U=(c1,c2,,cp)T, Y1(x)=c11x1++cp1xp
投影后类中心
{ u T X 1 ( 1 ) , u T X 2 ( 1 ) , … , u T X n 1 ( 1 ) } 类中心 G 1 \left\{ u^{T}X_{1}^{(1)},u^{T}X_{2}^{(1)},\dots,u^{T}X_{n1}^{(1)} \right\}\quad 类中心G_{1} {uTX1(1),uTX2(1),,uTXn1(1)}类中心G1
{ u T X 1 ( 2 ) , u T X 2 ( 2 ) , … , u T X n 2 ( 2 ) } 类中心 G 2 \left\{ u^{T}X_{1}^{(2)},u^{T}X_{2}^{(2)},\dots,u^{T}X_{n_{2}}^{(2)} \right\}\quad 类中心G_{2} {uTX1(2),uTX2(2),,uTXn2(2)}类中心G2
待判样品x到某一类G的距离定义为X点与类中心的距离
d ( X , G 1 ) = ∣ ∣ u T X − C 1 ∣ ∣ , d ( X , G 2 ) = ∣ ∣ u T X − C 2 ∣ ∣ d(X,G_{1})=| | u^{T}X -C_{1}| |,\ d(X,G_{2})=| | u^{T}X-C_{2} | | d(X,G1)=∣∣uTXC1∣∣, d(X,G2)=∣∣uTXC2∣∣
Fisher分类判别准则为
{ d ( X , G 1 ) < d ( X , H 2 ) , 则 X ∈ G 1 d ( X , G 2 ) < d ( X , H 1 ) , 则 X ∈ G 2 d ( X , G 1 ) = d ( X , H 2 ) , 则 X 待定 \left\{\begin{matrix} d(X,G_{1})<d(X,H_{2}),\ 则X\in G_{1} \\ d(X,G_{2})<d(X,H_{1}),\ 则X\in G_{2} \\ d(X,G_{1})=d(X,H_{2}),\ 则X待定 \end{matrix}\right. d(X,G1)<d(X,H2), XG1d(X,G2)<d(X,H1), XG2d(X,G1)=d(X,H2), X待定

典型函数判别能力检验

当需要多个典型函数时,对典型函数的判别能力要通过显著性检验来取舍。
多元方差分析可以检验所有属性变量是否联合对判别函数的判别能力有显著性意义
在一个判别函数中,每一个属性变量对典型函数的判别能力都有所贡献。贡献的大小可以用多元方差分析来检验。
属性变量的判别能力重要性也各不相同。类似逐步回归,也可选择遂步判别分析法

逐步判别法的基本思想是采用“有进有出”的算法,即遂步引入变量、每引入一个“最重要”的变量进入判别式,同时也考虑较早引入判别式的某些变量,如果其判别能力随新弓入变量而变为不显著了(例如其作用被后引入的某几个变量的组合所代替),应及时从判别式中把它剔除去,直到判别式中没有不重要的变量需要剔除,而剩下来的变量也没有重要的变量可引入判别式时,逐步筛选结束。这个筛选过程实质就是作假设检验,通过检验找出显著性变量,剔除不显著变量。

软件求解

SPSS判别分析求解

IrisDataSet(鸢尾属植物数据集)是被用来介绍线性判别式分析最悠久的数据集。在这个数据集中,包括了三类不同的鸢尾属植物:IrisSetosa,Iris
Versicolour,IrisVirginica。每类收集了50个样本,因此这个数据集一共包含了 150个样本。
该数据集测量了所有150个样本的4个特征,分别是:
sepal length (花萼长度)
sepal width (花萼宽度)
petal length (花瓣长度)
petal width (花瓣宽度)
以上四个特征的单位都是厘米(cm)。属性变量是4个,样本数150.

v1,v2,v3,v4是属性变量。v5是原分类观察变量。
每一类。前40个用来设计,后 10个用于检验,因此令外定义变量V6取值和V5相同,但在每组后十个v6值缺失。用于记录预测值,和v5比较后判别分类效果。看下图
![[Pasted image 20240823161554.png]]

基本判别分析用SPSS实现,简便快捷。

  1. 打开数据文件或新建数据文件
  2. 点击菜单,分析→分类→判别分析,进入判别分析方法框设置
  3. 选择属性变量V1-V4进入自变量列表框
  4. 选择V6进入分组变量,并定义范围
    ![[Pasted image 20240823162027.png]]

设置统计量按钮:若要输出Fisher典型判别函数则勾选未标准化复选框。
若要输出每一类Bayes判别函数则勾选Fisher框。SPSS输出的这个函数是在假设总体是正态总体且方差相同的条件下的等效的判别函数,是一个线性函数,不是后验概率的计算公式。
本例中有两个典型判别函数通过了显著性检验
右图是每一类的基于Bayes理论线性判别函数。
![[Pasted image 20240823162155.png]]
![[Pasted image 20240823162208.png]]

典型函数的重要性是和特征值的贡献率有关。
下表说明第一个函数的贡献率已经是99.3%,而第二个只有0.7%。这两个典型判别函数并不是平等的。但两个都通过了显著性检验。同时给出的各类质心得分。对于一个未知样本,计算其判别得分到各类质心的距离来预测其类别
![[Pasted image 20240823162223.png]]
![[Pasted image 20240823162230.png]]

该表给出了三个线性分类函数的系数。把每个观测点带入三个函数,就可以得到分别代表三类的三个值,哪个值最大,该点就属于相应的那一类,称之为模型预测值。当然,我们一开始就知道这些训练数据的类别取值,即训练样本的观测值。比较预测值和观察值,找到错分的样本。SPSS用**‘标注。这里84号样本被错分。 91,92,93测试样本都被正确分到第二类。
![[Pasted image 20240824020551.png]]
![[Pasted image 20240824020609.png]]

继续,设置保存按钮:
若要保存典型函数的敢值,则勾选判别得分。
若要观察模型的预测分类值,勾选预测组成员。属于各类的后验概率在组成员概率中给出。
所有数值追加在当前数据表之后。比较V5和预测组成员的取值,可以看到每组未分类的10个测试点都被正确分类。
![[Pasted image 20240824020733.png]]

继续,设置分类按钮:
勾选摘要表,输出判别分析的准确率判别得分。
勾选合并组:得到典型函数得分散点图。
勾选输出个案结果,可看到模型预测值,找到错分的个案。
![[Pasted image 20240824020828.png]]
![[Pasted image 20240824020859.png]]

Matlab判别分析命令CLASSIFY

两种Af和Apf已由生物学家W.L.Grogna和W.W.Wirth于1981年根据它们的触角长和翼长加以区分,下面是9只Af和6只Apf的触角长和翼长数据

Apf = [1.14, 1.78; 1.18, 1.96; 1.20, 1.86; 1.26, 2.00; 1.28, 2.00; 1.30, 1.96]; 

6行两列

Af =[1.24, 1.72; 1.36, 1.74; 1.38, 1.64; 1.38, 1.82; 1.38, 1.90; 1.40, 1.70; 1.48, 1.82; 1.54, 1.82; 1.56, 2.08];

9行两列
给定触角长和翼长分别为(1.24,1.80),(1.28,1.84),(1.40,2.04)三个标本判别他们的类别

MATLAB统计工具箱提供的classify函数,可用来对未知类别的样品进行距离判别和先验分布为正态分布的Bayes判别。

Training = [Apf; Af]  %训练样本的属性变量值 
X = [1.24, 1.8; 1.28, 1.84; 1.4, 2.04] %待判样本
Group = [ones(6, 1) * 1; ones(9,1) * 2] %前6个样本第一类,后9个第二类
[class, err] = Classify(x, Training, Group)  %距离判别
[class, err] = classify(x, training,Group,'linear')%线性判别函数
[class, err] = classify(x, training, Group, 'quadratic')%二次判别函数

命令格式:

[class, err] = classify(sample, training, group, type, prior)
  • Sample:待分样本属性矩阵
  • Training:训练样本属性矩阵,同类放一起
  • Group:与训练样本相对应的分类变量值
  • Type:可指定判别函数的类型
  • Prior:制定各类样本的先验概率
  • Class:输出待判样本的类别敢值
  • Error:误判概率的估计值
    ![[Pasted image 20240824022147.png]]

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

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

相关文章

Git的使用教程及常用语法03

七.如何从版本库中删除文件 第一种方式&#xff1a;直接在工作区删除文件&#xff0c;然后提交 rm ffile1.txt (注意&#xff1a;这个不是git命令&#xff0c;而是linux命令) 看到状态发现&#xff0c;文件file1.txt已经被删除&#xff0c;提示需要提交到暂存区。 因为我们只…

从开发到集成:视频美颜SDK与直播美颜API详解

在本文中&#xff0c;我们将详细探讨视频美颜SDK的开发过程及其与直播美颜API的集成方案&#xff0c;帮助开发者更好地理解和应用这些技术。 一、视频美颜SDK的开发概述 视频美颜SDK是一个用于实时视频处理的开发工具包&#xff0c;提供了包括磨皮、美白、瘦脸、眼睛放大等多…

盘古信息IMS MCM制造协同管理系统:为中小企业数字化转型量身打造的数字化方案

近年来&#xff0c;全球经济的不稳定性&#xff0c;给中小企业的经营和发展带来了巨大的挑战。为提升企业竞争力&#xff0c;中小企业纷纷谋求数字化转型路径&#xff0c;优化生产流程、提高运营效率、降低生产成本&#xff0c;以应对变幻莫测的市场环境。IMS MCM是盘古信息为广…

python爬虫521

爬虫521 记录 记录 最近想学爬虫&#xff0c;尝试爬取自己账号下的文章标题做个词云 csdn有反爬机制 原理我就不说啦 大家都写了 看到大家结果是加cookie 但是我加了还是521报错 尝试再加了referer 就成功了(╹▽╹) import matplotlib import requests from wordcloud impor…

TinaSDKV2.0 自定义系统开发

TinaSDKV2.0 自定义系统开发 什么是自定义系统&#xff1f; TinaSDK Kconfig界面配置 Tina Linux采用 Kconfig 机制对 SDK 和内核进行配置。 Kconfig 是一种固定格式的配置文件。Linux 编译环境中的 menuconfig 程序可以识别这种格式的配置文件&#xff0c;并提取出有效信息…

使用redis模拟cookie-session,例子:实现验证码功能

在前后端分离架构中不建议使用cookie-session机制实现端状态识别 原因&#xff1a; 1.前后端分离存在跨域问题&#xff0c;cookie无法共享 2.后台服务器一旦建立集群&#xff0c;可能导致session数据丢失&#xff0c;即后台有多台服务器&#xff0c;每个服务器存的session不一…

Flutter ListView控件

ListView是flutter中线性排列的可滚动的列表部件。ListView 是最常用的滚动小部件。它在滚动方向上一个接一个地显示其子项。在交叉轴上&#xff0c;子项需要填满 ListView。 如果非空&#xff0c;则 itemExtent 会强制子项在滚动方向上具有给定的范围。 如果非空&#xff0c;…

kafka的一个有趣问题(BUG)

这是我的第104篇原创文章 问题由来 在使用kafka时&#xff0c;创建topic&#xff0c;对某个topic进行扩分区的操作&#xff0c;想必大家肯定都使用过。尤其是集群进行扩容时&#xff0c;对流量较大的topic进行扩分区操作。一般而言&#xff0c;期望的效果是&#xff1a;新扩的分…

【Qt】常用控件QPushButton

常用控件QPushButton QWidget中涉及的各种属性/函数/使用方法&#xff0c;对Qt中的各种控件都是有效的。 QPushButton继承自QAbstractButton。这个类是抽象类&#xff0c;是其他按钮的父类。 QAbstractButton中和QPushButton相关性比较大的属性。 属性说明 text 按钮中的⽂本…

TCP/UDP的对比,粘包分包抓包,http协议

服务器端&#xff1a; 一、loop 127.0.0.1本地回环测试地址 二、tcp特点 面向连接、可靠传输、字节流 粘包问题&#xff1a;tcp流式套接字&#xff0c;数据与数据之间没有套接字&#xff0c;导致可能多次的数据粘到一起 解决方法&#xff1a;&#xff08;1&#xff09;规…

后端Java秋招面试中的自我介绍需要说什么?

本文主要面向校招/实习面试中求职后端开发岗位的同学&#xff0c;其他岗位/社招的同学也可以参考&#xff0c;道理都是相通的 1 背景 1.1为什么要认真准备自我介绍&#xff1f; 1. 必要性&#xff1a;在求职面试中&#xff0c;一般来说同学和面试官打过招呼之后第一项就是自…

html+css+js网页设计 电商 珠宝首饰电商3个页面

htmlcssjs网页设计 电商 珠宝首饰电商3个页面 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 获取源码 1…

网络编程知识点总结

物理链路网络运输会话表示应用 物链网运会表应 实际的数据帧 TCP和UDP的异同&#xff08;笔试面试&#xff09; 主机&#xff1a;host 转换&#xff1a;to 网络&#xff1a;network uint32_t htonl(uint32_t hostlong); //将4字节无符号整数的主机字节序转换为网络字节序&a…

掌握语义内核(Semantic Kernel):如何使用Memories增强人工智能应用

随着人工智能领域的不断发展&#xff0c;语义内核&#xff08;Semantic Kernel&#xff09;的概念应运而生&#xff0c;为我们处理和理解庞大的数据集提供了新的视角。今天&#xff0c;我们将聚焦于语义内核中的一个核心概念——Memories&#xff0c;它是如何使我们的数据查询更…

QT中使用QAxObject类读取xlsx文件内容并显示在ui界面

一、源码 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACEclass MainWindow : public QMainWindow {Q_OBJECTpublic:MainWindow(QWidget *parent nullptr);~MainWindow();pr…

鸿蒙内核源码分析(共享内存) | 进程间最快通讯方式

运行机制 共享好端端的一词&#xff0c;近些年被玩坏了&#xff0c;共享单车,共享充电宝,共享办公室&#xff0c;共享雨伞… 甚至还有共享女朋友&#xff0c;真是人有多大胆&#xff0c;共享有多大产。但凡事太尽就容易恶心到人&#xff0c;自己也一度被 共享内存 恶心到了&am…

看图学sql之sql中的子查询

&#xfeff;&#xfeff; &#xfeff;where子句子查询 语法&#xff1a; SELECT column_name [, column_name ] FROM table1 [, table2 ] WHERE column_name OPERATOR(SELECT column_name [, column_name ]FROM table1 [, table2 ][WHERE]) 子查询需要放在括号( )内。O…

解决git checkout -b 拉取远端某分支到本地时报错

问题描述 日常开发场景中&#xff0c;经常会出现切分支的情况&#xff0c;所以git checkout 命令是非常高频的 git checkout -b feature/xxx默认情况下&#xff0c;这条命令是基于当前所在分支来开辟新分支feature/xxx 但是&#xff0c;还有一些情况&#xff0c;我们需要基于…

appium下载及安装

下载地址&#xff1a;https://github.com/appium/appium-desktop/releases 双击安装就可以

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(三)---创建自定义激光雷达Componet组件

前言 本系列教程旨在使用UE5配置一个具备激光雷达深度摄像机的仿真小车&#xff0c;并使用通过跨平台的方式进行ROS2和UE5仿真的通讯&#xff0c;达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础&#xff0c;Nav2相关的学习教程可以参考本人的其他博…