大连理工大学选修课——机器学习笔记(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μ)T1(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(C1x),p(C2x),,p(Cmx)
  • 判断样本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(Cmx))

后验概率的计算

  • 经典的贝叶斯概率公式:
    • 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(Cix)=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(Cix)的估算

  • 基于假设:

    • 相似的输入应该有相似的输出。

    • 局部的分布模型只受到邻近实例样本的影响。

      在这里插入图片描述
      在这里插入图片描述

  • 随机变量x落入区域R的概率:

P = ∫ R p ( x ) d x P=\int_Rp(x)dx P=Rp(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=CNkPk(1P)Nk,CNk=k!(Nk)!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=Rp(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} NkP^=Rp^(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)=NiVk(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^(Cix)=kki

    后验概率 P ( C i ∣ x ) P(C_i|x) P(Cix)简化为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+k3P^(C1x)=kk1P^(C2x)=kk2P^(C3x)=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(x1kx2k)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(skx1kx2k)

( 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)=(XiXj)TS1(XiXj)

——当S为单位阵,式 ( 16 ) (16) (16)等价于 ( 14 ) (14) (14),为对角阵,式 ( 16 ) (16) (16)等价于 ( 15 ) (15) (15)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.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…