樸素貝葉斯法

文章目錄

    • 貝葉斯定理
    • 樸素貝葉斯法的學習與分類
      • 條件獨立假設
      • 樸素貝葉斯的后驗概率最大化準則
        • 樸素貝葉斯的基本公式
    • 樸素貝葉斯法的參數估計
      • 極大似然估計

貝葉斯定理

前置知識:條件概率、全概率、貝葉斯公式

推薦視頻,看完視頻后搜索博客了解先驗概率后驗概率

這里簡單記錄一下

貝葉斯定理:已知結果找原因/過程

已知事件B發生,求事件 A i A_i Ai?是原因的概率 P ( A i ∣ B ) = P ( A i ) P ( B ∣ A i ) P ( B ) = P ( A i B ) B 的全概率公式 = P ( 類別 ∣ 特征 ) = P ( 特征 ∣ 類別 ) P ( 類別 ) P ( 特征 ) P(Ai|B) = \frac{P(Ai)P(B|Ai)}{P(B)} = \frac{P(A_iB)}{B的全概率公式}=P(類別|特征) = \frac{P(特征|類別)P{(類別)}}{P(特征)} P(AiB)=P(B)P(Ai)P(BAi)?=B的全概率公式P(Ai?B)?=P(類別特征)=P(特征)P(特征類別)P(類別)?

通常,事件A在事件B(發生)的條件下的概率,與事件B在事件A(發生)的條件下的概率是不一樣的。

這兩者是有確定的關系的,貝葉斯定理就是這種關系的陳述。

每個概率都有特定的名稱

1. P ( A i ) P(A_i) P(Ai?)是A的先驗概率:基于統計的概率,是基于以往歷史經驗和分析得到的結果。先驗不考慮B方面的因素下,人們對 A i Ai Ai發生概率的理解

2. P ( A i ∣ B ) P(Ai|B) P(AiB)是A的后驗概率:已知事情B發生了,我們對 A i A_i Ai?發生的概率有了新的認識,其概率由 P ( A i ) P(A_i) P(Ai?)變成了 P ( A i ∣ B ) P(A_i|B) P(Ai?B)。 => 后驗概率的計算要以先驗概率為基礎

樸素貝葉斯法的學習與分類

條件獨立假設

樸素貝葉斯:樸素貝葉斯方法是基于貝葉斯定理和特征條件獨立假設的分類方法。

條件獨立假設:條件獨立性假設就是各個特征之間互不影響,每個特征都是條件獨立的。這一假設使得樸素貝葉斯法變得簡單,但是有時候會犧牲一定的分類準確率。

條件獨立假設的公式

X表示實例集合,Y表示類標記集合。

x是一個有n個特征的實例。

X ( j ) X^{(j)} X(j)表示某個實例的第j個特征。

假設特征獨立公式

P ( X = x ∣ Y = c k ) = P ( X 1 = x 1 , . . . , X n = x n ∣ Y = c k ) = p ( X 1 = x 1 ∣ Y = c k ) ? . . . ? p ( , X n ∣ Y = c k ) = ∏ j = 1 n P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k)=P(X^1=x^1,...,X^n=x^n|Y=c_k)=p(X^1=x^1|Y=c_k)*...*p(,X^n|Y=c_k)=\prod_{j=1}^n P(X^{j}=x^{j}|Y=c_k) P(X=xY=ck?)=P(X1=x1,...,Xn=xnY=ck?)=p(X1=x1Y=ck?)?...?p(,XnY=ck?)=j=1n?P(Xj=xjY=ck?)

樸素貝葉斯的后驗概率最大化準則

樸素貝葉斯的基本公式

1.后驗概率根據貝葉斯定理計算

P ( Y = c k ∣ X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) P ( X = x ) = P ( X = x ∣ Y = c k ) P ( Y = c k ) ∑ k P ( X = x ∣ Y = c k ) P ( Y = c k ) ) P(Y=c_k|X=x)=\frac{P(X=x|Y=c_k)P(Y=c_k)}{P(X=x)}=\frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum_k P(X=x|Y=c_k)P(Y=c_k))} P(Y=ck?X=x)=P(X=x)P(X=xY=ck?)P(Y=ck?)?=k?P(X=xY=ck?)P(Y=ck?))P(X=xY=ck?)P(Y=ck?)?

2.將條件獨立假設公式代入

樸素貝葉斯分類的核心思想:對于給出的待分類樣本,求解在此樣本出現的條件下各個類別出現的概率,哪個最大 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ck?X=x),就認為此待分類樣本屬于哪個類別。 => 分類準則:后驗概率最大化

1.樸素貝葉斯分類器就是取后驗概率最大時的分類,所以我們需要比較不同分類(k=1,2,…,k)時 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ck?X=x)的概率大小

2.不同貝葉斯分類的分母 P ( X = x ) P(X=x) P(X=x)都是一樣,所以可以簡化只比較分子的大小

y = f ( x ) = a r g max ? c k P ( Y = c k ) ∏ j P ( X j = x j ∣ Y = c k ) y=f(x)=arg \max_{c_k}P(Y=c_k)\prod_{j} P(X^{j}=x^{j}|Y=c_k) y=f(x)=argmaxck??P(Y=ck?)j?P(Xj=xjY=ck?)

argmax、argmin的說明

argmax 表示 后面的表達式取最大值的時候,返回自變量 C k C_k Ck?的取值 。

樸素貝葉斯法將樣本分到后驗概率最大的類 ,等價于此時期望風險最小化。

證明 后驗概率最大化 <=> 期望風險最小化

假設選擇0-1損失函數,其中f(X)為分類決策函數 。與真實類別Y比較,相等即沒有損失,不相等則損失為1。

L ( Y , f ( X ) ) = { 1 , Y ≠ f ( X ) 0 , Y = f ( X ) L(Y,f(X))= \begin{cases} 1, Y\neq{f(X)} \\ 0 ,Y=f(X) \end{cases} L(Y,f(X))={1,Y=f(X)0,Y=f(X)?

期望風險:對損失函數 L ( Y , f ( X ) ) L(Y,f(X)) L(Y,f(X))求期望 R ( f ) = E [ L ( Y , f ( X ) ) ] R(f)=E[L(Y,f(X))] R(f)=E[L(Y,f(X))]

期望的定義為:值出現的概率*具體的值 累計值,在這里就是損失函數值*聯合概率 累計值

套入二維隨機變量函數的期望公式

期望風險最小化可以轉換為以下式子:

m i n ∑ Y L ( Y , f ( X ) ) P ( y ∣ x ) = m i n ∑ k = 1 k L ( C k , f ( X ) ) P ( C k ∣ X ) min \sum_Y L(Y,f(X))P(y|x) = min \sum_{k=1}^kL(C_k,f(X))P(C_k|X) minY?L(Y,f(X))P(yx)=mink=1k?L(Ck?,f(X))P(Ck?X)

對于一個確定輸入的X=x,判斷輸出類y為哪一個時,損失期望最小。f(x)對應的類y需要滿足的條件是使得期望風險最小化。

f ( x ) = a r g min ? y ∈ Y ∑ k = 1 k L ( C k , f ( x ) ) P ( C k ∣ X = x ) f(x) = arg \min_{y \in Y} \sum_{k=1}^kL(C_k,f(x))P(C_k|X=x) f(x)=argminyY?k=1k?L(Ck?,f(x))P(Ck?X=x)

C k C_k Ck?為輸出空間中的某一個類。如果 C k = y C_k = y Ck?=y,則說明此時損失函數的值為0,因此在累加的過程中不用計算(0乘任何數結果為0),換句話說,只累加損失值為1的情況。

f ( x ) = a r g min ? y ∈ Y ∑ k = 1 k P ( y ≠ C k ∣ X = x ) = a r g m i n y ∈ Y ∑ k = 1 k ( 1 ? P ( y = C k ∣ X = x ) ) = a r g max ? y ∈ Y P ( y = C k ∣ X = x ) f(x) = arg \min_{y \in Y} \sum_{k=1}^kP(y\neq{C_k}|X=x) = arg min_{y \in Y} \sum_{k=1}^k(1-P(y={C_k}|X=x)) = arg \max_{y\in Y}P(y=C_k|X=x) f(x)=argminyY?k=1k?P(y=Ck?X=x)=argminyY?k=1k?(1?P(y=Ck?X=x))=argmaxyY?P(y=Ck?X=x)

根據期望風險最小化 => 得到后驗概率最大化

樸素貝葉斯法的參數估計

極大似然估計

在樸素貝葉斯中,學習意味著根據訓練集估計先驗概率 P ( Y = c k ) P(Y=c_k) P(Y=ck?)和條件概率 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=xY=ck?)

根據條件獨立假設公式,條件概率 P ( X = x ∣ Y = c k ) = ∏ j = 1 n P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k) = \prod_{j=1}^n P(X^{j}=x^{j}|Y=c_k) P(X=xY=ck?)=j=1n?P(Xj=xjY=ck?)

先驗概率 P ( Y = c k ) P(Y=c_k) P(Y=ck?)的極大似然估計: 屬于 c k c_k ck?的實例占數據集總數N的比例

P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N P(Y=c_k)=\frac{\sum_{i=1}^NI(y_i=c_k)}{N} P(Y=ck?)=Ni=1N?I(yi?=ck?)? k = 1 , 2 , . . , K k=1,2,..,K k=1,2,..,K

I是指示函數,括號里成立取值1,不成立取值0

條件概率 P ( X = x ∣ Y = c k ) P(X=x|Y=c_k) P(X=xY=ck?)的極大似然估計:

假設第j個特征 x ( j ) x^{(j)} x(j)可能取值的集合為 { a j 1 , a j 2 , . . . , a j S j } \{a_{j1},a_{j2},...,a_{jS_{j}}\} {aj1?,aj2?,...,ajSj??},第1個特征有 S 1 S_1 S1?個選擇,第n個特征有 S n S_n Sn?個選擇。

第j個特征取 a j l a_{jl} ajl?的條件概率 P ( X j = a j l ∣ Y = c k ) = ∑ i = 1 N I ( x i ( j ) = a j l , y i = c k ) ∑ i = 1 N I ( y i = c k ) P(X^{j}=a_{jl}|Y=c_k)=\frac{\sum_{i=1}^NI(x_i^{(j)}=a_{jl},y_i=c_k)}{\sum_{i=1}^NI(y_i=c_k)} P(Xj=ajl?Y=ck?)=i=1N?I(yi?=ck?)i=1N?I(xi(j)?=ajl?,yi?=ck?)? j = 1 , 2 , . . . , n ; l = 1 , 2 , . . . , S j ; k = 1 , 2 , . . . , K j=1,2,...,n; l=1,2,...,S_j;k=1,2,...,K j=1,2,...,n;l=1,2,...,Sj?;k=1,2,...,K

這里每一個特征的條件概率都需要計算,一共會計算 K ? S 1 ? . . . . ? S n K*S_1*....*S_n K?S1??....?Sn?次。

概率的核心 = n條件/n總,總個數指類別是 c k c_k ck?的實例個數,符合條件的個數指類別是 c k c_k ck?和第j個特征是 a j l a_{jl} ajl?同時成立的實例個數。

樸素貝葉斯的學習與分類算法

通過學習訓練數據集得到模型(得到先驗概率與條件概率),計算后驗概率分布 P ( Y = c k ∣ X = x ) P(Y=c_k|X=x) P(Y=ck?X=x),將后驗概率最大的類作為x實例的類輸出。

輸入:訓練集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1?,y1?),(x2?,y2?),...,(xN?,yN?)},實例 x = ( x ( 1 ) , x ( 2 ) , . . . , x ( n ) ) x=(x^{(1)},x^{(2)},...,x^{(n)}) x=(x(1),x(2),...,x(n))

輸出:實例x所屬類別y

第一步:通過學習訓練數據集通過極大似然法得到模型

第二步:計算輸入實例x的先驗概率與條件概率,計算其屬于每一個類別的后驗概率,選出后驗概率最大的類。

例題

由下標的訓練數據學習一個樸素貝葉斯分類器,并確定 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T的類標記 y y y。表中 X ( 1 ) , X ( 2 ) X^{(1)},X^{(2)} X(1),X(2)為特征,取值的集合分別為 A 1 = { 1 , 2 , 3 } , A 2 = { S , M , l } A_1=\{1,2,3\},A_2=\{S,M,l\} A1?={1,2,3},A2?={S,M,l},Y為類標記, Y ∈ C = { 1 , ? 1 } Y \in C=\{1,-1\} YC={1,?1}

解:本題需要比較后驗概率 P ( Y = 1 ∣ X = x ) P(Y=1|X=x) P(Y=1∣X=x) P ( Y = ? 1 ∣ X = x ) P(Y=-1|X=x) P(Y=?1∣X=x)的概率,這兩個概率的分母相同,我們只需要比較分子 P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1) P(Y=1)P(X(1)=2∣Y=1)P(X(2)=SY=1) P ( Y = ? 1 ) P ( X ( 1 ) = 2 ∣ Y = ? 1 ) P ( X ( 2 ) = S ∣ Y = ? 1 ) P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1) P(Y=?1)P(X(1)=2∣Y=?1)P(X(2)=SY=?1)的概率

①先計算先驗概率與條件概率

②計算后驗概率的分子

P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) = 1 45 P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{1}{45} P(Y=1)P(X(1)=2∣Y=1)P(X(2)=SY=1)=451?

P ( Y = ? 1 ) P ( X ( 1 ) = 2 ∣ Y = ? 1 ) P ( X ( 2 ) = S ∣ Y = ? 1 ) = 1 15 P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{1}{15} P(Y=?1)P(X(1)=2∣Y=?1)P(X(2)=SY=?1)=151?

③比較選更大的值

實例點x的類標記為 y = ? 1 y=-1 y=?1

貝葉斯估計

問題: 極大似然估計可能會出現索要估計的概率值為0(0乘任何值都等于0),這會影響后驗概率的計算,使分類產生誤差。

案例: 假設數據集中全是女性,那么數據集中女性的概率為1。并不是代表就沒有男性,只是恰好數據集中沒有。

解決方法:采用貝葉斯估計

分子加 λ \lambda λ的原因是避免值為0,分母加 K λ K\lambda Kλ c k c_k ck?的取值有K種)的原因是保證先驗概率和 ∑ k = 1 k P λ ( Y = c k ) = 1 \sum_{k=1}^kP_\lambda (Y=c_k)=1 k=1k?Pλ?(Y=ck?)=1(隨機變量Y的概率分布)。

條件概率同上。

習題

按照拉普拉斯平滑估計( λ = 1 \lambda=1 λ=1),確定 x = ( 2 , S ) T x=(2,S)^T x=(2,S)T的類標記 y y y。表中 X ( 1 ) , X ( 2 ) X^{(1)},X^{(2)} X(1),X(2)為特征,取值的集合分別為 A 1 = { 1 , 2 , 3 } , A 2 = { S , M , l } A_1=\{1,2,3\},A_2=\{S,M,l\} A1?={1,2,3},A2?={S,M,l},Y為類標記, Y ∈ C = { 1 , ? 1 } Y \in C=\{1,-1\} YC={1,?1}

①先計算先驗概率與條件概率

②計算后驗概率的分子

P ( Y = 1 ) P ( X ( 1 ) = 2 ∣ Y = 1 ) P ( X ( 2 ) = S ∣ Y = 1 ) = 5 153 P(Y=1)P(X^{(1)}=2|Y=1)P(X^{(2)}=S|Y=1)=\frac{5}{153} P(Y=1)P(X(1)=2∣Y=1)P(X(2)=SY=1)=1535?

P ( Y = ? 1 ) P ( X ( 1 ) = 2 ∣ Y = ? 1 ) P ( X ( 2 ) = S ∣ Y = ? 1 ) = 28 459 P(Y=-1)P(X^{(1)}=2|Y=-1)P(X^{(2)}=S|Y=-1)=\frac{28}{459} P(Y=?1)P(X(1)=2∣Y=?1)P(X(2)=SY=?1)=45928?

③比較選更大的值

實例點x的類標記為 y = ? 1 y=-1 y=?1

總結

  • 樸素貝葉斯法是典型的生成學習方法。

生成方法由訓練數據學習聯合概率分布 P ( X , Y ) = P ( Y ) P ( X ∣ Y ) P(X,Y)=P(Y)P(X|Y) P(X,Y)=P(Y)P(XY),具體來說,利用訓練數據學習先驗概率 P ( Y ) P(Y) P(Y)與條件概率 P ( X ∣ Y ) P(X|Y) P(XY),然后學習后驗概率分布 P ( Y ∣ X ) P(Y|X) P(YX)

概率估計方法可以是極大似然估計或貝葉斯估計

  • 樸素貝葉斯利用貝葉斯定理與學習到的聯合概率模型進行分類預測。

P ( Y ∣ X ) = P ( X , Y ) P ( X ) = P ( Y ) P ( X ∣ Y ) ∑ Y P ( Y ) P ( X ∣ Y ) P(Y|X)=\frac{P(X,Y)}{P(X)}=\frac{P(Y)P(X|Y)}{\sum_YP(Y)P(X|Y)} P(YX)=P(X)P(X,Y)?=Y?P(Y)P(XY)P(Y)P(XY)?

將輸入的x分到后驗概率最大的類y

y = a r g max ? c k P ( Y = c k ) ∏ j P ( X j = x j ∣ Y = c k ) y=arg \max_{c_k}P(Y=c_k)\prod_{j} P(X^{j}=x^{j}|Y=c_k) y=argmaxck??P(Y=ck?)j?P(Xj=xjY=ck?)

  • 后驗概率最大等價于0-1損失函數時的期望風險最小化
  • 樸素貝葉斯法的基本假設時條件獨立性

P ( X = x ∣ Y = c k ) = P ( X 1 = x 1 , . . . , X n = x n ∣ Y = c k ) = p ( X 1 = x 1 ∣ Y = c k ) ? . . . ? p ( , X n ∣ Y = c k ) = ∏ j = 1 n P ( X j = x j ∣ Y = c k ) P(X=x|Y=c_k)=P(X^1=x^1,...,X^n=x^n|Y=c_k)=p(X^1=x^1|Y=c_k)*...*p(,X^n|Y=c_k)=\prod_{j=1}^n P(X^{j}=x^{j}|Y=c_k) P(X=xY=ck?)=P(X1=x1,...,Xn=xnY=ck?)=p(X1=x1Y=ck?)?...?p(,XnY=ck?)=j=1n?P(Xj=xjY=ck?)

這是一個較強的假設。由于這一假設,模型包含的條件概率的數量大為減少,樸素貝葉斯法的學習與預測大為簡化。因此樸素貝葉斯法高效,且易于實現。缺點是分類的性能不一定高。

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

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

相關文章

《A++ 敏捷開發》- 20 從 AI 到最佳設計

“我們現在推行AIGC&#xff0c;服務端不需要UI交互設計的用AI自動產出代碼&#xff0c;你建議的結對編程、TDD等是否還適用&#xff1f;” 這兩年AI確實很火&#xff0c;是報紙、雜志的熱門話題。例如&#xff0c;HBR雜志從2024年9月至2025年二月份3期&#xff0c;里面有接近一…

GO系列-IO 文件操作

os io 判斷文件是否存在 func fileExist(filePath string) (bool, error) {_, err : os.Stat(filePath)if err nil {return true, nil}if os.IsNotExist(err) {return false, nil}return false, &CheckFileExistError{filePath} } 讀取文件內容 func readFileContext(…

rs485協議、電路詳解(保姆級)

起源 RS-485即Recommended Standard 485 協議的簡寫。1983年被電子工業協會(EIA)批準為一種通訊接口標準. 數據在通信雙方之間傳輸&#xff0c;本質是傳輸物理的電平&#xff0c;比方說傳輸5V的電壓 -1V的電壓信號&#xff0c;這些物理信號在傳輸過程中會受到很多干擾&#x…

JavaWeb-Tomcat服務器

文章目錄 Web服務器存在的意義關于Web服務器軟件Tomcat服務器簡介安裝Tomcat服務器Tomcat服務器源文件解析配置Tomcat的環境變量啟動Tomcat服務器一個最簡單的webapp(不涉及Java) Web服務器存在的意義 我們之前介紹過Web服務器進行通信的原理, 但是我們當時忘記了一點, 服務器…

【愚公系列】《Python網絡爬蟲從入門到精通》008-正則表達式基礎

標題詳情作者簡介愚公搬代碼頭銜華為云特約編輯,華為云云享專家,華為開發者專家,華為產品云測專家,CSDN博客專家,CSDN商業化專家,阿里云專家博主,阿里云簽約作者,騰訊云優秀博主,騰訊云內容共創官,掘金優秀博主,亞馬遜技領云博主,51CTO博客專家等。近期榮譽2022年度…

視覺分析之邊緣檢測算法

9.1 Roberts算子 Roberts算子又稱為交叉微分算法&#xff0c;是基于交叉差分的梯度算法&#xff0c;通過局部差分計算檢測邊緣線條。 常用來處理具有陡峭的低噪聲圖像&#xff0c;當圖像邊緣接近于正45度或負45度時&#xff0c;該算法處理效果更理想。 其缺點是對邊緣的定位…

DuodooBMS源碼解讀之 sale_change模塊

銷售變更模塊用戶使用手冊 一、模塊概述 本擴展模塊主要包含兩個主要的 Python 文件&#xff1a;sale_change/report/sale_change_report.py 和 sale_change/wizard/sale_change_download.py&#xff0c;提供了銷售變更報表查看和銷售變更單下載的功能。以下是詳細的使用說明…

OpenCV形態學操作

1.1. 形態學操作介紹 初識&#xff1a; 形態學操作是一種基于圖像形狀的處理方法&#xff0c;主要用于分析和處理圖像中的幾何結構。其核心是通過結構元素&#xff08;卷積核&#xff09;對圖像進行掃描和操作&#xff0c;從而改變圖像的形狀和特征。例如&#xff1a; 腐蝕&…

力扣算法-1

力扣算法 1 兩數之和 給定一個整數數組nums和一個整數目標值target&#xff0c;請你在數組中找出和為目標值target的那兩個整數&#xff0c;返回他們的數組下標。 &#xff08;1&#xff09;暴力枚舉 &#xff08;枚舉數組每一個數x&#xff0c;再尋找數組中是否存在 targe…

pyside6學習專欄(三):自定義QLabel標簽擴展類QLabelEx

標簽是界面設計中最常用的控件&#xff0c;本文演示了如何基于PySide6的QLabex控件類擴展定義QLabelEX類&#xff0c;以實現更少的編碼完成各種圖像、彩色文本、動畫的加載和顯示&#xff0c;豐富界面顯示 本示例演示了QLabel和其擴展類QLabelEx分別顯示文本、圖像、動畫的使用…

從0到1:固件分析

固件分析 0x01 固件提取 1、從廠商官網下載 例如D-link的固件&#xff1a; https://support.dlink.com/resource/products/ 2、代理或鏡像設備更新時的流量 發起中間人攻擊MITM #啟用IP轉發功能 echo 1 > /proc/sys/net/ipv4/ip_forward#配置iptables&#xff0c;將目…

使用 Spring Boot 和 Canal 實現 MySQL 數據庫同步

文章目錄 前言一、背景二、Canal 簡介三、主庫數據庫配置1.主庫配置2.創建 Canal 用戶并授予權限 四.配置 Canal Server1.Canal Server 配置文件2.啟動 Canal Server 五.開發 Spring Boot 客戶端1. 引入依賴2. 配置 Canal 客戶端3. 實現數據同步邏輯 六.啟動并測試七.注意事項八…

Linux系統配置阿里云yum源,安裝docker

配置阿里云yum源 需要保證能夠訪問阿里云網站 可以先ping一下看看&#xff08;阿里云可能禁ping&#xff0c;只要能夠解析為正常的ip地址即可&#xff09; ping mirrors.aliyun.com腳本 #!/bin/bash mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/*.repo /etc/yum.repos…

后端開發:開啟技術世界的新大門

在互聯網的廣闊天地中&#xff0c;后端開發宛如一座大廈的基石&#xff0c;雖不直接與用戶 “面對面” 交流&#xff0c;卻默默地支撐著整個互聯網產品的穩定運行。它是服務器端編程的核心領域&#xff0c;負責處理數據、執行業務邏輯以及與數據庫和其他后端服務進行交互。在當…

銀河麒麟系統安裝mysql5.7【親測可行】

一、安裝環境 cpu&#xff1a;I5-10代&#xff1b; 主板&#xff1a;華碩&#xff1b; OS&#xff1a;銀河麒麟V10&#xff08;SP1&#xff09;未激活 架構&#xff1a;Linux 5.10.0-9-generic x86_64 GNU/Linux mysql版本&#xff1a;mysql-5.7.34-linux-glibc2.12-x86_64.ta…

從零開始學習PX4源碼9(部署px4源碼到gitee)

目錄 文章目錄 目錄摘要1.gitee上創建倉庫1.1 gitee上創建倉庫PX4代碼倉庫1.2 gitee上創建子倉庫2.固件在gitee部署過程2.1下載固件到本地2.2切換本地分支2.3修改.gitmodules內容2.4同步子模塊倉庫地址2.5同步子模塊倉庫地址更新(下載)子模塊3.一級子模塊和二級子模塊的映射關…

【回溯算法2】

力扣17.電話號碼的字母組合 鏈接: link 思路 這道題容易想到用嵌套的for循環實現&#xff0c;但是如果輸入的數字變多&#xff0c;嵌套的for循環也會變長&#xff0c;所以暴力破解的方法不合適。 可以定義一個map將數字和字母對應&#xff0c;這樣就可以獲得數字字母的映射了…

科普:“Docker Desktop”和“Docker”以及“WSL”

“Docker Desktop”和“Docker”這兩個概念既有緊密聯系&#xff0c;又存在一定區別&#xff1a; 一、聯系 核心功能同源&#xff1a;Docker Desktop 本質上是基于 Docker 核心技術構建的。Docker 是一個用于開發、部署和運行應用程序的開源平臺&#xff0c;它利用容器化技術…

Flutter 網絡請求與數據處理:從基礎到單例封裝

Flutter 網絡請求與數據處理&#xff1a;從基礎到單例封裝 在 Flutter 開發中&#xff0c;網絡請求是一個非常常見的需求&#xff0c;比如獲取 API 數據、上傳文件、處理分頁加載等。為了高效地處理網絡請求和數據管理&#xff0c;我們需要選擇合適的工具并進行合理的封裝。 …

虛擬表格實現全解析

在數據展示越來越復雜的今天&#xff0c;大量數據的渲染就像是“滿漢全席”——如果把所有菜肴一次性擺上桌&#xff0c;既浪費資源也讓人眼花繚亂。幸運的是&#xff0c;我們有兩種選擇&#xff1a; 自己動手&#xff1a;通過二次封裝 Element Plus 的表格組件&#xff0c;實…