機器學習數據降維方法

1.數據類型
2.如何選擇降維方法進行數據降維
3.線性降維:主成分分析(PCA)、線性判別分析(LDA)
4.非線性降維
5.基于特征選擇的降維
6.基于神經網絡的降維

??數據降維是將高維數據轉換為低維表示的過程,旨在保留關鍵信息的同時減少計算復雜度、去除噪聲或可視化數據。常見降維方法有幾類,分別對應不同數據采用。

方法類型優點缺點適用場景
PCA計算快、可解釋、保留全局結構僅捕獲線性關系特征相關性高、線性數據
t-SNE可視化效果好、保留局部結構計算慢、難以解釋、超參敏感高維數據可視化(如單細胞RNA-seq)
UMAP比t-SNE快、保留局部和部分全局結構需調參大規模非線性數據
LDA最大化類別可分性僅適用于分類、需標簽有監督分類任務
自編碼器處理復雜非線性關系需要大量數據、訓練成本高圖像、語音等高維非線性數據
特征選擇保留原始特征、可解釋性強可能丟失特征間交互信息特征冗余明顯的結構化數據

一、數據類型

??雖然降維方法最初多用于數值型數據,但通過適當的預處理和轉換,非數值型數據(如類別型、文本、圖像、圖網絡等) 也可以使用降維技術。降維的核心是保留數據的本質結構,無論原始形式如何,文本是通過詞頻或語義嵌入捕捉語義相似性。圖數據是通過節點關系捕捉社區結構。類別數據是通過共現頻率或概率模型發現潛在模式。

1. 類別型數據(Categorical Data)

??(1)獨熱編碼(One-Hot Encoding)后降維:將類別變量轉為二進制向量(如性別“男/女”變為[1,0]和[0,1]),再使用PCA或t-SNE降維。獨熱編碼會大幅增加維度(“維度爆炸”),需配合降維。

2. 文本數據(Text Data)

??(1)詞袋模型(Bag-of-Words) + 降維:將文本轉為詞頻向量(TF-IDF)后,用PCA/NMF/LDA(潛在狄利克雷分配)降維。如新聞分類中,用NMF提取主題(每個主題是詞的加權組合)。
??(2)詞嵌入(Word Embedding):直接使用預訓練的低維詞向量(如Word2Vec、GloVe)表示文本,或對句子/文檔向量化后降維。

3. 圖數據(Graph/Network Data)

??(1)圖嵌入(Graph Embedding):將節點映射為低維向量(如Node2Vec、DeepWalk),保留圖的結構信息。
??(2)鄰接矩陣降維:對圖的鄰接矩陣或拉普拉斯矩陣進行PCA或SVD分解。

4. 圖像數據(Image Data)

??(1)傳統方法:對像素矩陣使用PCA(如人臉識別中的“特征臉”)。
??(2)深度學習方法:用卷積自編碼器(CAE)提取低維特征。

5. 混合型數據(數值+類別)

??(1)統一表征:對類別變量編碼(如目標編碼、嵌入),與數值變量拼接后降維。使用專門模型(如廣義低秩模型,GLRM)。

二、如何選擇降維方法進行數據降維

??降維方法需要綜合考慮數據特性、問題目標和方法假設。

1.判斷數據是否需要降維

(1)明確降維目標

描述方法推薦
可視化(降至2D/3D)優先選非線性方法(t-SNE/UMAP)
減少計算開銷線性方法(PCA)或特征選擇
去除噪聲/冗余特征PCA、自動編碼器或特征選擇
提高模型性能結合監督方法(LDA、嵌入法)

(2)檢查數據維度問題

描述方法推薦
特征數遠大于樣本數(如基因數據)必須降維
特征間高度相關PCA/線性方法有效
特征稀疏(如文本)NMF或稀疏PCA

2.選擇降維方法的決策流程

(1)分析數據結構

數據特性推薦方法
線性關系(特征間方差主導)PCA、LDA(有標簽)、SVD
非線性流形(復雜拓撲)t-SNE、UMAP、LLE、ISOMAP
混合類型數據統一編碼后PCA,或廣義低秩模型(GLRM)
高稀疏性(如文本)NMF、稀疏PCA

(2)是否帶標簽?
??有監督任務(分類/回歸),優先用LDA(線性)或監督自編碼器。特征選擇遞歸特征消除(RFE)、基于模型的重要性排序(如XGBoost);無監督任務,PCA、t-SNE、UMAP等。

(3)是否需要可解釋性

特性推薦方法
需要解釋特征貢獻PCA(主成分可分析)、特征選擇。
無需解釋自編碼器、t-SNE(側重可視化)。

(4)評估計算資源

特性推薦方法
大規模數據PCA、隨機投影、增量PCA(內存高效)。
小樣本高維數據t-SNE、UMAP(但需調參)

三、線性降維

1.主成分分析(PCA)

??主成分分析(PCA,Principal Component Analysis)是一種統計方法,用于通過線性變換將數據降維,同時盡可能保留數據中的主要變異信息。它是一種無監督學習方法,廣泛應用于數據預處理、特征提取、降維、數據可視化和噪聲去除等領域。
(1)PCA的核心思想
??PCA的目標是將原始數據投影到一組新的坐標軸(主成分)上,使得這些坐標軸的方向能夠最大化數據的方差。 具體來說:
第一個主成分(PC1):是數據中方差最大的方向。
第二個主成分(PC2):是與PC1正交的方向中方差最大的方向。
后續主成分:依次類推,每個主成分都與之前的所有主成分正交,并且在剩余的方差中最大化。通過這種方式,PCA能夠將數據的主要結構保留下來,同時去除一些不重要的信息(如噪聲或冗余特征)。

(2)PCA的計算原理和過程代碼示例
在這個例子中:
第一個主成分解釋了50%的方差。
第二個主成分解釋了50%的方差。
兩個主成分的方差解釋率之和為100%,說明降維后的數據保留了原始數據的全部信息。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import numpy as np# 示例數據
X = np.array([[2, 3],[4, 7],[6, 5],[8, 9]])# 數據標準化
scaler = StandardScaler()
X_scale = scaler.fit_transform(X)# 執行PCA
pca = PCA(n_components=2)  # 降維到2維
X_reduce = pca.fit_transform(X_scale)# 輸出結果
print("原始數據(標準化后):\n", X_scale)
print("降維后的數據:\n", X_reduce)
print("主成分方向(特征向量):\n", pca.components_)
print("方差解釋率:\n", pca.explained_variance_ratio_)

2.線性判別分析(LDA)

??線性判別分析(Linear Discriminant Analysis, LDA)是一種監督學習降維與分類方法,核心目標是通過線性變換將高維數據投影到低維空間,使得同類樣本盡可能緊湊、不同類樣本盡可能分離,從而提升分類性能。
(1)核心思想
??與無監督的 PCA 不同,LDA 利用類別標簽信息,通過最大化類間方差與最小化類內方差的比值,尋找最優投影方向。直觀理解,假設兩類數據在二維空間中分布,LDA 的目標是找到一條直線,使得兩類樣本在該直線上的投影滿足,類內樣本盡可能集中(類內方差小);類間樣本中心距離盡可能遠(類間方差大)。

3.非負矩陣分解(NMF)

??將數據分解為非負矩陣的乘積,適用于所有特征為非負的場景(如圖像)。

4.奇異值分解(SVD)

??對矩陣進行分解,保留主要奇異值,常用于推薦系統和文本數據(如潛在語義分析)。

四、非線性降維

1.t-SNE(t-分布隨機鄰域嵌入)

??保留局部相似性,適合高維數據可視化(如將數據降至2D/3D),但計算開銷較大。

2.UMAP(均勻流形近似與投影)

??類似t-SNE,但計算效率更高,能同時保留局部和全局結構。

3.ISOMAP(等距映射)

4.局部線性嵌入(LLE)

五、基于特征選擇的降維

1.過濾法

??使用統計指標(如方差、卡方檢驗、互信息)選擇重要特征。

2.包裝法

??通過模型性能評估特征子集(如遞歸特征消除RFE)。

3.嵌入法

??模型訓練過程中自動選擇特征(如Lasso回歸、決策樹的特征重要性)。

六、基于神經網絡的降維

1.自編碼器(Autoencoder)

??通過編碼器壓縮數據,解碼器重建數據,隱層作為低維表示。可處理非線性關系。

2.變分自編碼器(VAE)

??在自編碼器中引入概率生成模型,適合生成任務。

3.深度非線性降維(如深度信念網絡)

??利用多層神經網絡學習復雜非線性映射。

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

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

相關文章

太陽系運行模擬程序-html動畫

太陽系運行模擬程序-html動畫 by AI: <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>交互式太陽系…

2025年全國青少年信息素養大賽 scratch圖形化編程挑戰賽 小低組初賽 內部集訓模擬題解析

2025年信息素養大賽初賽scratch模擬題解析 博主推薦 所有考級比賽學習相關資料合集【推薦收藏】 scratch資料 Scratch3.0系列視頻課程資料零基礎學習scratch3.0【入門教學 免費】零基礎學習scratch3.0【視頻教程 114節 免費】 歷屆藍橋杯scratch國賽真題解析歷屆藍橋杯scr…

grid網格布局

使用flex布局的痛點 如果使用justify-content: space-between;讓子元素兩端對齊&#xff0c;自動分配中間間距&#xff0c;假設一行4個&#xff0c;如果每一行都是4的倍數那沒任何問題&#xff0c;但如果最后一行是2、3個的時候就會出現下面的狀況&#xff1a; /* flex布局 兩…

通義靈碼2.5——基于MCP實現我的12306火車票智能查詢小助手

本文因排版顯示問題&#xff0c;為保證閱讀體驗&#xff0c;請大家訪問&#xff1a; 通義靈碼2.5——基于MCP打造我的12306火車票智能查詢小助手-CSDN博客 前沿技術應用全景圖 本項目作為通義靈碼2.5的標桿實踐案例&#xff0c;展現了AI輔助開發在復雜業務系統中的革命性突破…

Unity Button 交互動畫

在UGUI的Button組件中&#xff0c;有一個過渡動畫表現的功能。可以對按鈕的不同交互狀態添加交互反饋動畫&#xff0c;來提高玩家的交互體驗。 交互狀態 名稱 描述 Normal 正常情況 Highlighted 高亮顯示&#xff0c;例如鼠標觸碰到按鈕點擊范圍 Pressed 按鈕被按下的時…

釘釘熱點實時推送助理-思路篇

以下是針對熱點實時推送助理的功能描述&#xff0c;結合機器學習技術棧與用戶場景的通俗化解釋&#xff1a; 快速體驗的話直接用釘釘掃描下方二維碼體驗 1. 核心功能 &#xff08;1&#xff09;熱點抓取引擎 類比&#xff1a;像蜘蛛爬取全網信息&#xff08;網絡爬蟲信息抽取…

remote: error: hook declined to update refs/heads.....

gitee拉取分支&#xff0c;修改上傳出現的問題&#xff0c;折騰了好久&#xff0c;淺淺記錄. 1. 首次克隆倉庫 # 克隆倉庫&#xff08;使用 HTTPS 或 SSH&#xff09; git clone ------------ cd xxx-project2. 配置正確的用戶信息&#xff08;關鍵步驟&#xff01;&#xff…

使用Vue + Element Plus實現可多行編輯的分頁表格

需求背景&#xff1a; 在現代前端開發中&#xff0c;表格作為數據展示和交互的重要組件&#xff0c;在各類管理系統、數據平臺中有著廣泛的應用。隨著用戶對數據操作便捷性要求的不斷提高&#xff0c;具備靈活編輯功能的表格成為了開發中的常見需求。特別是在需求處理大…

奧威BI+AI——高效智能數據分析工具,引領數據分析新時代

隨著數據量的激增&#xff0c;企業對高效、智能的數據分析工具——奧威BIAI的需求日益迫切。奧威BIAI&#xff0c;作為一款顛覆性的數據分析工具&#xff0c;憑借其獨特功能&#xff0c;正在引領數據分析領域的新紀元。 一、?零報表環境下的極致體驗? 奧威BIAI突破傳統報表限…

【機器學習基礎】機器學習入門核心算法:K均值(K-Means)

機器學習入門核心算法&#xff1a;K均值&#xff08;K-Means&#xff09; 1. 算法邏輯2. 算法原理與數學推導2.1 目標函數2.2 數學推導2.3 時間復雜度 3. 模型評估內部評估指標外部評估指標&#xff08;需真實標簽&#xff09; 4. 應用案例4.1 客戶細分4.2 圖像壓縮4.3 文檔聚類…

springboot多模塊父pom打包正常,單模塊報錯

背景&#xff1a;因為項目開發中經常發測試環境&#xff0c;發現使用阿里的插件能一鍵上傳&#xff0c;不用手動上傳比較方便。但是多模塊有多個啟動jar的時候&#xff0c;全局打包太慢&#xff0c;單獨打發現報錯。這里貼一下我使用這個插件的方式&#xff1a; 附帶一個我感覺…

通義靈碼2.5——基于MCP打造我的12306火車票智能查詢小助手

前沿技術應用全景圖 本項目作為通義靈碼2.5的標桿實踐案例&#xff0c;展現了AI輔助開發在復雜業務系統中的革命性突破。通過深度集成12306 MCP服務體系&#xff0c;我們構建了一個融合智能決策、環境感知和自主優化的新一代火車票查詢系統。 #mermaid-svg-4D7QqwJjsQRdKVP7 {…

進程間通信(共享內存)

目錄 前置&#xff1a; 一 原理 二 API 1. shmgetr 2. shmctl 3. 指令操作 2. 刪除 3. 掛接 4. 斷開掛接 三 demo代碼 四 共享內存的特征 前置&#xff1a; 1.前面說的不管是匿名管道還是命名管道都是基于文件的思想構建的一套進程間通信的方案&#xff0c;那有沒有…

詳解GPU

詳解GPU GPU&#xff08;圖形處理器&#xff09;就像電腦里的 “圖形小能手”&#xff0c;原本主要用來畫畫&#xff08;渲染圖形&#xff09;&#xff0c;現在還能幫忙干很多雜活&#xff08;并行計算&#xff09; 一、先認識 GPU 的 “鑰匙”&#xff1a;驅動和開發工具 裝驅…

體育遇上AI:解讀新一代智能閱讀產品

在信息過載的今天&#xff0c;體育迷們時常面對這樣的困擾&#xff1a;如何從海量賽事新聞、數據分析和深度評論中高效獲取自己真正關心的內容&#xff1f;體育AI閱讀產品正成為解決這一痛點的關鍵鑰匙——它融合人工智能技術與體育內容生態&#xff0c;為球迷提供智能化、個性…

外網訪問可視化工具 Grafana (Linux版本)

Grafana 是一款強大的可視化監控指標的展示工具&#xff0c;可以將不同的數據源數據以圖形化的方式展示&#xff0c;不僅通用而且非常美觀。它支持多種數據源&#xff0c;如 prometheus 等&#xff0c;也可以通過插件和 API 進行擴展以滿足各種需求。 本文將詳細介紹如何在本地…

Java開發經驗——阿里巴巴編碼規范實踐解析4

摘要 本文主要介紹了阿里巴巴編碼規范中關于日志處理的相關實踐解析。強調了使用日志框架&#xff08;如 SLF4J、JCL&#xff09;而非直接使用日志系統&#xff08;如 Log4j、Logback&#xff09;的 API 的重要性&#xff0c;包括解耦日志實現、統一日志調用方式等好處。同時&…

各個鏈接集合

golang學習&#xff5e;&#xff5e;_從數組中取一個相同大小的slice有成本嗎?-CSDN博客 框架 golang學習&#xff5e;&#xff5e;_從數組中取一個相同大小的slice有成本嗎?-CSDN博客 golang k8s學習_容器化部署和傳統部署區別-CSDN博客 K8S rabbitmq_rabbitmq 廣播-CSD…

Cesium 展示——獲取鼠標移動、點擊位置的幾種方法

文章目錄 需求分析:這里我們用到了幾種常見的鼠標事件1. 獲取鼠標移動的位置2. 獲取鼠標點擊的位置3. 添加面4. 示例代碼需求 獲取指定斷面的 label 分析:這里我們用到了幾種常見的鼠標事件 1. 獲取鼠標移動的位置 viewer.screenSpaceEventHandler.setInputAction((moveme…

技術分享 | Oracle SQL優化案例一則

本文為墨天輪數據庫管理服務團隊第70期技術分享&#xff0c;內容原創&#xff0c;作者為技術顧問馬奕璇&#xff0c;如需轉載請聯系小墨&#xff08;VX&#xff1a;modb666&#xff09;并注明來源。 一、問題概述 開發人員反映有條跑批語句在測試環境執行了很久都沒結束&…