草庐IT

高维高斯分布基础

Adenialzz 2024-07-10 原文

高维高斯分布基础

多位高斯分布的几何理解

多维高斯分布表达式为:
p ( x ∣ μ , Σ ) = 1 ( 2 π ) p / 2 ∣ Σ ∣ 1 / 2 e − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) p(x|\mu,\Sigma)=\frac{1}{(2\pi)^{p/2}|\Sigma|^{1/2}}e^{-\frac{1}{2}(x-\mu)^{T}\Sigma^{-1}(x-\mu)} p(xμ,Σ)=(2π)p/2∣Σ1/21e21(xμ)TΣ1(xμ)
其中 x , μ ∈ R p , Σ ∈ R p × p x,\mu\in\mathbb{R}^{p},\Sigma\in\mathbb{R}^{p\times p} x,μRp,ΣRp×p Σ \Sigma Σ 为协方差矩阵,一般而言是半正定矩阵,这里我们强化一下条件,只考虑正定矩阵。

首先我们处理指数上的数字,指数上的数字可以记为 x x x μ \mu μ 之间的马氏距离

马氏距离(Mahalanobis Distance)是度量学习中一种常用的距离指标,同欧氏距离、曼哈顿距离、汉明距离等一样被用作评定数据之间的相似度指标。但却可以应对高维线性分布的数据中各维度间非独立同分布的问题。

两个向量 x \bf{x} x y \mathbf{y}{} y 之间的马氏距离为:
D M ( x , y ) = ( x − y ) T Σ − 1 ( x − y ) ) D_M(\bf{x},\bf{y})=\sqrt{(\bf{x}-\bf{y})^T\Sigma^{-1}(\bf{x}-\bf{y}))} DM(x,y)=(xy)TΣ1(xy))
其中 Σ \Sigma Σ 是多维随机变量的协方差矩阵, μ \mu μ 为样本均值,如果协方差矩阵是单位向量( Σ = I \Sigma=I Σ=I),也就是各维度独立同分布,马氏距离就变成了欧氏距离。

关于马氏距离,详见:马氏距离(Mahalanobis Distance)

对于对称的协方差矩阵可进行特征值分解, Σ = U Λ U T = ( u 1 , u 2 , ⋯   , u p ) d i a g ( λ i ) ( u 1 , u 2 , ⋯   , u p ) T = ∑ i = 1 p u i λ i u i T \Sigma=U\Lambda U^{T}=(u_{1},u_{2},\cdots,u_{p})diag(\lambda_{i})(u_{1},u_{2},\cdots,u_{p})^{T}=\sum\limits _{i=1}^{p}u_{i}\lambda_{i}u_{i}^{T} Σ=UΛUT=(u1,u2,,up)diag(λi)(u1,u2,,up)T=i=1puiλiuiT ,于是:
Σ − 1 = ∑ i = 1 p u i 1 λ i u i T \Sigma^{-1}=\sum\limits _{i=1}^{p}u_{i}\frac{1}{\lambda_{i}}u_{i}^{T} Σ1=i=1puiλi1uiT

Δ = ( x − μ ) T Σ − 1 ( x − μ ) = ∑ i = 1 p ( x − μ ) T u i 1 λ i u i T ( x − μ ) = ∑ i = 1 p y i 2 λ i \Delta=(x-\mu)^{T}\Sigma^{-1}(x-\mu)=\sum\limits _{i=1}^{p}(x-\mu)^{T}u_{i}\frac{1}{\lambda_{i}}u_{i}^{T}(x-\mu)=\sum\limits _{i=1}^{p}\frac{y_{i}^{2}}{\lambda_{i}} Δ=(xμ)TΣ1(xμ)=i=1p(xμ)Tuiλi1uiT(xμ)=i=1pλiyi2

我们注意到 y i y_{i} yi x − μ x-\mu xμ 在特征向量 u i u_{i} ui 上的投影长度,因此上式子就是 Δ \Delta Δ 取不同值时的同心椭圆。例如,在维度 P = 2 P=2 P=2 时,取 Δ = 1 \Delta=1 Δ=1,则有: y 1 2 λ 1 + y 2 2 λ 2 = 1 \frac{y_1^2}{\lambda_1}+\frac{y_2^2}{\lambda_2}=1 λ1y12+λ2y22=1 ,明显就是椭圆的曲线方程。

多维高斯模型的限制

下面我们看多维高斯模型在实际应用时的两个限制:

  1. 参数 Σ , μ \Sigma,\mu Σ,μ 的自由度为 O ( p 2 ) O(p^{2}) O(p2) 对于维度很高的数据其自由度太高。
    • 解决方案:高自由度的来源是 Σ \Sigma Σ p ( p + 1 ) 2 \frac{p(p+1)}{2} 2p(p+1) 个自由参数,可以假设其是对角矩阵,甚至假设其对角线上的元素都相同,此时称为各向同性的高斯分布。前一种的算法有 Factor Analysis,后一种有概率 PCA (p-PCA) 。
  2. 第二个问题是单个高斯分布是单峰的,对有多个峰的数据分布不能得到好的结果。
    • 解决方案:使用多个单高斯模型组合得到高斯混合模型 GMM。

多维高斯分布的边缘概率和条件概率

对于高斯模型的线性变换,有这样一个定理(暂不证明):

定理:已知 x ∼ N ( μ , Σ ) , y ∼ A x + b x\sim\mathcal{N}(\mu,\Sigma), y\sim Ax+b xN(μ,Σ),yAx+b x ∈ R p , y ∈ R p x\in\mathbb{R}^p,y\in\mathbb{R}^p xRp,yRp,那么 y ∼ N ( A μ + b , A Σ A T ) ,    Σ ∈ R p × p ,    A ∈ R 1 × p y\sim\mathcal{N}(A\mu+b, A\Sigma A^T),\ \ \Sigma \in \mathbb{R}^{p\times p },\ \ A\in\mathbb{R}^{1\times p} yN(Aμ+b,AΣAT),  ΣRp×p,  AR1×p

我们将 p p p 维样本数据拆分为 m + n m+n m+n 维: x = ( x 1 , x 2 , ⋯   , x p ) T = ( x a , m × 1 , x b , n × 1 ) T x=(x_1, x_2,\cdots,x_p)^T=(x_{a,m\times 1}, x_{b,n\times1})^T x=(x1,x2,,xp)T=(xa,m×1,xb,n×1)T

对应的高斯模型的参数也进行拆分:均值 μ = ( μ a , m × 1 , μ b , n × 1 ) T \mu=(\mu_{a,m\times1}, \mu_{b,n\times1})^T μ=(μa,m×1,μb,n×1)T,协方差矩阵 Σ = ( Σ a a Σ a b Σ b a Σ b b ) \Sigma=\begin{pmatrix}\Sigma_{aa}&\Sigma_{ab}\\\Sigma_{ba}&\Sigma_{bb}\end{pmatrix} Σ=(ΣaaΣbaΣabΣbb),已知 x ∼ N ( μ , Σ ) x\sim\mathcal{N}(\mu,\Sigma) xN(μ,Σ)

下面介绍如何求多维高斯分布的边缘概率和条件概率 p ( x a ) , p ( x b ) , p ( x a ∣ x b ) , p ( x b ∣ x a ) p(x_a),p(x_b),p(x_a|x_b),p(x_b|x_a) p(xa),p(xb),p(xaxb),p(xbxa)

求边缘概率

构造 x a = ( I m × m O m × n ) ( x a x b ) x_a=\begin{pmatrix}{I}_{m\times m}&{O}_{m\times n}\end{pmatrix}\begin{pmatrix}x_a\\x_b\end{pmatrix} xa=(Im×mOm×n)(xaxb),其中 I , O I,O I,O 分别是单位矩阵和零矩阵,代入上述定理中得到:
E [ x a ] = ( I O ) ( μ a μ b ) = μ a V a r [ x a ] = ( I O ) ( Σ a a Σ a b Σ b a Σ b b ) ( I O ) = Σ a a \mathbb{E}[x_a]=\begin{pmatrix}{I}&{O}\end{pmatrix}\begin{pmatrix}\mu_a\\\mu_b\end{pmatrix}=\mu_a\\ Var[x_a]=\begin{pmatrix}{I}&{O}\end{pmatrix}\begin{pmatrix}\Sigma_{aa}&\Sigma_{ab}\\\Sigma_{ba}&\Sigma_{bb}\end{pmatrix}\begin{pmatrix}{I}\\{O}\end{pmatrix}=\Sigma_{aa} E[xa]=(IO)(μaμb)=μaVar[xa]=(IO)(ΣaaΣbaΣabΣbb)(IO)=Σaa
所以 x a ∼ N ( μ a , Σ a a ) x_a\sim\mathcal{N}(\mu_a,\Sigma_{aa}) xaN(μa,Σaa), 边缘概率 p ( x a ) p(x_a) p(xa) 就得到了。 类似的, x b ∼ N ( μ b , Σ b b ) x_b\sim\mathcal{N}(\mu_b,\Sigma_{bb}) xbN(μb,Σbb)

求条件概率

对于两个条件概率,通常是用配方法(如 PRML 的证明),这里我们用一种构造法。首先引入三个量,令:
x b ⋅ a = x b − Σ b a Σ a a − 1 x a μ b ⋅ a = μ b − Σ b a Σ a a − 1 μ a Σ b b ⋅ a = Σ b b − Σ b a Σ a a − 1 Σ a b x_{b\cdot a}=x_b-\Sigma_{ba}\Sigma_{aa}^{-1}x_a\\ \mu_{b\cdot a}=\mu_b-\Sigma_{ba}\Sigma_{aa}^{-1}\mu_a\\ \Sigma_{bb\cdot a}=\Sigma_{bb}-\Sigma_{ba}\Sigma_{aa}^{-1}\Sigma_{ab} xba=xbΣbaΣaa1xaμba=μbΣbaΣaa1μaΣbba=ΣbbΣbaΣaa1Σab
特别的,最后一个式子叫做 Σ a a \Sigma_{aa} Σaa 的 Schur Complementary。可以看到:
x b ⋅ a = ( − Σ b a Σ a a − 1 I n × n ) ( x a x b ) x_{b\cdot a}=\begin{pmatrix}-\Sigma_{ba}\Sigma_{aa}^{-1}&{I}_{n\times n}\end{pmatrix}\begin{pmatrix}x_a\\x_b\end{pmatrix} xba=(ΣbaΣaa1In×n)(xaxb)
再有定理,有:
E [ x b ⋅ a ] = ( − Σ b a Σ a a − 1 I n × n ) ( μ a μ b ) = μ b ⋅ a V a r [ x b ⋅ a ] = ( − Σ b a Σ a a − 1 I n × n ) ( Σ a a Σ a b Σ b a Σ b b ) ( − Σ a a − 1 Σ b a T I n × n ) = Σ b b ⋅ a \mathbb{E}[x_{b\cdot a}]=\begin{pmatrix}-\Sigma_{ba}\Sigma_{aa}^{-1}&\mathbb{I}_{n\times n}\end{pmatrix}\begin{pmatrix}\mu_a\\\mu_b\end{pmatrix}=\mu_{b\cdot a}\\ Var[x_{b\cdot a}]=\begin{pmatrix}-\Sigma_{ba}\Sigma_{aa}^{-1}&{I}_{n\times n}\end{pmatrix}\begin{pmatrix}\Sigma_{aa}&\Sigma_{ab}\\\Sigma_{ba}&\Sigma_{bb}\end{pmatrix}\begin{pmatrix}-\Sigma_{aa}^{-1}\Sigma_{ba}^T\\{I}_{n\times n}\end{pmatrix}=\Sigma_{bb\cdot a} E[xba]=(ΣbaΣaa1In×n)(μaμb)=μbaVar[xba]=(ΣbaΣaa1In×n)(ΣaaΣbaΣabΣbb)(Σaa1ΣbaTIn×n)=Σbba
则对于我们构造的 x b ⋅ a x_{b\cdot a} xba ,有 x b ⋅ a ∼ N ( μ b ⋅ a , Σ b b ⋅ a ) x_{b\cdot a}\sim\mathcal{N}(\mu_{b\cdot a},\Sigma_{bb\cdot a}) xbaN(μba,Σbba) ,这里可以看到最初这个构造的设计中,核心的构造就是 x b ⋅ a x_{b\cdot a} xba ,而 μ b ⋅ a ,   Σ b b ⋅ a \mu_{b\cdot a},\ \Sigma_{bb\cdot a} μba, Σbba 只是两个记号,在这种构造的推导下来表示一下均值和方差。

由我们最初的构造,有 x b = x b ⋅ a + Σ b a Σ a a − 1 x a x_b=x_{b\cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_a xb=xba+ΣbaΣaa1xa ,再由定理:
E [ x b ∣ x a ] = μ b ⋅ a + Σ b a Σ a a − 1 x a \mathbb{E}[x_b|x_a]=\mu_{b\cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_a E[xbxa]=μba+ΣbaΣaa1xa

V a r [ x b ∣ x a ] = Σ b b ⋅ a Var[x_b|x_a]=\Sigma_{bb\cdot a} Var[xbxa]=Σbba

所以 x b ∣ x a ∼ N ( μ b ⋅ a + Σ b a Σ a a − 1 x a , Σ b b ⋅ a ) x_b|x_a\sim \mathcal{N}(\mu_{b\cdot a}+\Sigma_{ba}\Sigma_{aa}^{-1}x_a,\Sigma_{bb\cdot a}) xbxaN(μba+ΣbaΣaa1xa,Σbba) 。类似的, x a ∣ x b ∼ N ( μ a ⋅ b + Σ a b Σ b b − 1 x b , Σ a a ⋅ b ) x_a|x_b\sim \mathcal{N}(\mu_{a\cdot b}+\Sigma_{ab}\Sigma_{bb}^{-1}x_b,\Sigma_{aa\cdot b}) xaxbN(μab+ΣabΣbb1xb,Σaab)

根据边缘概率和条件概率求联合概率

已知: p ( x ) = N ( μ , Λ − 1 ) , p ( y ∣ x ) = N ( A x + b , L − 1 ) p(x)=\mathcal{N}(\mu,\Lambda^{-1}),p(y|x)=\mathcal{N}(Ax+b,L^{-1}) p(x)=N(μ,Λ1),p(yx)=N(Ax+b,L1),求解: p ( y ) , p ( x ∣ y ) p(y),p(x|y) p(y),p(xy)

  1. 这种类型的问题在线性高斯模型、PCA降维等机器学习模型中经常出现。
  2. 这里的 Λ , L \Lambda, L Λ,L 称为精度矩阵,它们是协方差矩阵的逆。

解:令 y = A x + b + ϵ , ϵ ∼ N ( 0 , L − 1 ) y=Ax+b+\epsilon,\epsilon\sim\mathcal{N}(0,L^{-1}) y=Ax+b+ϵ,ϵN(0,L1),且 ϵ \epsilon ϵ x x x 相互独立,还是根据上节的定理,有
E [ y ] = E [ A x + b + ϵ ] = A μ + b V a r [ y ] = A Λ − 1 A T + L − 1 \mathbb{E}[y]=\mathbb{E}[Ax+b+\epsilon]=A\mu+b\\ Var[y]=A \Lambda^{-1}A^T+L^{-1} E[y]=E[Ax+b+ϵ]=Aμ+bVar[y]=AΛ1AT+L1
此时,就已经得到 y ∼ N ( A μ + b , L − 1 + A Λ − 1 A T ) y\sim\mathcal{N}(A\mu+b,L^{-1}+A\Lambda^{-1}A^T) yN(Aμ+b,L1+AΛ1AT) ,即 p ( y ) = N ( A μ + b , L − 1 + A Λ − 1 A T ) p(y)=\mathcal{N}(A\mu+b,L^{-1}+A\Lambda^{-1}A^T) p(y)=N(Aμ+b,L1+AΛ1AT)

因此:
V a r [ x ∣ y ] = Λ − 1 − Λ − 1 A T ( L − 1 + A Λ − 1 A T ) − 1 A Λ − 1 Var[x|y]=\Lambda^{-1}-\Lambda^{-1}A^T(L^{-1}+A\Lambda^{-1}A^T)^{-1}A\Lambda^{-1} Var[xy]=Λ1Λ1AT(L1+AΛ1AT)1AΛ1
引入 z = ( x y ) z=\begin{pmatrix}x\\y\end{pmatrix} z=(xy),我们可以得到 C o v [ x , y ] = E [ ( x − E [ x ] ) ( y − E [ y ] ) T ] Cov[x,y]=\mathbb{E}[(x-\mathbb{E}[x])(y-\mathbb{E}[y])^T] Cov[x,y]=E[(xE[x])(yE[y])T]。对于这个协方差可以直接计算:
C o v ( x , y ) = E [ ( x − E [ x ] ) ( y − E [ y ] ) T ] = E [ ( x − μ ) ( A x + b − A μ − b + ϵ ) T ] = E [ ( x − μ ) ( A x − A μ + ϵ ) T ] = E [ ( x − μ ) ( A x − A μ ) T + ( x − μ ) ϵ T ] = E [ ( x − μ ) ( A x − A μ ) T ] = E [ ( x − μ ) ( x − μ ) T ] A T = V a r [ x ] A T = Λ − 1 A T \begin{align} Cov(x,y)&=\mathbb{E}[(x-\mathbb{E}[x])(y-\mathbb{E}[y])^T]\\ &=\mathbb{E}[(x-\mu)(Ax+b-A\mu-b+\epsilon)^T]\\ &=\mathbb{E}[(x-\mu)(Ax-A\mu+\epsilon)^T]\\ &=\mathbb{E}[(x-\mu)(Ax-A\mu)^T+(x-\mu)\epsilon^T]\\ &=\mathbb{E}[(x-\mu)(Ax-A\mu)^T]\\ &=\mathbb{E}[(x-\mu)(x-\mu)^T]A^T\\ &=Var[x]A^T\\ &=\Lambda^{-1}A^T \end{align} Cov(x,y)=E[(xE[x])(yE[y])T]=E[(xμ)(Ax+bAμb+ϵ)T]=E[(xμ)(AxAμ+ϵ)T]=E[(xμ)(AxAμ)T+(xμ)ϵT]=E[(xμ)(AxAμ)T]=E[(xμ)(xμ)T]AT=Var[x]AT=Λ1AT
注意到协方差矩阵的对称性,所以 p ( z ) = N ( μ A μ + b ) , ( Λ − 1 Λ − 1 A T A Λ − 1 L − 1 + A Λ − 1 A T ) ) p(z)=\mathcal{N}\begin{pmatrix}\mu\\A\mu+b\end{pmatrix},\begin{pmatrix}\Lambda^{-1}&\Lambda^{-1}A^T\\A\Lambda^{-1}&L^{-1}+A\Lambda^{-1}A^T\end{pmatrix}) p(z)=N(μAμ+b),(Λ1AΛ1Λ1ATL1+AΛ1AT))。根据上一节的公式,我们可以得到:
E [ x ∣ y ] = μ + Λ − 1 A T ( L − 1 + A Λ − 1 A T ) − 1 ( y − A μ − b ) \mathbb{E}[x|y]=\mu+\Lambda^{-1}A^T(L^{-1}+A\Lambda^{-1}A^T)^{-1}(y-A\mu-b) E[xy]=μ+Λ1AT(L1+AΛ1AT)1(yAμb)

V a r [ x ∣ y ] = Λ − 1 − Λ − 1 A T ( L − 1 + A Λ − 1 A T ) − 1 A Λ − 1 Var[x|y]=\Lambda^{-1}-\Lambda^{-1}A^T(L^{-1}+A\Lambda^{-1}A^T)^{-1}A\Lambda^{-1} Var[xy]=Λ1Λ1AT(L1+AΛ1AT)1AΛ1

故得到: p ( x ∣ y ) = N ( μ + Λ − 1 A T ( L − 1 + A Λ − 1 A T ) − 1 ( y − A μ − b ) , Λ − 1 − Λ − 1 A T ( L − 1 + A Λ − 1 A T ) − 1 A Λ − 1 ) p(x|y)=\mathcal{N}(\mu+\Lambda^{-1}A^T(L^{-1}+A\Lambda^{-1}A^T)^{-1}(y-A\mu-b),\Lambda^{-1}-\Lambda^{-1}A^T(L^{-1}+A\Lambda^{-1}A^T)^{-1}A\Lambda^{-1}) p(xy)=N(μ+Λ1AT(L1+AΛ1AT)1(yAμb),Λ1Λ1AT(L1+AΛ1AT)1AΛ1)

Ref

  1. 机器学习白板推导
  2. 马氏距离(Mahalanobis Distance)
  3. 机器学习白板推导笔记

有关高维高斯分布基础的更多相关文章

  1. ruby - 分布式事务和队列,ruby,erlang,scala - 2

    我有一个涉及多台机器、消息队列和事务的问题。因此,例如用户点击网页,点击将消息发送到另一台机器,该机器将付款添加到用户的帐户。每秒可能有数千次点击。事务的所有方面都应该是容错的。我以前从未遇到过这样的事情,但一些阅读表明这是一个众所周知的问题。所以我的问题。我假设安全的方法是使用两阶段提交,但协议(protocol)是阻塞的,所以我不会获得所需的性能,我是否正确?我通常写Ruby,但似乎Redis之类的数据库和Rescue、RabbitMQ等消息队列系统对我的帮助不大——即使我实现某种两阶段提交,如果Redis崩溃,数据也会丢失,因为它本质上只是内存。所有这些让我开始关注erlang和

  2. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  3. 软件测试基础 - 2

    Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功

  4. ES基础入门 - 2

    ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear

  5. 【网络】-- 网络基础 - 2

    (本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展        是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。    如:有三个人,每个人做的不同的事物,但是是需要协作的完成。    而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据

  6. ruby - 停止分布式 Ruby 服务 - 2

    我有一个启动DRb服务的脚本,然后生成处理程序对象并通过DRb.thread.join等待。我希望脚本一直运行直到被明确杀死,所以我添加了trap"INT"doDRb.stop_serviceend在Ruby1.8下成功停止DRb服务并退出,但在1.9下似乎死锁(在OSX10.6.7上)。对该进程进行采样显示在semaphore_wait_signal_trap中有几个线程在旋转。我假设我在调用stop_service时做错了什么,但我不确定是什么。谁能给我任何关于如何正确处理它的指示? 最佳答案 好的,我想我已经找到了解决方案。如

  7. 【Elasticsearch基础】Elasticsearch索引、文档以及映射操作详解 - 2

    文章目录概念索引相关操作创建索引更新副本查看索引删除索引索引的打开与关闭收缩索引索引别名查询索引别名文档相关操作新建文档查询文档更新文档删除文档映射相关操作查询文档映射创建静态映射创建索引并添加映射概念es中有三个概念要清楚,分别为索引、映射和文档(不用死记硬背,大概有个印象就可以)索引可理解为MySQL数据库;映射可理解为MySQL的表结构;文档可理解为MySQL表中的每行数据静态映射和动态映射上面已经介绍了,映射可理解为MySQL的表结构,在MySQL中,向表中插入数据是需要先创建表结构的;但在es中不必这样,可以直接插入文档,es可以根据插入的文档(数据),动态的创建映射(表结构),这就

  8. c++基础-运算符 - 2

    目录1关系运算符2运算符优先级3关系表达式的书写代码实例:下面是面试中可能遇到的问题:1关系运算符C++中有6个关系运算符,用于比较两个值的大小关系,它们分别是:运算符描述==等于!=不等于小于>大于小于等于>=大于等于这些运算符返回一个布尔值,即true或false。例如,当x等于y时,x==y的结果为true,否则结果为false。2运算符优先级在C++中,关系运算符的优先级高于赋值运算符,但低于算术运算符。以下是关系运算符的优先级,从高到低排列:运算符描述>,,>=,关系运算符==,!=相等性运算符&&逻辑与`如果在表达式中有多个运算符,则按照优先级顺序依次进行运算。3关系表达式的书写在

  9. 计算机必读基础书籍 - 2

    一.计算机组成原理    这本书利用组合逻辑、同步时序逻辑电路设计的相关知识,从逻辑门开始逐步构建运算器、存储器、数据通路和控制器,最终集成为完整的CU原型系统,使读者从设计者的角度理解计算机部件构成及运行的基本原理,掌握软硬件协同的概念。    全书共9章,主要内容包括计算机系统概述、数据信息的表示、运算方法与运算器、存储系统、指令系统、中央处理器、指令流水线、总线系统、输入输出系统。1.计算机系统概述1.1计算机发展历程    计算机是一种能够按照事先存储的程序,自动、高速、准确地对相关信息进行处理的电子设备。1946年2月,世界上第一台电子数字计算机ENIAC(ElectronicNum

  10. 0基础学习软件测试有哪些建议 - 2

    其实现在基础的资料和视频到处都是,就是看你有没有认真的去找学习资源了,去哪里学习都是要看你个人靠谱不靠谱,再好的教程和老师,你自己学习不进去也是白搭在正式选择之前,大可以在各种学习网站里面找找学习资源先自己学习一下为什么选择学软件测试?同学们理由众多!大概分这几类:①不受开发语言、行业产品变化限制;②入门更简单,对零基础、女生都友好;③软件项目都需要测试人员,职业生涯稳;④学习周期短,但薪资并不低。要想“肩扛”一条线?需掌握三大技能:技能1:掌握测试流程,熟悉系统框架能提前与开发人员一起制定测试计划,通过测试左移,推动代码评审,代码审计,单元测试,自动化冒烟测试,来保证研发阶段的质量。技能2:

随机推荐