当前位置: 首页 > news >正文

大连理工大学选修课——机器学习笔记(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)

相关文章:

  • 机器学习实操 第一部分 机器学习基础 第7章 集成学习与随机森林
  • 股指期货贴水对对冲的影响大吗?
  • Python实例题:Python实现简易局域网视频聊天工具
  • LeetCode算法题 (除自身以外数组的乘积)Day14!!!C/C++
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(12): ておき ます
  • 网页出现502的报错是什么意思?
  • 5、SpringBoot整合RabbitMQ
  • 楼宇智能化三、五章【期末复习】
  • Transformer-CVPR2025-线性注意力-Breaking the Low-Rank Dilemma of Linear Attention
  • 综合案例建模
  • 使用frpc链接内网的mysql
  • Python魔法函数深度解析
  • [SystemVerilog] Functions
  • 指令级并行(ILP)和线程级并行(TLP)的区别,GCC -O3优化会展开循环吗?
  • leetcode42-接雨水
  • 深入浅出循环神经网络(RNN):原理、应用与实战
  • Microsoft 365 Copilot应用4月重大更新:正式支持个人版,开启AI办公新时代!
  • 怎么做好质量管理?质量管理怎么做到高效又保质?
  • CKESC Breeze 50A FOC 电调技术解析:矢量控制赋能高效动力系统
  • 信创系统图形界面开发指南:技术选择与实践详解
  • 体坛联播|欧冠巴萨3比3战平国米,柯洁未进入国家集训队
  • 刘国中:毫不松懈巩固拓展脱贫攻坚成果,全力以赴抓好农业防灾减灾工作
  • 青海西宁市城西区副区长于媛媛主动投案,接受审查调查
  • 招行一季度净利372.86亿降2.08%,营收降逾3%
  • 日本希望再次租借大熊猫,外交部:双方就相关合作保持密切沟通
  • 美航母一战机坠海,美媒:为躲避胡塞武装攻击,损失超六千万美元