透徹理解:方差、協方差、相關系數、協方差矩陣及其應用

最近看了幾篇跨領域特征對齊方面的經典文獻,學者們搞了很多花樣,如有的提出一階統計特征對齊,有的提出二階統計特征對齊,有的學者提出高階統計特征對齊。

通俗而言,就是在統計特征層面對跨域特征進行對齊,如對齊一階矩(均值)、二階矩(方差)、三階矩(偏度)。為此,本文系統的梳理了一遍概率與統計相關的知識點。

目錄

  • 1. 方差
    • 總體方差
    • 樣本方差
  • 2. 協方差
    • 性質
  • 3. 相關系數
    • 公式推導
    • 性質
  • 4. 協方差矩陣
    • 公式推導
  • 5. 總結

1. 方差

隨機變量 X X X與均值 E [ X ] E[X] E[X]的偏離程度可以表示為 ∣ X ? E [ X ] ∣ |X-E[X]| X?E[X],為了便于計算考慮 ( X ? E [ X ] ) 2 (X-E[X])^2 (X?E[X])2。由于 ( X ? E [ X ] ) 2 (X-E[X])^2 (X?E[X])2任是一個隨機變量,因此其均值 E [ ( X ? E [ X ] ) 2 ] E[(X-E[X])^2] E[(X?E[X])2]可以反映隨機變量 X X X的波動程度,記為
V ( X ) = E [ ( X ? E [ X ] ) 2 ] V(X)=E[(X-E[X])^2] V(X)=E[(X?E[X])2]

注:本文僅分析離散型隨機變量。

總體方差

σ 2 = 1 N ∑ i = 1 N ( x i ? μ ) 2 \sigma^2=\frac{1}{N}\sum_{i=1}^{N}(x_i-\mu)^2 σ2=N1?i=1N?(xi??μ)2

式中, σ 2 \sigma^2 σ2表示總體方差, N N N表示總體樣本的個數, μ \mu μ表示總體均值。

樣本方差

在實際生活中,總體樣本是未知的,一般是采用抽樣的方法獲得部分樣本,因為采用無偏估計可以修正樣本估計的偏差,計算公式如下:
S 2 = 1 n ? 1 ∑ i = 1 n ( x i ? x ˉ ) 2 S^2=\frac{1}{n-1}\sum_{i=1}^{n}(x_i-\bar{x})^2 S2=n?11?i=1n?(xi??xˉ)2
式中, S 2 S^2 S2表示樣本方差, n n n表示抽樣的樣本個數(觀測樣本個數), x ˉ \bar{x} xˉ表示觀測的樣本均值。

在后續的方差計算中,均是默認采用無偏估計,且在python的一些包中也均采用的是無偏估計。

編程實現:

x = torch.randn(10)mu = torch.mean(x)
var = torch.sum((x-mu)*(x-mu)) / (10-1) # tensor(0.6017)

內置函數torch.var

var = torch.var(x) # tensor(0.6017)

2. 協方差

用于描述二維隨機變量 ( X , Y ) (X, Y) (X,Y)之間的相互關系,定義為
C o v ( X , Y ) = E [ ( X ? μ X ) ( Y ? μ Y ) ] Cov(X, Y)=E[(X-\mu_{X})(Y-\mu_{Y})] Cov(X,Y)=E[(X?μX?)(Y?μY?)]
式中, μ X , μ Y \mu_{X},\mu_{Y} μX?,μY?分別表示隨機變量 X 、 Y X、Y XY的期望。

方差用于描述單個隨機變量的波動程度,協方差則是度量二維隨機變量的相關程度。當 X = Y X=Y X=Y,則協方差就退化為方差,因此可以認為協方差是方差的一個特例

性質

關于協方差的一些性質均可以由期望 E [ X ] E[X] E[X]和方差 V [ X ] V[X] V[X]的性質推導得來,畢竟協方差也是方差的一種。因此,下面僅列舉了協方差的結論,推導省略。

  • C o v ( X , Y ) > 0 Cov(X,Y)>0 Cov(X,Y)>0:隨機變量 X X X Y Y Y正相關。

  • C o v ( X , Y ) < 0 Cov(X,Y)<0 Cov(X,Y)<0:隨機變量 X X X Y Y Y負相關。

  • C o v ( X , Y ) = 0 Cov(X,Y)=0 Cov(X,Y)=0:隨機變量 X X X Y Y Y不相關。

  • C o v ( X , Y ) = C o v ( Y , X ) Cov(X,Y)=Cov(Y,X) Cov(X,Y)=Cov(Y,X)

  • C o v ( X , X ) = V ( X ) Cov(X,X)=V(X) Cov(X,X)=V(X)

  • C o v ( a X , b Y ) = a b × C o v ( X , Y ) Cov(aX,bY)=ab \times Cov(X,Y) Cov(aX,bY)=ab×Cov(X,Y)

  • C o v ( X + a , Y + b ) = C o v ( X , Y ) Cov(X+a,Y+b)=Cov(X,Y) Cov(X+a,Y+b)=Cov(X,Y)

  • C o v ( X , Y ) = E [ X Y ] ? E [ X ] E [ Y ] Cov(X,Y)=E[XY]-E[X]E[Y] Cov(X,Y)=E[XY]?E[X]E[Y]

編程實現:

x = torch.randn(10)
mu_x = torch.mean(x)
y = torch.randn(10)
mu_y = torch.mean(y)cov_xy = torch.sum((x-mu_x)*(y-mu_y)) / (10-1) # tensor(-0.3363)

內置函數torch.cov

xy = torch.stack((x, y)) # size (2, 10)cov_matrix = torch.cov(xy) # size (2, 2) 
cov_xy = cov_matrix[0, 1]  # tensor(-0.3363)

由于torch.cov返回的是協方差矩陣,所以對角線上的是方差,非對角線上的是協方差。(見第4節的分析)

3. 相關系數

協方差數值大小并不能反應相互關系的強弱,如 C o v ( X , Y ) Cov(X,Y) Cov(X,Y) C o v ( a X , b Y ) Cov(aX,bY) Cov(aX,bY)兩者的協方差值相差 a b ab ab倍,但是他們分布趨勢幾乎一樣。因此,無法直接通過協方差值的大小來判斷兩個隨機變量的分布關系。

C o v ( a X , b Y ) = a b × C o v ( X , Y ) Cov(aX,bY)=ab\times Cov(X,Y) Cov(aX,bY)=ab×Cov(X,Y)

相關系數通過對隨機變量進行標準化處理,可以消除這一干擾,統一度量范圍,記為
ρ X Y = C o v ( X , Y ) σ X σ Y \rho_{XY}=\frac{Cov(X,Y)}{\sigma_X \sigma_Y} ρXY?=σX?σY?Cov(X,Y)?
式中, ρ X Y \rho_{XY} ρXY?記為相關系數, σ X \sigma_X σX?表示隨機變量 X X X的標準差( σ X = V [ X ] \sigma_X=\sqrt{V[X]} σX?=V[X] ?)。

公式推導

記隨機變量 X 、 Y X、Y XY的期望和標準差分別為 μ X , μ Y , σ X , σ Y \mu_X,\mu_Y,\sigma_X,\sigma_Y μX?,μY?,σX?,σY?,標準化處理如下
X ~ = X ? μ X σ X , Y ~ = Y ? μ Y σ Y \widetilde{X}=\frac{X-\mu_X}{\sigma_X},\ \widetilde{Y}=\frac{Y-\mu_Y}{\sigma_Y} X =σX?X?μX??,?Y =σY?Y?μY??
所以歸一化后的隨機變量 X ~ 、 Y ~ \tilde{X}、\tilde{Y} X~Y~協方差為
C o v ( X ~ , Y ~ ) = C o v ( X ? μ X σ X , Y ? μ Y σ Y ) = C o v ( X ? μ X , Y ? μ Y ) σ X σ Y = C o v ( X , Y ) σ X σ Y = ρ X Y \begin{align*} Cov(\tilde{X},\tilde{Y}) &= Cov(\frac{X-\mu_X}{\sigma_X},\frac{Y-\mu_Y}{\sigma_Y}) \\ &= \frac{Cov(X-\mu_X, Y-\mu_Y)}{\sigma_X \sigma_Y} \\ &= \frac{Cov(X, Y)}{\sigma_X \sigma_Y} \\ &= \rho_{XY} \end{align*} Cov(X~,Y~)?=Cov(σX?X?μX??,σY?Y?μY??)=σX?σY?Cov(X?μX?,Y?μY?)?=σX?σY?Cov(X,Y)?=ρXY??
所以,相關系數可以看做是標準化變量的協方差

性質

1)不受縮放比例的影響。

Z = a X , W = b Y Z=aX,W=bY Z=aX,W=bY,則隨機變量 Z , W Z,W Z,W的相關系數為
ρ Z W = C o v ( Z , W ) σ Z σ W = C o v ( a X , b Y ) V [ a X ] V [ b Y ] = a b C o v ( X , Y ) a 2 V [ X ] b 2 V [ Y ] = ρ X Y \begin{align*} \rho_{ZW} &= \frac{Cov(Z,W)}{\sigma_Z \sigma_W} \\ &= \frac{Cov(aX,bY)}{\sqrt{V[aX]} \sqrt{V[bY]}} \\ &= \frac{abCov(X,Y)}{\sqrt{a^2V[X]} \sqrt{b^2V[Y]}} \\ &= \rho_{XY} \end{align*} ρZW??=σZ?σW?Cov(Z,W)?=V[aX] ?V[bY] ?Cov(aX,bY)?=a2V[X] ?b2V[Y] ?abCov(X,Y)?=ρXY??

2)不受隨機變量加減的影響。

Z = X + a , W = Y + b Z=X+a,W=Y+b Z=X+a,W=Y+b,則隨機變量 Z , W Z,W Z,W的相關系數為
ρ Z W = C o v ( Z , W ) σ Z σ W = C o v ( X + a , Y + b ) V [ X + a ] V [ Y + b ] = C o v ( X , Y ) V [ X ] V [ Y ] = ρ X Y \begin{align*} \rho_{ZW} &= \frac{Cov(Z,W)}{\sigma_Z \sigma_W} \\ &= \frac{Cov(X+a,Y+b)}{\sqrt{V[X+a]} \sqrt{V[Y+b]}} \\ &= \frac{Cov(X,Y)}{\sqrt{V[X]} \sqrt{V[Y]}} \\ &= \rho_{XY} \end{align*} ρZW??=σZ?σW?Cov(Z,W)?=V[X+a] ?V[Y+b] ?Cov(X+a,Y+b)?=V[X] ?V[Y] ?Cov(X,Y)?=ρXY??

編程實現:

x = torch.randn(10)
mu_x = torch.mean(x)y = torch.randn(10)
mu_y = torch.mean(y)cov_xy = torch.sum((x-mu_x)*(y-mu_y)) / (10-1) # xy協方差
x_std = torch.std(x) # x的標準差
y_std = torch.std(y) # y的標準差r_xy = cov_xy / (x_std * y_std) # tensor(0.1423)

內置函數torch.corrcoef

xy = torch.stack((x, y)) # size (2, 10)
r_matrix = torch.corrcoef(xy) # size (2,2), 對角線值全為1
r_xy = r_matrix[0,1] # tensor(0.1423)

4. 協方差矩陣

協方差是計算兩個隨機變量的相關性,協方差矩陣是計算三個及以上隨機變量的相關性。假設有三個隨機變量 X 1 , X 2 , X 3 X_1,X_2,X_3 X1?,X2?,X3?,則對應的協方差矩陣一覽表為

隨機變量 X 1 X_1 X1? X 2 X_2 X2? X 3 X_3 X3?
X 1 X_1 X1? C o v ( X 1 , X 1 ) Cov(X_1,X_1) Cov(X1?,X1?) C o v ( X 1 , X 2 ) Cov(X_1,X_2) Cov(X1?,X2?) C o v ( X 1 , X 3 ) Cov(X_1,X_3) Cov(X1?,X3?)
X 2 X_2 X2? C o v ( X 2 , X 1 ) Cov(X_2,X_1) Cov(X2?,X1?) C o v ( X 2 , X 2 ) Cov(X_2,X_2) Cov(X2?,X2?) C o v ( X 2 , X 3 ) Cov(X_2,X_3) Cov(X2?,X3?)
X 3 X_3 X3? C o v ( X 3 , X 1 ) Cov(X_3,X_1) Cov(X3?,X1?) C o v ( X 3 , X 2 ) Cov(X_3,X_2) Cov(X3?,X2?) C o v ( X 3 , X 3 ) Cov(X_3,X_3) Cov(X3?,X3?)

將上述一覽表寫成協方差矩陣的形式
Σ = [ V ( X 1 ) C o v ( X 1 , X 2 ) C o v ( X 1 , X 3 ) C o v ( X 2 , X 1 ) V ( X 2 ) C o v ( X 2 , X 3 ) C o v ( X 3 , X 1 ) C o v ( X 3 , X 2 ) V ( X 3 ) ] 3 × 3 \Sigma= \begin{bmatrix} V(X_1) & Cov(X_1,X_2) & Cov(X_1, X_3) \\ Cov(X_2, X_1) & V(X_2) & Cov(X_2, X_3) \\ Cov(X_3, X_1) & Cov(X_3,X_2) & V(X_3) \end{bmatrix} _{3\times 3} Σ= ?V(X1?)Cov(X2?,X1?)Cov(X3?,X1?)?Cov(X1?,X2?)V(X2?)Cov(X3?,X2?)?Cov(X1?,X3?)Cov(X2?,X3?)V(X3?)? ?3×3?
式中, Σ \Sigma Σ表示協方差矩陣, V ( X ) V(X) V(X)表示隨機變量的方差, V ( X ) = C o v ( X , X ) V(X)=Cov(X,X) V(X)=Cov(X,X)

一般而言, σ 2 \sigma^2 σ2表示方差,大寫的*\Sigma*表示協方差矩陣 Σ \Sigma Σ

為了提高代碼的效率,一般采用向量化編程思想計算多個隨機變量的協方差矩陣 Σ \Sigma Σ
Σ = E [ ( X ? μ ) ( X ? μ ) T ] \Sigma = E[(\bold{X}-\boldsymbol{\mu})(\bold{X}-\boldsymbol{\mu})^T] Σ=E[(X?μ)(X?μ)T]
式中, X ∈ R d × n , μ ∈ R d × 1 , Σ ∈ R d × d \bold{X}\in \R^{d\times n},\boldsymbol{\mu}\in \R^{d\times 1}, \Sigma \in \R^{d\times d} XRd×nμRd×1,ΣRd×d n n n是觀測樣本的個數, d d d是隨機變量的個數, μ \boldsymbol{\mu} μ是均值向量,包含了每個隨機變量對應的均值。

補充理解:

  • X = [ X 1 、 X 2 、 X 3 ] \bold{X}=[X_1、X_2、X_3] X=[X1?X2?X3?]包含了三個隨機變量。
  • 可以從隨機變量 X 1 X_1 X1?中取值,這些取出來的值稱為觀測樣本,因為離散型隨機變量的取值為有限個值(或可列個值),如從中取出 n n n個觀測樣本 { x 1 , x 2 , . . . , x n } \{x_1,x_2,...,x_n\} {x1?,x2?,...,xn?}
  • 對應于我們的訓練樣本則 n n n是訓練樣本個數, d d d是每個樣本對應的特征維數。

公式推導

下面以隨機變量個數為3,推導上述公式成立
X = [ X 1 , X 2 , X 3 ] T μ = E [ X ] = [ μ 1 , μ 2 , μ 3 ] T X ? μ = [ X 1 ? μ 1 , X 2 ? μ 2 , X 3 ? μ 3 ] T \begin{align*} \bold{X} &= [X_1, X_2, X_3]^T \\ \boldsymbol{\mu} &= E[X]=[\mu_1,\mu_2,\mu_3]^T \\ \bold{X} - \boldsymbol{\mu} &= [X_1-\mu_1, X_2-\mu_2, X_3-\mu_3]^T \end{align*} XμX?μ?=[X1?,X2?,X3?]T=E[X]=[μ1?,μ2?,μ3?]T=[X1??μ1?,X2??μ2?,X3??μ3?]T?
則有
E [ ( X ? μ ) ( X ? μ ) T ] = E [ ( X 1 ? μ 1 , X 2 ? μ 2 , X 3 ? μ 3 ) T × ( X 1 ? μ 1 , X 2 ? μ 2 , X 3 ? μ 3 ) ] = E [ ( ( X 1 ? μ 1 ) 2 ( X 1 ? μ 1 ) ( X 2 ? μ 2 ) ( X 1 ? μ 1 ) ( X 3 ? μ 3 ) ( X 2 ? μ 2 ) ( X 1 ? μ 1 ) ( X 2 ? μ 2 ) 2 ( X 2 ? μ 2 ) ( X 3 ? μ 3 ) ( X 3 ? μ 3 ) ( X 1 ? μ 1 ) ( X 3 ? μ 3 ) ( X 2 ? μ 2 ) ( X 3 ? μ 3 ) 2 ) ] = ( V ( X 1 ) C o v ( X 1 , X 2 ) C o v ( X 1 , X 3 ) C o v ( X 2 , X 1 ) V ( X 2 ) C o v ( X 2 , X 3 ) C o v ( X 3 , X 1 ) C o v ( X 3 , X 2 ) V ( X 3 ) ) \begin{align*} & E[(\bold{X} - \boldsymbol{\mu} )(\bold{X} - \boldsymbol{\mu} )^T] \\ &= E[(X_1-\mu_1, X_2-\mu_2, X_3-\mu_3)^T \times (X_1-\mu_1, X_2-\mu_2, X_3-\mu_3)] \\ &= E \begin{bmatrix} \begin{pmatrix} (X_1-\mu_1)^2 & (X_1-\mu_1)(X_2-\mu_2) & (X_1-\mu_1)(X_3-\mu_3) \\ (X_2-\mu_2)(X_1-\mu_1) & (X_2-\mu_2)^2 & (X_2-\mu_2)(X_3-\mu_3) \\ (X_3-\mu_3)(X_1-\mu_1) & (X_3-\mu_3)(X_2-\mu_2) & (X_3-\mu_3)^2 \end{pmatrix} \end{bmatrix} \\ &= \begin{pmatrix} V(X_1) & Cov(X_1,X_2) & Cov(X_1, X_3) \\ Cov(X_2, X_1) & V(X_2) & Cov(X_2, X_3) \\ Cov(X_3, X_1) & Cov(X_3,X_2) & V(X_3) \end{pmatrix} \end{align*} ?E[(X?μ)(X?μ)T]=E[(X1??μ1?,X2??μ2?,X3??μ3?)T×(X1??μ1?,X2??μ2?,X3??μ3?)]=E ? ?(X1??μ1?)2(X2??μ2?)(X1??μ1?)(X3??μ3?)(X1??μ1?)?(X1??μ1?)(X2??μ2?)(X2??μ2?)2(X3??μ3?)(X2??μ2?)?(X1??μ1?)(X3??μ3?)(X2??μ2?)(X3??μ3?)(X3??μ3?)2? ?? ?= ?V(X1?)Cov(X2?,X1?)Cov(X3?,X1?)?Cov(X1?,X2?)V(X2?)Cov(X3?,X2?)?Cov(X1?,X3?)Cov(X2?,X3?)V(X3?)? ??

編程實現:

S = torch.randn(5, 32) # 5個樣本,每個樣本特征維度32
X = S.T
mu = X.mean(1).reshape(-1, 1) # 計算X每行的均值x = (X - mu) @ (X - mu).T
cov_x1 = x / (5-1)  #協方差矩陣

內置函數torch.cov

cov_x2 = torch.cov(S.T) # 計算協方差矩陣# 驗證cov_x1與cov_x2是否相等
diff = (cov_x1 - cov_x2).sum() # diff=0

需要注意的是,torch.cov(input)的輸入input要求大小為 d × n d\times n d×n n n n代表的是觀測樣本的個數,也就是訓練數據的樣本個數; d d d代表的是隨機變量的個數,可以理解為樣本的特征維數。

所以在輸入torch.cov之前,需要將訓練樣本 X ∈ R n × d X \in \R^{n\times d} XRn×d進行轉置。

5. 總結

  • 如果需要評價相關性或相似性,前提是變量之間本身就具有線性關系,否則上述評價方法失效。

  • 期望是一階矩(一階原點矩),方差(協方差)是二階矩(二階中心距)。

  • 在深度學習相關的方法中,可能會引入上述相關的統計特征對分布偏差進行約束。

參考:

[1]《概率論與數理統計教程》茆詩松等。
[2] 《程序員的數學2 概率統計》平岡和幸等。
[3] wiki-方差

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70680.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70680.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70680.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity基礎學習(二)

二、Mono中的重要內容 1、延遲函數 &#xff08;1&#xff09;延遲函數定義 延遲執行的函數&#xff0c;可以設定要延遲執行的函數和具體延遲的時間 &#xff08;2&#xff09;延遲函數的使用 #region 1、延遲函數//函數&#xff1a;Invoke(函數名/字符串&#xff0c;延遲時…

20250212:ZLKMedia 推流

1:資料 快速開始 ZLMediaKit/ZLMediaKit Wiki GitHub GitHub - ZLMediaKit/ZLMediaKit: WebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT server and client framework based on C++11 文檔里面提供了各個系…

Holoens2開發報錯記錄02_通過主機獲取彩色和深度數據流常見錯誤

01.E1696 E1696 無法打開源文件 “stdio.h” 解決方法&#xff1a; 更新一下SDK 1&#xff09;打開Visual Studio Installer&#xff0c;點擊修改 2&#xff09;安裝詳細信息中自己系統對應的SDK&#xff0c;點擊修改即可 02.WinError 10060 方法來源 解決方法&#xff1a…

【Qt之QQuickWidget】QML嵌入QWidget中

由于我項目開始使用Widgets,換公司后直接使用QML開發&#xff0c;沒有了解過如何實現widget到qml過渡&#xff0c;恰逢面試時遇到一家公司希望從widget遷移到qml開發&#xff0c;詢問相關實現&#xff0c;一時語塞&#xff0c;很尷尬&#xff0c;粗略研究并總結下。 對qwidget嵌…

從單片機的啟動說起一個單片機到點燈發生了什么下——使用GPIO點一個燈

目錄 前言 HAL庫對GPIO的抽象 核心分析&#xff1a;HAL_GPIO_Init 前言 我們終于到達了熟悉的地方&#xff0c;對GPIO的初始化。經過漫長的鋪墊&#xff0c;我們終于歷經千辛萬苦&#xff0c;來到了這里。關于GPIO的八種模式等更加詳細的細節&#xff0c;由于只是點個燈&am…

ESP32S3:解決RWDT無法觸發中斷問題,二次開發者怎么才能使用內部RTC看門狗中斷RWDT呢?

目錄 基于ESP32S3:解決RWDT無法觸發中斷問題引言解決方案1. 查看報錯日志2. 分析報錯及一步一步找到解決方法3.小結我的源碼基于ESP32S3:解決RWDT無法觸發中斷問題 引言 在嵌入式系統中,RWDT(看門狗定時器)是確保系統穩定性的重要組件。然而,在某些情況下,RWDT可能無法…

對計算機中緩存的理解和使用Redis作為緩存

使用Redis作為緩存緩存例子緩存的引入 Redis緩存的實現 使用Redis作為緩存 緩存 ?什么是緩存&#xff0c;第一次接觸這個東西是在考研學習408的時候&#xff0c;計算機組成原理里面學習到Cache緩存&#xff0c;用于降低由于內存和CPU的速度的差異帶來的延遲。它是在CPU和內存…

vue3的實用工具庫@vueuse/core

1.什么是vueuse/core 是一個基于 ?Vue Composition API? 開發的實用工具庫&#xff0c;旨在通過封裝高頻功能為可復用的組合式函數&#xff08;Composables&#xff09;&#xff0c;簡化 Vue 應用的開發流程。 提供 ?200 開箱即用的函數?&#xff0c;覆蓋狀態管理、瀏覽器…

基于SSM的《計算機網絡》題庫管理系統(源碼+lw+部署文檔+講解),源碼可白嫖!

摘 要 《計算機網絡》題庫管理系統是一種新穎的考試管理模式&#xff0c;因為系統是用Java技術進行開發。系統分為三個用戶進行登錄并操作&#xff0c;分別是管理員、教師和學生。教師在系統后臺新增試題和試卷&#xff0c;學生進行在線考試&#xff0c;還能對考生記錄、錯題…

C++初階——簡單實現stack和queue

目錄 1、Deque(了解) 1.1 起源 1.2 結構 1.3 優缺點 1.4 應用 2、Stack 3、Queue 4、Priority_Queue 注意&#xff1a;stack&#xff0c;queue&#xff0c;priority_queue是容器適配器(container adaptor) &#xff0c;封裝一個容器&#xff0c;按照某種規則使用&#…

第2課 樹莓派鏡像的燒錄

樹莓派的系統通常是安裝在SD卡上的?。SD卡作為啟動設備,負責啟動樹莓派并加載操作系統。這種設計使得樹莓派具有便攜性和靈活性,用戶可以通過更換SD卡來更換操作系統或恢復出廠設置。 燒錄樹莓派的鏡像即是將樹莓派鏡像燒錄到SD卡上,在此期間會格式化SD卡,如果SD卡…

【Unity】URP管線Shader編程實例詳解 (1) : 漩渦效果shader

作者說 本系列教程適用于有編程基礎和圖形學基礎知識的讀者.如果對您有所幫助&#xff0c;請點個免費的贊和關注&#xff0c;您的支持就是我更新最大的動力&#xff01;如果你有任何想看的內容歡迎評論區留言&#xff01;本系列教程Github : https://github.com/Sky0Master/Un…

如何安裝vm 和centos

安裝 VMware Workstation&#xff08;以 Windows 系統為例&#xff09; 1. 下載 VMware Workstation 打開 VMware 官方網站&#xff08;Desktop Hypervisor Solutions | VMware &#xff09;&#xff0c;在頁面中選擇適合你系統的版本進行下載。如果你是個人非商業使用&#x…

STM32-心知天氣項目

一、項目需求 使用 ESP8266 通過 HTTP 獲取天氣數據&#xff08;心知天氣&#xff09;&#xff0c;并顯示在 OLED 屏幕上。 按鍵 1 &#xff1a;循環切換今天 / 明天 / 后天天氣數據&#xff1b; 按鍵 2 &#xff1a;更新天氣。 二、項目框圖 三、cjson作用 https://gi…

Wireshark簡單教程

1.打開Wireshark,點擊最上面欄目里面的“捕獲”中的“選項” 2.進入網卡選擇界面,選擇需要捕獲的選擇&#xff0c;這里我選擇WLAN 3.雙擊捕獲選擇出現下面界面 4.點擊如下圖紅方框即可停止捕獲 5.點擊下圖放大鏡可以進行放大 6.你也可以查詢tcp報文如下圖

【Http和Https區別】

概念&#xff1a; 一、Http協議 HTTP&#xff08;超文本傳輸協議&#xff09;是一種用于傳輸超媒體文檔&#xff08;如HTML&#xff09;的應用層協議&#xff0c;主要用于Web瀏覽器和服務器之間的通信。http也是客戶端和服務器之間請求與響應的標準協議&#xff0c;客戶端通常…

Unity Shader 學習13:屏幕后處理 - 使用高斯模糊的Bloom輝光效果

目錄 一、基本的后處理流程 - 以將畫面轉化為灰度圖為例 1. C#調用shader 2. Shader實現效果 二、Bloom輝光效果 1. 主要變量 2. Shader效果 &#xff08;1&#xff09;提取較亮區域 - pass1 &#xff08;2&#xff09;高斯模糊 - pass2&3 &#xff08;3&#xff…

【R語言】dplyr包經典函數summarise函數

dplyr包經典函數summarise函數&#xff0c;后面改名乘reframe函數了&#xff0c;但是summarise仍然適用 這個函數的返回結果是一個新的數據框&#xff0c;下面講一下幾種常見用法 示例數據為R自帶的數據集mtcars 1.不分組 mtcars %>%summarise(mean mean(disp), n n()…

使用DeepSeek/ChatGPT等AI工具輔助編寫wireshark過濾器

隨著deepseek,chatgpt等大模型的能力越來越強大&#xff0c;本文將介紹借助deepseek&#xff0c;chatgpt等大模型工具&#xff0c;通過編寫提示詞&#xff0c;輔助生成全面的Wireshark顯示過濾器的能力。 每一種協議的字段眾多&#xff0c;流量分析的需求多種多樣&#xff0c;…

vscode設置自動換行

vscode設置自動換行 方法 方法 點擊文件->首選項->設置。搜索word wrap -> 選擇 on 。 搜索Word Wrap&#xff0c;并把選項改為on。