機器學習10——降維與度量學習(K近鄰、多維縮放、主成分分析)

上一章:機器學習09——聚類
下一章:機器學習11——特征選擇與稀疏學習
機器學習實戰項目:【從 0 到 1 落地】機器學習實操項目目錄:覆蓋入門到進階,大學生就業 / 競賽必備

文章目錄

      • 一、k近鄰學習(kNN)
        • (一)基本原理
      • 二、維數災難與降維
        • (一)維數災難的表現
        • (二)降維的可行性
      • 三、多維縮放(MDS)
        • (一)核心目標
        • (二)算法步驟
        • (三)擴展
      • 四、主成分分析(PCA)
      • 五、流形學習
        • (一)核心概念
        • (二)Isomap算法(典型流形學習方法)
        • (三)應用
      • 六、度量學習
        • (一)距離度量的擴展
        • (二)學習目標
      • 總結

一、k近鄰學習(kNN)

k近鄰學習是一種簡單的監督學習方法,核心是基于距離度量找到測試樣本的近鄰,通過近鄰的標簽預測結果。

(一)基本原理
  • 核心步驟

    1. 確定訓練樣本和距離度量(如歐氏距離);
    2. 對測試樣本,找到訓練集中距離最近的k個樣本;
    3. 分類任務用“投票法”(取k個樣本中最多的類別),回歸任務用“平均法”(取k個樣本輸出的平均值);也可基于距離加權,近鄰權重更大。
  • 關鍵參數

    • k值:k=1時為最近鄰分類器,k越大模型越簡單(欠擬合風險增加),k越小越容易過擬合;
    • 距離度量:不同度量會導致“近鄰”定義不同,直接影響分類結果。
  • 學習類型

    • “懶惰學習”:訓練階段僅存儲樣本,無訓練開銷,測試時才計算距離(如kNN);
    • “急切學習”:訓練階段即學習模型(如SVM、決策樹)。
  • 性能分析
    最近鄰分類器(k=1)的泛化錯誤率不超過貝葉斯最優分類器錯誤率的兩倍,前提是訓練樣本“密采樣”(任意測試樣本附近都有訓練樣本)。

二、維數災難與降維

高維空間中樣本稀疏、距離計算困難的問題稱為“維數災難”,降維是主要解決途徑,核心是將高維數據映射到低維子空間。

(一)維數災難的表現
  • 高維空間中,滿足“密采樣”所需樣本數呈指數增長(如1000個樣本可滿足1維密采樣,20維則需106010^{60}1060個樣本);
  • 距離計算可靠性下降,甚至內積計算都變得困難。
(二)降維的可行性

高維數據往往隱含低維結構(如三維空間中的曲面可嵌入二維),即“低維嵌入”,因此可通過數學變換提取有效低維特征。

三、多維縮放(MDS)

MDS通過保持樣本間的距離,將高維數據映射到低維空間,核心是“距離不變性”。

(一)核心目標

給定高維空間的距離矩陣DDDdistijdist_{ij}distij?為樣本xix_ixi?xjx_jxj?的距離),找到低維空間表示ziz_izi?,使∥zi?zj∥=distij\|z_i - z_j\| = dist_{ij}zi??zj?=distij?

(二)算法步驟
  1. 計算內積矩陣BBB:通過距離公式推導bij=?12(distij2?disti.2?dist.j2+dist..2)b_{ij} = -\frac{1}{2}(dist_{ij}^2 - dist_{i.}^2 - dist_{.j}^2 + dist_{..}^2)bij?=?21?(distij2??disti.2??dist.j2?+dist..2?),其中disti.2dist_{i.}^2disti.2?為第i行距離的均值;
  2. 特征值分解:對BBB做特征值分解,取前d′d'd個最大特征值及對應特征向量;
  3. 低維映射:低維坐標為Z=Λ~1/2V~TZ = \tilde{\Lambda}^{1/2} \tilde{V}^TZ=Λ~1/2V~TΛ~\tilde{\Lambda}Λ~為前d′d'd個特征值構成的對角矩陣,V~\tilde{V}V~為對應特征向量)。
(三)擴展

實際應用中可放寬“嚴格距離不變”,僅需低維距離盡可能接近原始距離,以實現有效降維。

四、主成分分析(PCA)

PCA是最常用的線性降維方法,通過尋找數據的主成分(最大方差方向),保留主要信息。

(一)核心思想
  • 最近重構性:樣本到低維超平面的距離最小(重構誤差最小);
  • 最大可分性:樣本在低維超平面上的投影方差最大,信息保留最多。
(二)算法步驟
  1. 中心化:對所有樣本去均值(xi←xi?xˉx_i \leftarrow x_i - \bar{x}xi?xi??xˉxˉ\bar{x}xˉ為樣本均值);
  2. 計算協方差矩陣XXTXX^TXXTXXX為中心化后的樣本矩陣);
  3. 特征值分解:對協方差矩陣分解,取前d′d'd個最大特征值對應的特征向量構成投影矩陣WWW
  4. 映射:低維坐標為zi=WTxiz_i = W^T x_izi?=WTxi?
(三)低維維數d′d'd的選擇
  • 交叉驗證:在不同d′d'd下訓練模型(如kNN),選擇性能最優值;
  • 重構閾值:選取最小d′d'd使∑i=1d′λi∑i=1dλi≥t\frac{\sum_{i=1}^{d'}\lambda_i}{\sum_{i=1}^d \lambda_i} \geq ti=1d?λi?i=1d?λi??tttt為閾值,如0.95)。
(四)優勢
  • 計算簡單,可去噪(最小特征值常對應噪聲,舍棄后提升魯棒性);
  • 新樣本可直接通過投影矩陣映射到低維空間。

五、流形學習

流形學習假設高維數據分布在低維流形上(局部與歐氏空間同胚),通過局部距離推廣到全局,實現非線性降維。

(一)核心概念
  • 流形:局部與歐氏空間同胚的空間(如球面局部像平面);
  • 測地線距離:流形上兩點的真實距離(高維空間直線距離可能不反映真實鄰近關系)。
(二)Isomap算法(典型流形學習方法)
  1. 構建近鄰圖:對每個樣本,用歐氏距離找k近鄰,近鄰間距離為歐氏距離,非近鄰為無窮大;
  2. 計算測地線距離:通過Dijkstra或Floyd算法計算近鄰圖上的最短路徑,作為樣本間真實距離;
  3. MDS降維:將測地線距離作為MDS的輸入,得到低維坐標。
(三)應用

適合可視化(降維至2D/3D),但計算復雜度高, scalability較差。

六、度量學習

度量學習直接學習合適的距離度量,替代歐氏距離,提升近鄰學習等任務的性能。

(一)距離度量的擴展
  • 加權歐氏距離:為不同屬性分配權重wiw_iwi?dist2=(xi?xj)TW(xi?xj)dist^2 = (x_i - x_j)^T W (x_i - x_j)dist2=(xi??xj?)TW(xi??xj?)WWW為對角矩陣,Wii=wiW_{ii}=w_iWii?=wi?);
  • 馬氏距離:用半正定矩陣MMM建模屬性相關性,dist2=(xi?xj)TM(xi?xj)dist^2 = (x_i - x_j)^T M (x_i - x_j)dist2=(xi??xj?)TM(xi??xj?)MMM為度量矩陣。
(二)學習目標

通過優化任務性能(如kNN分類準確率)學習MMM,若MMM為低秩矩陣,可提取投影矩陣PPP實現降維(z=PTxz = P^T xz=PTx)。

總結

降維與度量學習通過提取低維有效特征或優化距離度量,緩解維數災難。kNN是簡單的近鄰學習方法,MDS和PCA是經典線性降維方法,流形學習適用于非線性數據,度量學習則直接優化距離以提升任務性能。實際應用中需根據數據特性選擇方法(線性/非線性、可解釋性要求等)。

上一章:機器學習09——聚類
下一章:機器學習11——特征選擇與稀疏學習
機器學習實戰項目:【從 0 到 1 落地】機器學習實操項目目錄:覆蓋入門到進階,大學生就業 / 競賽必備

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

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

相關文章

Js 圖片加載完成 與 圖片緩存加載的區別

這兩個有什么區別// 圖片加載完成后淡入$img.on(load, function () {$img.css(opacity, 1);});// 處理圖片緩存情況if ($img[0].complete) {$img.css(opacity, 1);}要理解這兩段代碼的區別,需要先明確它們的核心作用場景和執行時機差異—— 本質是解決 “圖片加載完…

國產化PDF處理控件Spire.PDF教程:如何在 Java 中通過模板生成 PDF

在企業級應用開發中,生成 PDF 文檔是一項非常常見的需求。無論是發票、報告、合同,還是其他業務文檔,開發人員通常都需要一種高效、穩定的方式來創建 PDF。與其逐行繪制 PDF 內容,不如直接利用 模板 ——常見的模板形式包括 HTML …

Spring Cloud Gateway WebFlux現cvss10分高危漏洞,可導致環境屬性篡改

漏洞概述Spring官方披露了Spring Cloud Gateway Server WebFlux組件中存在一個高危漏洞(編號CVE-2025-41243),該漏洞在特定配置下允許攻擊者篡改Spring環境屬性。該漏洞已獲得CVSS 10.0的最高嚴重性評級。根據安全公告,該漏洞被描…

嵌入式 SQLite 數據庫開發筆記

嵌入式 SQLite 數據庫開發入門筆記在嵌入式開發中,數據存儲與管理是不可或缺的環節。對于資源有限的系統,輕量級數據庫 SQLite 是一個非常理想的選擇。它無需獨立服務進程,直接嵌入到應用中即可使用,既能滿足數據持久化需求&#…

Spark面試題及詳細答案100道(71-80)-- 配置與部署

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

Redis 面試

1、主從集群1、構建主從集群單節點Redis的并發能力是有上限的,要進一步提高Redis的并發能力,就需要搭建主從集群,實現讀寫分離。主寫從讀,主可以讀也可以寫,從只能讀利用docker-compose文件來構建主從集群:…

如何使用PostgreSQL數據庫進行數據挖掘與預測分析

如何使用PostgreSQL數據庫進行數據挖掘與預測分析 關鍵詞:PostgreSQL,數據挖掘,預測分析,數據庫,機器學習 摘要:本文旨在深入探討如何利用PostgreSQL數據庫進行數據挖掘與預測分析。首先介紹了使用PostgreSQL進行此類操作的背景信息,包括目的、預期讀者、文檔結構等。接…

ZooKeeper vs Redis:分布式鎖的實現與選型指南

一、Redis 分布式鎖:追求極致的性能 Redis 分布式鎖基于內存操作,其核心思想是在內存中設置一個唯一的鍵值對來表示鎖的持有。 1. 基礎實現(SETNX Lua) 最簡單的實現是使用 SETNX(SET if Not eXists)命令&…

vue基于Springboot框架的考研咨詢平臺系統實現

目錄前言-本系統介紹已開發項目效果實現截圖開發技術詳細介紹核心代碼參考示例1.建立用戶稀疏矩陣,用于用戶相似度計算【相似度矩陣】2.計算目標用戶與其他用戶的相似度系統測試總結源碼獲取詳細視頻演示或者查看其他版本:文章底部獲取博主聯系方式&…

蘋果用戶速更新!macOS存嚴重漏洞,用戶隱私數據面臨泄露風險

漏洞概況近日,macOS系統發現一個CVSS評分高達 9.8 的高危漏洞,該漏洞可能允許應用程序繞過系統保護機制,非法訪問受保護的用戶數據。該漏洞編號為 CVE-2025-24204,目前已有概念驗證(PoC)代碼公開。漏洞影響…

海盜王64位dx9客戶端修改篇之五

在海盜王3.0客戶都升級64位dx9版本的過程中,因為特效的問題,被卡殼了很久。 開始是精靈草的粒子效果、白銀城的煙囪煙霧效果、篝火的效果、陽光透射效果、海浪效果等,修了很長的時間,才找到竅門弄好。 然后是精靈效果、角色陰影。…

Linux學習——管理網絡安全(二十一)

一、管理服務器防火墻(firewalld)RHEL 默認使用 firewalld 作為防火墻管理工具,它通過 “區域(zone)” 和 “服務(service)” 的概念簡化規則配置,支持動態更新規則而無需重啟服務。…

leetcode-python-1941檢查是否所有字符出現次數相同

題目: 給你一個字符串 s ,如果 s 是一個 好 字符串,請你返回 true ,否則請返回 false 。 如果 s 中出現過的 所有 字符的出現次數 相同 ,那么我們稱字符串 s 是 好 字符串。 示例 1: 輸入:s “…

Snort的介紹

當然可以。以下是對 Snort 的全面介紹,涵蓋其定義、核心功能、三種運行模式、工作原理、規則系統以及應用場景等內容。 Snort 網絡入侵檢測系統(NIDS)詳解 一、Snort 簡介 Snort 是一款開源的、輕量級但功能強大的 網絡入侵檢測與防御系統&…

滴滴二面準備(一)

結合你的簡歷內容和技術面試問題,以下是一個結構化的回答建議,突出你的技術深度和項目經驗:2. 項目與實習經歷 得物低代碼落地頁編輯器(核心項目) 背景:解決軟廣落地頁開發周期長、迭代慢問題。技術方案&am…

socket通信在Windows和Linux上的區別

前言 筆者在將socket通信的自定義類從Linux移植到Windows時遇到一些問題&#xff0c;整理下來希望幫助到需要的人&#xff0c;同時也加深自己的理解。 差異 頭文件 #ifdef _WIN32 #include <ws2tcpip.h> #define inet_pton InetPton #define SHUT_RDWR SD_BOTH #define M…

一款將PDF轉化為機器可讀格式的工具介紹

ps:以下內容來自MinerU項目 MinerU 項目簡介 MinerU是一款將PDF轉化為機器可讀格式的工具&#xff08;如markdown、json&#xff09;&#xff0c;可以很方便地抽取為任意格式。 MinerU誕生于書生-浦語的預訓練過程中&#xff0c;我們將會集中精力解決科技文獻中的符號轉化問…

代碼隨想錄算法訓練營第三十九天|62.不同路徑 63.不同路徑ll

62.不同路徑&#xff1a; 文檔講解&#xff1a;代碼隨想錄|62.不同路徑 視頻講解&#xff1a;https://www.bilibili.com/video/BV1ve4y1x7Eu 狀態&#xff1a;已做出 一、題目要求&#xff1a; 一個二維數組里&#xff0c;將(0&#xff0c;0)位置下標作為起點&#xff0c;計算…

openEuler2403安裝部署Prometheus和Grafana

文章目錄openEuler2403安裝部署Prometheus和Grafana一、前言1.簡介2.環境二、正文1.環境準備1&#xff09;JDK 安裝部署&#xff08;可選&#xff09;2&#xff09;關閉防火墻2.安裝 Prometheus1&#xff09;下載和安裝2&#xff09;啟動3&#xff09;systemd服務管理3.安裝 Gr…

樂吾樂大屏可視化組態軟件【SQL數據源】

樂吾樂大屏可視化組態軟件&#xff08;大屏可視化設計器 - 樂吾樂Le5le&#xff09;支持直接對接SQL數據源功能&#xff0c;目前僅對企業源碼客戶開放。 配置SQL數據源 管理員進入可視化管理中心&#xff0c;點擊SQL數據源&#xff0c;配置添加SQL數據源。 創建SQL數據源連接 …