DAY 20 奇異值SVD分解-2025.9.1

奇異值SVD分解

知識點回顧:

  1. 線性代數概念回顧
  2. 奇異值推導
  3. 奇異值的應用
    a. 特征降維:對高維數據減小計算量、可視化
    b. 數據重構:比如重構信號、重構圖像(可以實現有損壓縮,k 越小壓縮率越高,但圖像質量損失越大)
    c. 降噪:通常噪聲對應較小的奇異值。通過丟棄這些小奇異值并重構矩陣,可以達到一定程度的降噪效果。
    d. 推薦系統:在協同過濾算法中,用戶-物品評分矩陣通常是稀疏且高維的。SVD (或其變種如 FunkSVD, SVD++) 可以用來分解這個矩陣,發現潛在因子 (latent factors),從而預測未評分的項。這里其實屬于特征降維的部分。

知識點回顧:

對于任何矩陣(如結構化數據可以變為:樣本*特征的矩陣,圖像數據天然就是矩陣),均可做等價的奇異值SVD分解,對于分解后的矩陣,可以選取保留前K個奇異值及其對應的奇異向量,重構原始矩陣,可以通過計算Frobenius 范數相對誤差來衡量原始矩陣和重構矩陣的差異。
在這里插入圖片描述

應用:結構化數據中,將原來的m個特征降維成k個新的特征,新特征是原始特征的線性組合,捕捉了數據的主要方差信息,降維后的數據可以直接用于機器學習模型(如分類、回歸),通常能提高計算效率并減少過擬合風險。

ps:在進行 SVD 之前,通常需要對數據進行標準化(均值為 0,方差為 1),以避免某些特征的量綱差異對降維結果的影響。

作業:嘗試利用svd來處理心臟病預測,看下精度變化

筆記:

奇異值分解(Singular Value Decomposition, SVD)是線性代數中極具影響力的工具,其核心價值在于能處理任意形狀的矩陣,同時在高維數據處理場景中發揮關鍵作用。以下將從線性代數基礎回顧切入,逐步推導奇異值的數學邏輯,最終結合實際場景解析應用,形成完整的知識閉環。

一、線性代數概念回顧(SVD 的數學基礎)

SVD 的推導依賴線性代數中 “矩陣變換”“特征值與特征向量” 等核心概念,需先明確以下基礎:

1. 矩陣的幾何意義:線性變換

任意一個 m×n 矩陣 A,本質是一種從 n 維空間到 m 維空間的線性變換,其作用包括:

  • 拉伸 / 壓縮:沿某個方向放大或縮小向量長度;
  • 旋轉:改變向量的方向(僅當矩陣為方陣且行列式非負時可能發生);
  • 投影:將高維向量映射到低維子空間(如 3 維向量投影到 2 維平面)。

例如,2×2 矩陣A = [[2,0],[0,1]]表示:將 x 軸方向的向量拉伸 2 倍,y 軸方向的向量保持不變。

2. 特征值與特征向量(僅針對方陣)

對于 n×n 方陣A,若存在非零向量 v 和 scalar(標量)λ,滿足 Av = λv,則:

  • v 稱為 A 的特征向量:表示矩陣 A 對該向量僅產生 “拉伸 / 壓縮”,不改變方向(或反向);
  • λ 稱為 A 的特征值:表示拉伸 / 壓縮的比例(λ>1 拉伸,0<λ<1 壓縮,λ<0 反向拉伸)。

關鍵性質
若方陣 A實對稱矩陣(滿足 A^T = AA^T 為 A 的轉置),則其特征向量兩兩正交,且可構成 n 維空間的標準正交基(向量長度為 1,兩兩內積為 0)。這一性質是 SVD 推導的核心前提。

3. 正交矩陣與標準正交基

若矩陣 U 滿足 U^T U = II 為單位矩陣),則 U正交矩陣,其列向量構成標準正交基
正交矩陣的核心作用:對向量做 “旋轉 / 反射” 變換時,不改變向量的長度和夾角(例如,將直角坐標系旋轉后,坐標軸仍垂直,向量長度不變)。

二、奇異值的推導(從數學邏輯到公式)

SVD 的目標是:將任意m×n 矩陣 A 分解為 3 個具有明確幾何意義的矩陣乘積,即 A = UΣV^T,其中:

Um×m 正交矩陣(列向量為 A 的 “左奇異向量”);
Σm×n 對角矩陣(對角線上的非負元素為 A 的 “奇異值”,且從大到小排列);
V^Tn×n 正交矩陣的轉置(行向量為 A 的 “右奇異向量”)。

以下分 3 步推導,避開復雜證明,聚焦邏輯鏈:

步驟 1:構造實對稱矩陣,利用特征值性質

由于 Am×n 矩陣,其轉置 A^Tn×m 矩陣,因此:

  • A^T An×n 實對稱矩陣(滿足 (A^T A)^T = A^T (A^T)^T = A^T A);
  • A A^Tm×m 實對稱矩陣(同理滿足 (A A^T)^T = A A^T)。

根據實對稱矩陣的性質:A^T AA A^T 的特征值均為非負數,且兩者有相同的非零特征值(設為 λ? ≥ λ? ≥... ≥ λ_k > 0,k ≤ min(m,n))。

步驟 2:定義奇異值與奇異向量
  1. 奇異值:將 A^T A(或 A A^T)的非零特征值開平方,得到 A 的奇異值,即 σ_i = √λ_ii=1,2,...,k),且滿足 σ? ≥ σ? ≥... ≥ σ_k > 0
    對角矩陣 Σ 中,前 k 個對角元素為 σ?, σ?,..., σ_k,其余元素為 0。
  2. 右奇異向量(V 的列向量)
    A^T A 的特征向量,按特征值從大到小排列,構成 n×n 正交矩陣 V,其列向量即為 A 的右奇異向量。
  3. 左奇異向量(U 的列向量)
    對每個非零奇異值σ_i,定義 u_i = (A v_i) / σ_iv_iA^T A 的第 i 個特征向量),則 u_iA A^T 的第 i 個特征向量;
    u?, u?,..., u_k 補充正交向量(若 m > k),構成 m×m 正交矩陣 U,其列向量即為 A 的左奇異向量。
步驟 3:驗證分解式 A = UΣV^T

V 的列向量 v?,..., v? 視為 n 維空間的標準正交基,對任意 n 維向量 x,可表示為 x = c?v? +... + c?v?c_i 為系數)。
矩陣 Ax 的變換為:
A x = c?A v? +... + c?A v?
由左奇異向量定義 A v_i = σ_i u_ii≤k),且 i>kσ_i=0,因此:
A x = c?σ? u? +... + c_kσ_k u_k
這意味著:An 維空間的基 v?,..., v?,通過 “拉伸(σ_i 倍)+ 映射到 m 維空間的基 u?,..., u_k” 實現線性變換,與 A = UΣV^T 的矩陣乘法邏輯完全一致。

三、奇異值的應用(從理論到實際場景)

SVD 的所有應用均基于一個核心規律:前 k 個最大的奇異值(σ?,..., σ_k)包含了矩陣 A 的絕大部分信息,后面的小奇異值往往對應冗余、噪聲或次要細節。通過保留前 k 個奇異值,可在 “效果” 與 “成本”(計算量、存儲量)間找到最優平衡。

a. 特征降維:解決 “維度災難”

核心問題
高維數據(如 1000 維的用戶行為數據、10000 維的圖像像素數據)會帶來兩大挑戰:

  • 計算成本高:例如計算兩個 10000 維向量的距離,需遍歷 10000 個元素;
  • 可視化困難:人類僅能感知 2/3 維空間,高維數據無法直接觀察規律。

SVD 降維邏輯
m×n 數據矩陣 A(m 個樣本,n 個特征)做 SVD 分解 A = UΣV^T,取前 k 個奇異值對應的:

  • V 的前 k 列(V_kn×k 矩陣);
  • 降維后的數據矩陣為 A_k = A V_k = U_k Σ_km×k 矩陣,k 遠小于 n)。

典型場景

  • 高維數據可視化:將 1000 維的商品特征數據降到 2 維,用散點圖聚類(如 “高端家電”“平價日用品” 兩類商品明顯分離);
  • 加速機器學習:對文本的 TF-IDF 矩陣(m×nm 為文檔數,n 為詞匯數)降維后,再輸入 SVM、KNN 等算法,計算時間可減少 90% 以上。
b. 數據重構:實現 “有損壓縮”

核心邏輯
數據重構是降維的逆過程:用降維時保留的 U_km×k)、Σ_kk×k)、V_k^Tk×n),重構近似原矩陣 A_hat = U_k Σ_k V_k^T
重構的關鍵權衡:

  • k越小:保留的奇異值越少 → 壓縮率越高(如圖片文件體積縮小)→ 質量損失越大(如圖片模糊);
  • k越大:越接近原矩陣 → 質量越好 → 壓縮率越低。

典型場景

  • 圖像壓縮:一張 1024×1024 的灰度圖(矩陣 1024×1024),取前 50 個奇異值重構,文件體積僅為原大小的 (1024×50 + 50 + 1024×50)/(1024×1024) ≈ 10%,但肉眼幾乎看不出模糊;若取前 10 個奇異值,壓縮率達 98%,但圖像細節明顯丟失;
  • 信號壓縮:語音信號、傳感器時序信號(如溫度監測數據),通過 SVD 丟棄小奇異值后,可在保證可辨識度的前提下,減少數據傳輸量。
c. 降噪:過濾 “無規律噪聲”

核心觀察
數據中的噪聲(如圖片的斑點、信號的雜波)通常是 “無規律的小波動”,對應的奇異值極小;而數據的核心信息(如圖片主體、信號趨勢)對應大奇異值。

降噪步驟

  1. 對含噪聲的矩陣 A_noise 做 SVD 分解,得到所有奇異值 σ? ≥ σ? ≥... ≥ σ_k
  2. 設定閾值 t(如取 t = 0.1σ?),丟棄所有σ_i < t的奇異值;
  3. 用保留的大奇異值重構矩陣 A_clean = U_k Σ_k V_k^T,即得到降噪后的數據。

典型場景

  • 圖像降噪:老照片的劃痕、低光照拍攝的噪點,通過 SVD 降噪后,畫面清晰度顯著提升;
  • 傳感器數據降噪:溫度傳感器采集的數據含隨機波動(噪聲),丟棄小奇異值后,可清晰看到 “白天升溫、夜間降溫” 的趨勢。
d. 推薦系統:挖掘 “潛在因子”

核心問題
用戶 - 物品評分矩陣 Am×n,m 為用戶數,n 為物品數)是 “稀疏高維” 的 ——90% 以上的元素為空白(用戶未評分),無法直接用傳統方法預測空白評分。

SVD 推薦邏輯
通過 SVD(或適用于稀疏矩陣的變種,如 FunkSVD、SVD++)分解評分矩陣,發現潛在因子(Latent Factors)

  • U 的行向量:用戶的偏好因子(如 “喜歡科幻電影、討厭言情電影”);
  • V 的列向量:物品的屬性因子(如 “科幻電影、言情電影”);
  • 空白評分預測:用戶 i 對物品 j 的評分 ≈ U_i Σ V_j^T(即用戶偏好與物品屬性的匹配度)。

本質關聯
該應用本質是 “特征降維” 的延伸:將高維的 “用戶 - 物品” 維度,降到低維的 “潛在因子” 維度(如 50 個因子),從而解決稀疏性問題。

四、總結:SVD 的核心價值

SVD 的所有應用均圍繞 “抓住主要矛盾” 展開 —— 用少數大奇異值(核心信息)替代大量小奇異值(冗余 / 噪聲),在 “效果” 與 “成本” 間找到最優解。其之所以成為數據科學、機器學習的核心工具,正是因為它能以簡潔的數學形式,解決高維數據處理的共性問題(降維、壓縮、降噪、稀疏性),且兼具理論嚴謹性與工程實用性。

五、矩陣降維案例

import numpy as np# 創建一個矩陣 A (5x3)
A = np.array([[1, 2, 3],[4, 5, 6],[7, 8, 9],[10, 11, 12],[13, 14, 15]])
print("原始矩陣 A:")
print(A)# 進行 SVD 分解
U, sigma, Vt = np.linalg.svd(A, full_matrices=False)
print("\n奇異值 sigma:")
print(sigma)# 保留前 k=1 個奇異值進行降維
k = 1
U_k = U[:, :k]  # 取 U 的前 k 列,因為要保持行數不變
sigma_k = sigma[:k]  # 取前 k 個奇異值
Vt_k = Vt[:k, :]  # 取 Vt 的前 k 行,因為要保持列數不變# 近似重構矩陣 A,常用于信號or圖像篩除噪聲
A_approx = U_k @ np.diag(sigma_k) @ Vt_k
print("\n保留前", k, "個奇異值后的近似矩陣 A_approx:")
print(A_approx)# 計算近似誤差
error = np.linalg.norm(A - A_approx, 'fro') / np.linalg.norm(A, 'fro')
print("\n近似誤差 (Frobenius 范數相對誤差):", error)
原始矩陣 A:
[[ 1  2  3][ 4  5  6][ 7  8  9][10 11 12][13 14 15]]奇異值 sigma:
[3.51826483e+01 1.47690770e+00 9.86023090e-16]保留前 1 個奇異值后的近似矩陣 A_approx:
[[ 1.85152908  2.05208851  2.25264793][ 4.5411984   5.03310541  5.52501242][ 7.23086771  8.01412231  8.7973769 ][ 9.92053702 10.99513921 12.06974139][12.61020633 13.9761561  15.34210588]]近似誤差 (Frobenius 范數相對誤差): 0.04194136031471535

作業

import numpy as np #計算
import pandas as pd # 數據處理
from sklearn.model_selection import train_test_split #劃分訓練集&測試集
from sklearn.linear_model import LogisticRegression # 模型
from sklearn.metrics import accuracy_score # 準確度data = pd.read_csv('heart.csv')# 設置隨機種子以便結果可重復
np.random.seed(42)# 區分標簽和特征
X = data.drop('target',axis=1)
y = data['target']# 做標準化處理
from sklearn.preprocessing import StandardScalerscaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
X_scaled = scaler.transform(X)# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)
print(f"訓練集形狀: {X_train.shape}")
print(f"測試集形狀: {X_test.shape}")# 對訓練集進行 SVD 分解
U_train, sigma_train, Vt_train = np.linalg.svd(X_train, full_matrices=False)
print(f"Vt_train 矩陣形狀: {Vt_train.shape}")# 選擇保留的奇異值數量 k
k = 6
Vt_k = Vt_train[:k, :]  # 保留前 k 行
print(f"保留 k={k} 后的 Vt_k 矩陣形狀: {Vt_k.shape}")# 降維訓練集:X_train_reduced = X_train @ Vt_k.T
X_train_reduced = X_train @ Vt_k.T
print(f"降維后訓練集形狀: {X_train_reduced.shape}")# 使用相同的 Vt_k 對測試集進行降維:X_test_reduced = X_test @ Vt_k.T
X_test_reduced = X_test @ Vt_k.T
print(f"降維后測試集形狀: {X_test_reduced.shape}")# 訓練模型(以邏輯回歸為例)
model = LogisticRegression(random_state=42)
model.fit(X_train_reduced, y_train)# 預測并評估
y_pred = model.predict(X_test_reduced)
accuracy = accuracy_score(y_test, y_pred)
print(f"測試集準確率: {accuracy:.4f}")# 計算訓練集的近似誤差(可選,僅用于評估降維效果)
X_train_approx = U_train[:, :k] @ np.diag(sigma_train[:k]) @ Vt_k
error = np.linalg.norm(X_train - X_train_approx, 'fro') / np.linalg.norm(X_train, 'fro')
print(f"訓練集近似誤差 (Frobenius 范數相對誤差): {error:.4f}")
訓練集形狀: (242, 13)
測試集形狀: (61, 13)
Vt_train 矩陣形狀: (13, 13)
保留 k=6 后的 Vt_k 矩陣形狀: (6, 13)
降維后訓練集形狀: (242, 6)
降維后測試集形狀: (61, 6)
測試集準確率: 0.8852
訓練集近似誤差 (Frobenius 范數相對誤差): 0.5709

@浙大疏錦行

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

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

相關文章

《C++——定長內存池》

一、為什么需要內存池&#xff1f; 常規的new/delete操作存在兩個主要問題&#xff1a; 性能開銷大&#xff1a;每次new都需要向操作系統申請內存&#xff0c;delete需要歸還給系統&#xff0c;這涉及內核態與用戶態的切換&#xff0c;在高頻次調用時性能損耗明顯。 內存碎片&a…

【跨境電商】上中下游解釋,以寵物行業為例

上中下游概念及其在寵物行業的應用 在產業鏈分析中&#xff0c;“上中下游”指的是一個產品或服務的不同環節&#xff1a;上游涉及原材料供應和基礎資源&#xff0c;中游負責生產加工和制造&#xff0c;下游則包括銷售、分銷和服務。這種劃分有助于理解整個價值鏈的運作。下面&…

飛牛NAS上部署Markdown文稿編輯器,閱讀.md文件同時還可以跨平臺訪問!

前言前段時間小白在使用.md文件的閱讀器&#xff0c;好像是什么*ypor*&#xff0c;但是這個軟件它收費。&#xff08;也不是找不到PJ版本&#xff0c;只是感覺這是人家的知識產權&#xff0c;就不整了。&#xff09;于是小白在尋找能夠代替這個軟件的其他軟件&#xff0c;而且如…

淺談 SQL 窗口函數:ROW_NUMBER() 與聚合函數的妙用

在日常開發中&#xff0c;我們經常會遇到這樣的需求&#xff1a;既要保留明細數據&#xff0c;又要對數據進行排名、累計、分區統計。如果僅依賴傳統的 GROUP BY&#xff0c;往往需要做多次子查詢或者復雜的 JOIN&#xff0c;既繁瑣又低效。 而 窗口函數&#xff08;Window Fun…

DSPFilters實現低通濾波器(QT)

DSPFilters實現低通濾波器DSPFilters實現低通濾波器DSPFilters安裝-構建靜態庫QT代碼復制include和靜態庫到qt項目qt代碼配置效果DSPFilters實現低通濾波器 https://github.com/vinniefalco/DSPFilters DSPFilters安裝-構建靜態庫 用 Qt 自帶的 MinGW&#xff08;最簡單&…

mybatis plus 基本使用和源碼解析

簡介 mybatis-plus是一款mybatis增強工具&#xff0c;用于簡化開發&#xff0c;提高效率。mybatis-plus免去了用戶編寫sql的麻煩&#xff0c;只需要創建好實體類&#xff0c;并創建一個繼承自BaseMapper的接口&#xff0c;mybatis就可以自動生成關于單表的crud。mybatis-plus自…

【Android】Notification 的基本使用

文章目錄【Android】Notification的基本使用權限通知的基本使用1. 獲取通知管理器&#xff08;用于發送、更新、取消通知&#xff09;2. 創建通知渠道&#xff08;Android 8.0 必須&#xff09;3. 使用通知3.1 發送通知3.2 更新通知3.3 取消通知通知的進階技巧通知顯示樣式1. B…

Web前端開發基礎

1.前端概論 1.1 什么是前端&#xff1f; 概念&#xff1a;前端(Front-End)&#xff0c;也稱為客戶端(Client-Side)&#xff0c;指的是用戶在使用網站或Web應用時直接看到并與之交互的部分。它涵蓋了屏幕上的一切內容&#xff0c;從文字、圖片、按鈕、布局到動畫效果 一個簡單的…

并發編程——11 并發容器(Map、List、Set)實戰及其原理分析

1 JUC包下的并發容器Java 基礎集合&#xff08;如 ArrayList、LinkedList、HashMap&#xff09;非線程安全。為了解決線程安全問題&#xff0c;Java 最初提供了同步容器&#xff08;如 Vector、Hashtable、SynchronizedList&#xff09;&#xff0c;但它們通過 synchronized 實…

Circuitjs 測試點的使用

在電路中, 有時候我們想知道, 各個節點上電壓的具體的值. 比如下面這個電路:電流流經兩個電阻器之后, 電壓在下降. 如果想知道具體節點電壓的確切數值, 可以通過添加 測試點(Test Point) 實現. 點擊 繪制–輸出和標簽–添加測試點, 之后在所需測量的節點上拖動添加一個測試點, …

Ansible Playbook 實踐

Ansible Playbook 實踐一、Playbook 基礎規范&#xff08;一&#xff09;YAML 格式要求文件標識&#xff1a;以 --- 開頭&#xff0c;明確為 YAML 文件&#xff0c;結尾可加 ...&#xff08;可選&#xff0c;用于標記文件結束&#xff09;。注釋規則&#xff1a;用 # 實現注釋&…

基于 Vue + Interact.js 實現可拖拽縮放柜子設計器

實現可視化設計工具已成為前端開發的重要挑戰之一。本文將介紹如何使用 Vue.js 配合 Interact.js 庫創建一個功能完整的櫥柜設計器&#xff0c;兼容PC和移動終端。核心功能網格系統&#xff1a;基于 CSS 網格實現精準定位拖拽功能&#xff1a;實現單元格的自由移動縮放控制&…

今日科技速遞 | 智能芯片突圍、AI+行動深化、服貿會科技成果亮相

今日科技速遞 | 智能芯片突圍、AI行動深化、服貿會科技成果亮相 一、樂鑫科技漲停&#xff1a;Wi-Fi 6/7 與 AIoT 芯片雙路徑創新驅動 新聞回顧 2025 年 8 月 27 日&#xff0c;科創板公司 樂鑫科技&#xff08;688018&#xff09; 盤中一度漲停&#xff0c;股價達到 225 元&am…

PDF壓縮如何平衡質量與體積?

在日常工作或者生活中&#xff0c;我們常常要處理PDF文檔&#xff0c;很多人可能會遇到這樣的困擾&#xff1f;使用WPS處理PDF時&#xff0c;部分功能需要付費&#xff0c;這給我們帶來了許多不便。 它的使用方式十分簡單&#xff0c;你只要雙擊圖標&#xff0c;它就能啟動&am…

Flask 之上下文詳解:從原理到實戰

一、引言&#xff1a;為什么 Flask 需要“上下文”&#xff1f;在 Web 開發中&#xff0c;我們經常需要訪問當前請求的信息&#xff08;如 URL、表單數據&#xff09;、當前應用實例&#xff08;如配置、數據庫連接&#xff09;或用戶會話狀態。傳統做法是使用全局變量&#xf…

深入探索Vue:前端開發的強大框架

在當今的前端開發領域&#xff0c;Vue作為一款備受矚目的JavaScript框架&#xff0c;以其簡潔易用、高效靈活等特性&#xff0c;贏得了眾多開發者的青睞。無論是構建小型的交互頁面&#xff0c;還是開發大型的單頁應用&#xff0c;Vue都能展現出卓越的性能和出色的表現。本文將…

B樹與B+樹的原理區別應用

在磁盤存儲和內存有序的數據管理中&#xff0c;B 樹與 B 樹是核心的數據結構&#xff0c;二者均通過 “多路平衡” 特性減少 IO 次數&#xff0c;但在數據存儲方式、查詢邏輯上存在本質差異。一、B 樹&#xff08;Balance Tree&#xff09;&#xff1a;多路平衡搜索樹B 樹是 “…

從零到一:使用anisble自動化搭建kubernetes集群

在我們云原生俱樂部的暑期學習中&#xff0c;我們了解并學習了需要關于云原生的技術&#xff0c;其中在應用層面上最重要的就是shell編程和ansible&#xff0c;而想要掌握這兩項技術離不開的就是實踐&#xff0c;而kubernetes是我們云原生技術棧的核心技術&#xff0c;在生產實…

【LangGraph】langgraph.prebuilt.create_react_agent() 函數:快速創建基于 ReAct(Reasoning + Acting)架構的智能代理

本文是對 langgraph.prebuilt.create_react_agent 函數的詳細且全面的介紹&#xff0c;涵蓋其定義、功能、設計理念、參數、返回值、使用場景、實現原理、示例代碼、高級用法、注意事項、與其他方法的對比&#xff0c;以及學習建議。 1. 概述 langgraph.prebuilt.create_react…

北斗導航 | RAIM算法改進方案及性能對比分析報告

github&#xff1a;https://github.com/MichaelBeechan CSDN&#xff1a;https://blog.csdn.net/u011344545 文章目錄RAIM算法改進方案及性能對比分析報告一、RAIM算法改進技術框架1.1 多假設分組算法&#xff08;MHSS&#xff09;1.2 動態噪聲估計算法1.3 多源信息融合技術二、…