大連理工大學選修課——機器學習筆記(3):KNN原理及應用

KNN原理及應用

機器學習方法的分類

基于概率統計的方法

  • K-近鄰(KNN)
  • 貝葉斯模型
  • 最小均值距離
  • 最大熵模型
  • 條件隨機場(CRF)
  • 隱馬爾可夫模型(HMM)

基于判別式的方法

  • 決策樹(DT)
  • 感知機
  • 支持向量機(SVM)
  • 人工神經網絡(NN)
  • 深度學習(DL)

聚類算法

  • 基于劃分的聚類
    • K-Means、K-MEDOIDS、CLARANS
  • 層次聚類
    • BIRCH、CURE、CHAMELEON
  • 密度聚類
    • DBSCAN、OPTICS、DENCLUE

增強學習方法

  • 隨機森林
  • 增強算法(Boosting)
  • 極端梯度提升(Xgboost)
  • 梯度增強決策樹(GBDT)

回歸分析方法

  • 回歸分析方法
  • 非線性回歸(邏輯回歸)

概率密度及累積分布函數

概率密度函數

  • 隨機變量x出現的可能性,在某個確定的取值點附近的輸出值,記作 p ( x ) p(x) p(x)

    在這里插入圖片描述

累計分布函數

  • 隨機變量 x 的取值落在某個區域之內的概率則為概率密度函數在這個區域上的積分。
    也稱為概率分布函數,記作 P X ( x ) P_X(x) PX?(x)

    在這里插入圖片描述

高斯分布

最常見的概率分布模型,也稱為正態分布

二維:

p ( x ) = 1 2 π e x p ( ? ( x ? μ ) 2 2 σ 2 ) p(x)=\frac{1}{\sqrt{2\pi}exp(-\frac{(x-\mu)^2}{2\sigma^2})} p(x)=2π ?exp(?2σ2(x?μ)2?)1?

多維數據:

p X ( x 1 , ? , x d ) = 1 ( 2 π ) d ∣ ∑ ∣ e ( x ? μ ) T ∑ ? 1 ( x ? μ ) p_X(x_1,\cdots,x_d)=\frac{1}{\sqrt{(2\pi)^d|\sum|e^{(x-\mu)^T\sum^{-1}(x-\mu)}}} pX?(x1?,?,xd?)=(2π)de(x?μ)T?1(x?μ) ?1?

貝葉斯決策

以分類為例

對于數據樣本x,有M個類別,記作 C 1 , C 2 , ? , C m C_1,C_2,\cdots,C_m C1?,C2?,?,Cm?

  • x屬于各個類別的概率(后驗概率):
    • p ( C 1 ∣ x ) , p ( C 2 ∣ x ) , ? , p ( C m ∣ x ) p(C_1|x),p(C_2|x),\cdots,p(C_m|x) p(C1?x),p(C2?x),?,p(Cm?x)
  • 判斷樣本x屬于類別 C i C_i Ci?:
    • i = a r g M a x ( p ( C m ∣ x ) ) i=argMax(p(C_m|x)) i=argMax(p(Cm?x))

后驗概率的計算

  • 經典的貝葉斯概率公式:
    • P ( C i ∣ x ) = P ( x ∣ C i ) P ( C i ) P ( x ) = P ( x ∣ C i ) P ( C i ) ∑ P ( x ∣ C m ) P ( C m ) P(C_i|x)=\frac{P(x|C_i)P(C_i)}{P(x)}=\frac{P(x|C_i)P(C_i)}{\sum P(x|C_m)P(C_m)} P(Ci?x)=P(x)P(xCi?)P(Ci?)?=P(xCm?)P(Cm?)P(xCi?)P(Ci?)?
    • P ( C i ) = N i N P(C_i)=\frac{N_i}{N} P(Ci?)=NNi??
    • P ( x ∣ C i ) P(x|C_i) P(xCi?)可以叫做先驗概率、先驗密度、似然。

基于KNN的概率密度估計方法

后驗密度 p ( C i ∣ x ) p(C_i|x) p(Ci?x)的估算

  • 基于假設:

    • 相似的輸入應該有相似的輸出。

    • 局部的分布模型只受到鄰近實例樣本的影響。

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

  • 隨機變量x落入區域R的概率:

P = ∫ R p ( x ) d x P=\int_Rp(x)dx P=R?p(x)dx

  • 從規模為N 的樣本集中抽取 k 個樣本落入區域 R 的概率 符合隨機變量的二項分布,可以寫成:

    P k = C N k P k ( 1 ? P ) N ? k , C N k = N ! k ! ( N ? k ) ! P_k=C_N^kP^k(1-P)^{N-k},\quad C_N^k=\frac{N!}{k!(N-k)!} Pk?=CNk?Pk(1?P)N?k,CNk?=k!(N?k)!N!?

  • 具體操作方法

    • 從隨機變量 x 出發,向四周擴展,逐漸擴大區域 R。
    • 直至區域里面包進來 k 個樣本( x 最近鄰的樣本)
    • 此時,周邊區域的大小為 V R V_R VR?,分布有( k +1 )個樣本。

在這里插入圖片描述

  • 具體操作方法的理論:

    目標是估計給定數據點x的后驗密度 p ( C ∣ x ) p(C|x) p(Cx)

    E [ k ] = N P k ≈ N P ^ \begin{align} E[k]=NP\\ k\approx N{\hat{P}} \end{align} E[k]=NPkNP^??

    ( 1 ) (1) (1)說明,在區域R內,期望的最近鄰點數k等于總樣本數N乘以概率P。

    ( 2 ) (2) (2)說明,實際觀測到的最近鄰點數k近似等于NP。

    ( 2 ) (2) (2)可得:

    P ^ ≈ k N \begin{align} \hat{P}\approx\frac{k}{N} \end{align} P^Nk???

    概率P可理解為密度函數 p ( x ) p(x) p(x)在區域R內的積分,近似為 p ( x ) p(x) p(x)乘以區域體積 V V V

    P = ∫ R p ( x ) d x = p ( x ) V \begin{align} P=\int_{R}p(x)dx=p(x)V \end{align} P=R?p(x)dx=p(x)V??

    由式 ( 3 ) ( 4 ) (3)(4) (3)(4)可得:

    k N ≈ P ^ = ∫ R p ^ ( x ) d x ≈ p ^ ( x ) V \begin{align} \frac{k}{N}\approx\hat{P}=\int_R\hat{p}(x)dx\approx\hat{p}(x)V \end{align} Nk?P^=R?p^?(x)dxp^?(x)V??

    得:

    p ^ ( x ) = k / N V \begin{align} \hat{p}(x)=\frac{k/N}{V} \end{align} p^?(x)=Vk/N???

    在計算后驗概率的時候,沒有必要計算體積V:

    ( 6 ) (6) (6)等價于 ( 7 ) (7) (7)

    p ^ ( x ) = k N V k ( x ) \begin{align} \hat{p}(x)=&\frac{k}{NV_k(x)}\\ \end{align} p^?(x)=?NVk?(x)k???

    其中, k k k x x x的鄰域內所有樣本的數量, N N N為總樣本數, V k ( x ) V_k(x) Vk?(x)是鄰域的體積。

    當我們關注某個特別的類 C i C_i Ci?時,公式 ( 7 ) (7) (7)中的換位特別的類 C i C_i Ci?的樣本數 k i k_i ki?,總樣本數 N i N_i Ni?

    于是得到公式 ( 8 ) (8) (8),即類別條件概率密度估計:

    p ^ ( x ∣ C i ) = k i N i V k ( x ) \begin{align} \hat{p}(x|C_i)=&\frac{k_i}{N_iV_k(x)} \end{align} p^?(xCi?)=?Ni?Vk?(x)ki????

    基于頻率,易得表示類別 C i C_i Ci?的先驗概率估計:

    p ( C i ) = N i N \begin{align} p(C_i)=\frac{N_i}{N} \end{align} p(Ci?)=NNi????

    ( 7 ) ( 8 ) ( 9 ) (7)(8)(9) (7)(8)(9)可得:

    P ^ ( C i ∣ x ) = k i k \begin{align} \hat{P}(C_i|x)=\frac{k_i}{k} \end{align} P^(Ci?x)=kki????

    后驗概率 P ( C i ∣ x ) P(C_i|x) P(Ci?x)簡化為x的最近鄰中屬于 C i C_i Ci?的比例 k i k \frac{k_i}{k} kki??

KNN分類方法

由上推理可知:

k = k 1 + k 2 + k 3 P ^ ( C 1 ∣ x ) = k 1 k P ^ ( C 2 ∣ x ) = k 2 k P ^ ( C 3 ∣ x ) = k 3 k \begin{align} k=k_1+k_2+k_3\\ \hat{P}(C_1|x)=\frac{k_1}{k}\\ \hat{P}(C_2|x)=\frac{k_2}{k}\\ \hat{P}(C_3|x)=\frac{k_3}{k}\\ \end{align} k=k1?+k2?+k3?P^(C1?x)=kk1??P^(C2?x)=kk2??P^(C3?x)=kk3????

在這里插入圖片描述

算法描述

如果一個樣本在特征空間中的 k 個最鄰近 (即最相似)的樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別。

  • 特點:
    • KNN算法的預測風險基本與貝葉斯模型一樣,理論上非常低的錯誤風險。
    • 沒有明顯的訓練過程。
    • 算法的復雜度很高。
      • 需要記錄所有的訓練樣本。
      • 需要計算與所有訓練樣本的距離。

時間復雜度

  • KNN的時間復雜度為 O ( n 2 ) O(n^2) O(n2)
    • 設:訓練樣本規模M,測試樣本規模N,選擇k個最近鄰。
    • 時間復雜度為: O ( k × M × N ) O(k\times M\times N) O(k×M×N)
    • M > = N M>=N M>=N: O ( n 2 ) O(n^2) O(n2)

訓練樣本的有效性

不是所有樣本都有用

→KNN的決策邊界僅由靠近類別邊界的樣本決定,而遠離邊界的樣本(如類別內部的點)對分類結果無影響

優化思路:相容子集

定義:相容子集是訓練集的一個最小子集,能夠保持與原訓練集完全相同的分類決策邊界。

目標:僅保留邊界附近的樣本(相容子集),減少計算量,同時保持模型準確性。

實現:貪心算法。

KNN的距離計算方法

通常采用歐氏距離公式:

d a b = ∑ k = 1 n ( x 1 k ? x 2 k ) 2 \begin{align} d_{ab}=\sqrt{\sum_{k=1}^{n}(x_{1k}-x_{2k})^2} \end{align} dab?=k=1n?(x1k??x2k?)2 ???

如果要考慮量綱影響,可以進行歸一化:

d = ∑ k = 1 n ( x 1 k ? x 2 k s k ) \begin{align} d=\sqrt{\sum_{k=1}^{n}(\frac{x_{1k}-x_{2k}}{s_k})} \end{align} d=k=1n?(sk?x1k??x2k??) ???

( 15 ) (15) (15)中, s k s_k sk?稱為歸一化因子

采用馬氏距離:

  • 某一樣本集的樣本 Xi與Xj,樣本集的協方差矩陣 S, 這兩個多維向量Xi與Xj之間的馬氏距離:

    D ( X i , X j ) = ( X i ? X j ) T S ? 1 ( X i ? X j ) \begin{align} D(X_i,X_j)=\sqrt{(X_i-X_j)^TS^{-1}(X_i-X_j)} \end{align} D(Xi?,Xj?)=(Xi??Xj?)TS?1(Xi??Xj?) ???

——當S為單位陣,式 ( 16 ) (16) (16)等價于 ( 14 ) (14) (14),為對角陣,式 ( 16 ) (16) (16)等價于 ( 15 ) (15) (15)

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

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

相關文章

蔣新松:中國機器人之父

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 蔣新松:中國機器人之父 一、生平簡介 1. 早年經歷與求學道路 蔣新松出生于1931年8月3日,江蘇省江陰澄北鎮一個靠近長江的小鎮。他的名字來源于杜…

表征(Representations)、嵌入(Embeddings)及潛空間(Latent space)

文章目錄 1. 表征 (Representations)2. 嵌入 (Embeddings)3. 潛空間 (Latent Space)4. 關系總結5. 學習思考 1. 表征 (Representations) 定義: 表征是指數據的一種編碼或描述形式。在機器學習和深度學習中,它特指模型在處理數據時,將原始輸入數據轉換成…

【STM32實物】基于STM32的RFID多卡識別語音播報系統設計

演示視頻: 基于STM32的RFID多卡識別語音播報系統設計 前言:本項目可實現多個電子標簽IC卡RFID識別,刷卡識別后進行中文語音播報反饋,同時進行控制對應的燈光開關。以此也可擴展開發更多功能。 本項目所需主要硬件包括:STM32F103C8T6最小系統板、RFID-RC522模塊、五個IC電…

全面了解CSS語法 ! ! !

CSS(層疊樣式表)是網頁設計的靈魂之一,它賦予了網頁活力與美感。無論是為一個簡單的個人博客增添色彩,還是為復雜的企業網站設計布局,CSS都是不可或缺的工具。那么,CSS語法到底是什么樣的呢?它背…

青少年抑郁癥患者亞群結構和功能連接耦合的重構

目錄 1 研究背景及目的 2 研究方法 2.1 數據來源與參與者 2.1.1 MDD患者: 2.1.2 健康對照組: 2.2 神經影像分析流程 2.2.1 圖像采集與預處理: 2.2.2 網絡構建: 2.2.3 區域結構-功能耦合(SC-FC耦合&#xff09…

【QT】編寫第一個 QT 程序 對象樹 Qt 編程事項 內存泄露問題

目錄 1. 編寫第一個 QT 程序 1.1 使用 標簽 實現 1.2 純代碼形式實現 1.3 使用 按鈕 實現 1.3.1 圖形化界面實現 1.3.2 純代碼形式實現 1.4 使用 編輯框 實現 1.4.1 圖形化界面實現 1.4.2 純代碼形式實現 1.4.3 內存泄露 2. 認識對象模型(對象樹&…

在pycharm中創建Django項目并啟動

Django介紹 Django 是一個基于 Python 的開源 Web 應用框架,采用了 MTV(Model - Template - View)軟件設計模式 ,由許多功能強大的組件組成,能夠幫助開發者快速、高效地創建復雜的數據庫驅動的 Web 應用程序。它具有以…

在Carla中構建自動駕駛:使用PID控制和ROS2進行路徑跟蹤

機器人軟件開發什么是 P、PI 和 PID 控制器?比例 (P) 控制器比例積分 (PI) 控制器比例-積分-微分 (PID) 控制器橫向控制簡介CARLA ROS2 集成縱向控制橫向控制關鍵要點結論引用 機器人軟件開發 …

【KWDB 創作者計劃】_深度解析KWDB存儲引擎

文章目錄 每日一句正能量引言一、存儲引擎核心模塊結構二、寫前日志 WAL(Write-Ahead Log)三、列式壓縮存儲(Columnar Compression)四、索引機制與混合查詢調度五、分布式核心功能:租約管理實戰六、時間序列數據處理&a…

Apache Tomcat 漏洞(CVE-2025-24813)導致服務器面臨 RCE 風險

CVE-2025-24813Apache Tomcat 中發現了一個嚴重安全漏洞,標識為,該漏洞可能導致服務器面臨遠程代碼執行 (RCE)、信息泄露和數據損壞的風險。 此缺陷影響以下版本: Apache Tomcat11.0.0-M1通過11.0.2Apache Tomcat10.1.0-M1通過10.1.34Apache Tomcat9.0.0-M1通過9.0.98了解 …

全面解析SimHash算法:原理、對比與Spring Boot實踐指南

一、SimHash算法概述 SimHash是一種局部敏感哈希算法,由Google工程師Moses Charikar提出,主要用于海量文本的快速去重與相似度檢測。其核心思想是將高維特征向量映射為固定長度的二進制指紋(如64位),通過計算指紋間的…

臨床回歸分析及AI推理

在醫療保健決策越來越受數據驅動的時代,回歸分析已成為臨床醫生和研究人員最強大的工具之一。無論是預測結果、調整混雜因素、建模生存時間還是理解診斷性能,回歸模型都為將原始數據轉化為臨床洞察提供了統計學基礎。 AI推理 然而,隨著技術…

西門子PLC S7-1200 電動機的軟啟動控制

1 PWM 控制的基本概念 PWM 是 PulseWidth Modulation 的簡稱。 PWM 控制是一種脈沖寬度調制技術,通過對一系列脈沖的寬度進行調制來等效獲得所需要的波形(含形狀和幅值)。PWM 控制技術在逆變電路中應用比較廣泛,所應用的逆變電路絕大部分是PWM 型。除此之外, PWM 控制技術…

【學習 python day5】

學習目標: python基礎 掌握函數的定義及調用方法掌握模塊的用法掌握包的用法掌握如何捕獲異常 web自動化測試 能完成selenium自動化環境部署及結果驗證掌握selenium實現自動化測試的核心步驟 學習內容: 一、Python基礎 1、集合[了解] 1, 集合 set, …

day006-實戰練習題-參考答案

老男孩教育-99期-實戰練習題 1. 你作為"老男孩教育99期云計算"新晉運維工程師,在入職首日遭遇緊急事件: "生產環境3臺Web服務器突發性能告警,技術總監要求你立即完成: 快速建立故障診斷工作區收集關鍵系統指標分…

C# 實現列式存儲數據

C#實現列式存儲數據指南 一、列式存儲概述 列式存儲(Columnar Storage)是一種數據存儲方式,它將數據按列而非行組織。與傳統的行式存儲相比,列式存儲在以下場景具有優勢: ??分析型查詢??:聚合計算、分組統計等操作效率更高…

Mysql索引分類、索引失效場景

索引分類 按數據結構分類? B-Tree索引(BTree) 描述??:默認的索引類型,大多數存儲引擎(如InnoDB、MyISAM)支持。實際使用BTree結構,數據存儲在葉子節點,葉子節點通過指針連接&a…

SpringBoot+Redis全局唯一ID生成器

📦 優雅版 Redis ID 生成器工具類 支持: 項目啟動時自動初始化起始值獲取自增 ID 方法yml 配置化起始值可靈活擴展多業務線 ID 📌 application.yml 配置 id-generator:member-start-value: 1000000000📌 配置類:IdG…

深入掌握CSS背景圖片:從基礎到實戰

背景圖片: 本文將通過系統化的講解實戰案例,幫助讀者徹底掌握CSS背景圖片的六大核心知識點。每個知識點都包含對比演示和記憶技巧,建議結合代碼實操學習。 一、背景圖片基礎設置 使用background-image(路徑)屬性設置…

WPF之XAML基礎

文章目錄 XAML基礎:深入理解WPF和UWP應用開發的核心語言1. XAML簡介XAML與XML的關系 2. XAML語法基礎元素語法屬性語法集合語法附加屬性 3. XAML命名空間命名空間映射關系 4. XAML標記擴展靜態資源引用數據綁定相對資源引用常見標記擴展對比 5. XAML與代碼的關系XAM…