针对两个随机变量,联合概率分布具有两种分解形式
P ( x , y ) = P ( x ∣ y ) P ( y ) = P ( y ∣ x ) P ( x ) P(x,y)=P(x|y)P(y)=P(y|x)P(x) P(x,y)=P(x∣y)P(y)=P(y∣x)P(x)
因此,利用上式得到贝叶斯公式
P ( c ∣ x ) = P ( x ∣ c ) P ( c ) P ( x ) P(c|x)=\frac{P(x|c)P(c)}{P(x)} P(c∣x)=P(x)P(x∣c)P(c)
通过贝叶斯公式得到贝叶斯决策理论基本思想:
1️⃣ 已知类条件概率密度参数表达式 P ( x ∣ c ) P(x|c) P(x∣c)和先验概率 P ( c ) P(c) P(c)
2️⃣ 利用贝叶斯公式转换成后验概率
3️⃣ 根据后验概率大小进行决策分类
**先验概率(prior probability):**指根据以往经验和分析。在实验或采样前就可以得到的概率。
**后验概率(posterior probability):**指某件事已经发生,想要计算这件事发生的原因是由某个因素引起的概率。
类条件概率密度是,假定x是一个连续随机变量,其分布取决于类别状态,表示成p(x|ω)的形式,这就是“类条件概率密度”函数,即类别状态为ω时的x的概率密度函数(有时也称为状态条件概率密度)。
贝叶斯分类决策利用概率对数据进行建模,从而基于贝叶斯定理给出分类预测的不确定性
将特征向量 x = ( x 1 , . . . , x p ) T x=(x_1,...,x_p)^T x=(x1,...,xp)T类别标签作为随机变量
给定样本,基于条件(后验)概率 P ( c i ∣ x ) P(c_i|x) P(ci∣x)计算将样本分类为所产生的期望损失
R ( c i ∣ x = ∑ j = 1 L λ i j P ( c j ∣ x ) R(c_i|\pmb x= \sum_{j=1}^L\lambda_{ij}P(c_j|\pmb x) R(ci∣xxx=j=1∑LλijP(cj∣xxx)
其中, λ i j \lambda_{ij} λij是将一个真实标记为 c j c_j cj的样本误分类为 c i c_i ci所产生的损失
贝叶斯判定准则要求 期望损失达到最小 。
h ∗ ( x ) = argmin R ( c ∣ x ) h^*(x)=\text{argmin}\ R(c|x) h∗(x)=argmin R(c∣x)
称 h ∗ ( x ) h^*(x) h∗(x)为贝叶斯最优分类器
进一步,若目标是最小化分类错误率,则
期望损失可以写成
R ( c i ∣ x ) = P ( c 1 ∣ x ) + . . . + P ( c i − 1 ∣ x ) + P ( c i + 1 ∣ x ) + . . . + P ( c L ∣ x ) = 1 − P ( c i ∣ x ) R(c_i|x)=P(c_1|x)+...+P(c_{i-1}|x)+P(c_{i+1}|x)+...+P(c_{L}|x)=1-P(c_i|x) R(ci∣x)=P(c1∣x)+...+P(ci−1∣x)+P(ci+1∣x)+...+P(cL∣x)=1−P(ci∣x)
于是,对每个样本,选择使后验概率最大的类别标记
c M A P = argmax c j ∈ C P ( c j ∣ x 1 , x 2 , . . . , x p ) c_{MAP}=\underset{c_j\in C}{\text{argmax}}\ P(c_j|x_1,x_2,...,x_p) cMAP=cj∈Cargmax P(cj∣x1,x2,...,xp)
估计后验概率(|)的方法主要有两种策略:
1️⃣ 判别式模型:通过对(|)直接建模预测
逻辑回归:
P ( c ∣ x ; θ ) = ( f θ ( x ) ) c ( 1 − f θ ( x ) ) 1 − c c ∈ 0 , 1 f θ ( x ) = 1 1 + e − θ T x P(c|x;\theta)=(f_\theta(x))^c(1-f_\theta(x))^{1-c}\\ c\in{0,1}\ f_{\theta}(x)=\frac{1}{1+e^{-\theta^Tx}} P(c∣x;θ)=(fθ(x))c(1−fθ(x))1−cc∈0,1 fθ(x)=1+e−θTx1
直接对条件概率建模,不关心背后的数据分布 P ( x , c ) P(x,c) P(x,c)
2️⃣ 生成式模型:使用贝叶斯推理预测,即假定类条件概率具有某种确定的概率分布
先对联合概率分布(,)建模,再通过贝叶斯公式计算后验概率(|)
先对联合概率分布 (, ) 建模,再通过贝叶斯公式计算后验概率 ( | )
GANs:适用于娱乐行业
基于贝叶斯公式估计后验概率:
使用最大后验概率准则给出类标签
例子:今天我们可以打网球吗?
训练示例集如下
如果给一个新样本:X = (天气 = 晴, 气温 = 冷, 湿度 = 高, 风 = 有),想知道是否可以打网球?
依据大数定律,利用样本出现频率估计先验概率
在试验不变的条件下,重复试验多次,随机事件的频率近似于它的概率。偶然中包含着某种必然。
其次,估计类条件概率
根据样本出现频率估计条件概率。但由于样本数远小于随机向量的可能取值数目,估计值通常不可靠
例如: P ( 多 云 , 热 , 高 , 无 ∣ Y e s ) = 1 9 P ( 多 云 , 热 , 高 , 无 ∣ Y e s ) = 0 5 P(多云,热,高,无|Yes)=\frac{1}{9}\qquad P(多云,热,高,无|Yes)=\frac{0}{5} P(多云,热,高,无∣Yes)=91P(多云,热,高,无∣Yes)=50
未观测到≠出现概率为0
训练过程
获得先验概率
P ( X = Y e s ) = 9 14 P ( C = N o ) = 5 14 P(X=Yes)=\frac{9}{14}\qquad P(C=No)=\frac{5}{14} P(X=Yes)=149P(C=No)=145
得到类条件概率表
测试阶段
给定测试样本:X = (天气 = 晴, 气温 = 冷, 湿度 = 高, 风 = 有), 通过查找条件概率表,可以得到
P ( X ∣ Y e s ) P ( C = Y e s ) = 0 9 × = 9 14 = 0 P ( X ∣ N o ) P ( C = N o ) = 0 5 × = 5 14 = 0 P(X|Yes)P(C=Yes)=\frac{0}{9}\times =\frac{9}{14}=0\\ P(X|No)P(C=No)=\frac{0}{5}\times =\frac{5}{14}=0\\ P(X∣Yes)P(C=Yes)=90×=149=0P(X∣No)P(C=No)=50×=145=0
由此,基于贝叶斯公式:
P ( Y e s ∣ X ) = 0 P ( N o ∣ X ) = 0 P(Yes|X)=0\qquad P(No|X)=0 P(Yes∣X)=0P(No∣X)=0
打和不打都是0,效果不好!
朴素贝叶斯分类:对已知类别,假设所有属性相互独立(属性条件独立性假设)
因此朴素贝叶斯的分类公式为:
在训练时,朴素贝叶斯为每个属性估计条件概率 P ( x i ∣ c j ) P(x_i|c_j) P(xi∣cj)
假设样本的个属性都有种可能取值,则共需要估计个条件概率
朴素贝叶斯的朴素体现在其对各个条件的独立性假设上,加上独立假设后,大大减少了参数的假设空间:从 d p d^p dp降到了。
例子:今天我们可以打网球吗?
训练示例集如下
如果给一个新样本:X = (天气 = 晴, 气温 = 冷, 湿度 = 高, 风 = 有),想知道是否可以打网球?
需要估计
先验 P ( C = c j ) P(C=c_j) P(C=cj)
每个属性的条件概率 P ( x i ∣ c j ) P(x_i|c_j) P(xi∣cj)
使用样本出现的概率
P ^ ( c j ) = N ( C = c j ) N P ^ ( x i ∣ c j ) = N ( X i = x i , C = c j ) N ( C = c j ) \hat{P}(c_j)=\frac{N(C=c_j)}{N}\\ \hat{P}(x_i|c_j)=\frac{N(X_i=x_i,C=c_j)}{N(C=c_j)} P^(cj)=NN(C=cj)P^(xi∣cj)=N(C=cj)N(Xi=xi,C=cj)
对于打网球问题,有
先验概率:
P ( C = Y e s ) = 9 / 14 P ( C = N o ) = 5 / 14 P(C=Yes)=9/14\qquad P(C=No)=5/14 P(C=Yes)=9/14P(C=No)=5/14
条件概率 P ( X i ∣ C j ) P(X_i|C_j) P(Xi∣Cj)
测试步骤
1️⃣ 给定新样本:X = (天气 = 晴, 气温 = 冷, 湿度 = 高, 风 = 有)
2️⃣ 查先验和条件概率表
P ( C = Y e s ) = 9 / 14 P ( C = N o ) = 5 / 14 P(C=Yes)=9/14\qquad P(C=No)=5/14 P(C=Yes)=9/14P(C=No)=5/14
3️⃣ 计算后验概率
4️⃣ 因为P(Yes|x)
若某个属性值在训练集中没有与某个类同时出现过,则基于频率的概率估计将为零
不合理:仅仅因为事件之前没有发生过,并不意味着它不会发生,为避免这一情况,需要对概率值进行平滑
解决方案:使用拉普拉斯校正
P ^ ( c j ) = N ( C = c j ) + 1 N + ∣ C ∣ P ^ ( x i ∣ c j ) = N ( X i = x i , C = c j ) + 1 N ( C = c j ) + ∣ X i ∣ ∣ C ∣ → 类 的 个 数 ∣ X i ∣ → 属 性 的 取 值 数 目 \hat{P}(c_j)=\frac{N(C=c_j)+1}{N+|C|}\\ \hat{P}(x_i|c_j)=\frac{N(X_i=x_i,C=c_j)+1}{N(C=c_j)+|X_i|}\\ |C|\rightarrow 类的个数\qquad |X_i|\rightarrow 属性的取值数目 P^(cj)=N+∣C∣N(C=cj)+1P^(xi∣cj)=N(C=cj)+∣Xi∣N(Xi=xi,C=cj)+1∣C∣→类的个数∣Xi∣→属性的取值数目
例如:
P ( X 1 = 多 云 ∣ C = N o ) = 0 + 1 5 + 3 = 1 8 P(X_1=多云|C=No)=\frac{0+1}{5+3}=\frac{1}{8} P(X1=多云∣C=No)=5+30+1=81
避免了因训练样本不足而导致的概率估值为0的问题。
一维的高斯概率密度函数
N ( x ∣ μ , σ 2 ) = 1 ( 2 π σ 2 ) 1 / 2 e x p { − 1 2 σ 2 ( x − μ ) 2 } N(x|\mu,\sigma^2) = \frac{1}{(2\pi\sigma^2)^{1/2}}exp\{-\frac{1}{2\sigma^2}(x-\mu)^2\} N(x∣μ,σ2)=(2πσ2)1/21exp{−2σ21(x−μ)2}
多维的高斯概率密度函数
N ( x ∣ μ , Σ ) = 1 ( 2 π ) p / 2 1 ∣ Σ ∣ 1 / 2 e x p { − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) } N(\pmb{x}|\pmb{\mu},\pmb{\Sigma})=\frac{1}{(2\pi)^{p/2}}\frac{1}{|\pmb\Sigma|^{1/2}}exp\{-\frac{1}{2}(\pmb x-\pmb\mu)^T\pmb\Sigma^{-1}(\pmb x-\pmb\mu)\} N(xxx∣μμμ,ΣΣΣ)=(2π)p/21∣ΣΣΣ∣1/21exp{−21(xxx−μμμ)TΣΣΣ−1(xxx−μμμ)}
Σ是协方差矩阵
一维 Gaussian 情况下:均值和方差的极大似然估计值分别是样本的均值及样本的方差
μ = 1 n ∑ i = 1 n x i σ 2 = 1 n ∑ i = 1 n ( x i − μ ) 2 ( 有 偏 估 计 , 无 偏 估 计 是 1 n + 1 ) \mu=\frac{1}{n}\sum_{i=1}^n x_i\qquad \sigma^2=\frac{1}{n}\sum_{i=1}^n(x_i-\mu)^2(有偏估计,无偏估计是\frac{1}{n+1}) μ=n1i=1∑nxiσ2=n1i=1∑n(xi−μ)2(有偏估计,无偏估计是n+11)
多维 Gaussian 情况下,均值和协方差矩阵的估计值分别为
μ = 1 n ∑ i = 1 n x i Σ 2 = 1 n ∑ i = 1 n ( x i − μ ) ( x i − μ ) T Σ 是 一 个 p × p 的 矩 阵 \mu=\frac{1}{n}\sum_{i=1}^n x_i\qquad \Sigma^2=\frac{1}{n}\sum_{i=1}^n(x_i-\mu)(x_i-\mu)^T\\ \Sigma 是一个p\times p的矩阵 μ=n1i=1∑nxiΣ2=n1i=1∑n(xi−μ)(xi−μ)TΣ是一个p×p的矩阵
argmax C P ( C ∣ X ) = argmax C P ( X , C ) = argmax C P ( X ∣ C ) P ( C ) \underset{C}{\text{argmax}}P(C|X)=\underset{C}{\text{argmax}}P(X,C)=\underset{C}{\text{argmax}}P(X|C)P(C) CargmaxP(C∣X)=CargmaxP(X,C)=CargmaxP(X∣C)P(C)
假设类条件概率服从高斯分布
P ( X 1 , X 2 , . . . , X P ∣ C ) = N ( x ∣ μ , Σ ) = 1 ( 2 π ) p / 2 1 ∣ Σ ∣ 1 / 2 e x p { − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) } P(X_1,X_2,...,X_P|C)=N(\pmb{x}|\pmb{\mu},\pmb{\Sigma})=\frac{1}{(2\pi)^{p/2}}\frac{1}{|\pmb\Sigma|^{1/2}}exp\{-\frac{1}{2}(\pmb x-\pmb\mu)^T\pmb\Sigma^{-1}(\pmb x-\pmb\mu)\} P(X1,X2,...,XP∣C)=N(xxx∣μμμ,ΣΣΣ)=(2π)p/21∣ΣΣΣ∣1/21exp{−21(xxx−μμμ)TΣΣΣ−1(xxx−μμμ)}
朴素贝叶斯假设
P ( X 1 , X 2 , . . . , X P ∣ C ) = P ( X 1 ∣ C ) P ( X 2 ∣ C ) . . . P ( X P ∣ C ) P(X_1,X_2,...,X_P|C)=P(X_1|C)P(X_2|C)...P(X_P|C) P(X1,X2,...,XP∣C)=P(X1∣C)P(X2∣C)...P(XP∣C)
针对密度,利用一维高斯分布,估计一下好瓜和坏瓜的高斯分布
训练过程
1️⃣ 训练阶段
对于 X = ( x 1 , x 2 , . . . , x p ) 1 : N , C = { c 1 , c 2 , . . . , c L } X=(x_1,x_2,...,x_p)_{1:N},C=\{c_1,c_2,...,c_L\} X=(x1,x2,...,xp)1:N,C={c1,c2,...,cL},估计先验: P ( C = c j ) P(C=c_j) P(C=cj),以及 p × L p\times L p×L个条件正态分布
其中使用极大似然估计参数、
μ i j = 1 N ( C = c j ) ∑ x i ∈ c j x i σ i j 2 = 1 N ( C = c j ) ∑ x i ∈ c j ( x i − μ i j ) 2 \mu_{ij}=\frac{1}{N(C=c_j)}\sum_{x_i\in c_j}x_i\quad \sigma_{ij}^2=\frac{1}{N(C=c_j)}\sum_{x_i\in c_j}(x_i-\mu_{ij})^2 μij=N(C=cj)1xi∈cj∑xiσij2=N(C=cj)1xi∈cj∑(xi−μij)2
2️⃣ 测试阶段
对于于新样本 X ′ = ( x 1 ′ , x 2 ′ , . . . , x p ′ ) X'=(x_1',x_2',...,x_p') X′=(x1′,x2′,...,xp′)使用所有的正态分布计算类条件概率密度,基于MAP 准则进行分类
argmax c j ∈ C ∏ i = 1 p P ( x i ′ ∣ c j ) P ( c j ) \underset{c_j\in C}{\text{argmax}}\prod_{i=1}^p P(x_i'|c_j)P(c_j) cj∈Cargmaxi=1∏pP(xi′∣cj)P(cj)
使需要估计的参数量减少: O ( p 2 ) → O ( p ) O(p^2)\rightarrow O(p) O(p2)→O(p)
非朴素:
P ( X 1 , X 2 , . . . , X P ∣ C ) = N ( x ∣ μ , Σ ) = 1 ( 2 π ) p / 2 1 ∣ Σ ∣ 1 / 2 e x p { − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) } P(X_1,X_2,...,X_P|C)=N(\pmb{x}|\pmb{\mu},\pmb{\Sigma})=\frac{1}{(2\pi)^{p/2}}\frac{1}{|\pmb\Sigma|^{1/2}}exp\{-\frac{1}{2}(\pmb x-\pmb\mu)^T\pmb\Sigma^{-1}(\pmb x-\pmb\mu)\} P(X1,X2,...,XP∣C)=N(xxx∣μμμ,ΣΣΣ)=(2π)p/21∣ΣΣΣ∣1/21exp{−21(xxx−μμμ)TΣΣΣ−1(xxx−μμμ)}
共有 L × ( p + p × ( p + 1 ) / 2 ) L×(p+p× (p+1)/2) L×(p+p×(p+1)/2)个参数
朴素
每一类的协方差矩阵都是对角阵,共有L× (p+p)个参数
如果输入的数据是一个 L \pmb L LLL维空间特征,考虑一个 M \pmb M MMM分类问题,那么分类器将会把这个 L \pmb L LLL维空间的特征点分为i个区域 M \pmb M MMM。每个区域显然就属于一个类别,如果输入一个点 x \pmb x xxx落在第 i \pmb i iii个区域,那么 x \pmb x xxx就属于第 i \pmb i iii类。分割成这些区域的边界就称为决策面。
基于MAP准则进行分类
π k \pi _k πk为第k类的先验概率
决策边界对应后验概率临界值(指数形式用log比较简单)
P ( c k ∣ x ) = P ( c l ∣ x ) ⇒ log P ( c k ∣ x ) − log P ( c l ∣ x ) = 0 log P ( C k ∣ X ) P ( C l ∣ X ) = log ( P ( X ∣ C k ) P ( X ∣ C l ) P ( C k ) P ( C l ) ) = log P ( X ∣ C k ) P ( X ∣ C l ) + log P ( C k ) P ( C l ) 其 中 : log P ( x ∣ c k ) = 1 2 ( x − μ k ) T Σ k − 1 ( x − μ k ) − log ∣ Σ k ∣ 1 2 P(c_k|x)=P(c_l|x)\Rightarrow \log P(c_k|x)-\log P(c_l|x)=0\\ \log \frac{P(C_k|X)}{P(C_l|X)}=\log (\frac{P(X|C_k)}{P(X|C_l)}\frac{P(C_k)}{P(C_l)})=\log \frac{P(X|C_k)}{P(X|C_l)}+\log \frac{P(C_k)}{P(C_l)}\\ 其中:\log P(x|c_k)=\frac{1}{2}(x-\mu_k)^T\Sigma_k^{-1}(x-\mu_k)-\log |\Sigma_k|^{\frac{1}{2}} P(ck∣x)=P(cl∣x)⇒logP(ck∣x)−logP(cl∣x)=0logP(Cl∣X)P(Ck∣X)=log(P(X∣Cl)P(X∣Ck)P(Cl)P(Ck))=logP(X∣Cl)P(X∣Ck)+logP(Cl)P(Ck)其中:logP(x∣ck)=21(x−μk)TΣk−1(x−μk)−log∣Σk∣21
因此
决策边界二次: Quadratic Discriminant Analysis, QDA
特殊情况:每类的协方差矩阵均相同,不同类的高斯分布可以通过互相平移得到
上式简化成
决策边界: x T a + b = 0 ⇒ 线 性 决 策 x^Ta+b=0\Rightarrow 线性决策 xTa+b=0⇒线性决策
通过假设每一类具有的相同协方差矩阵,得到一种经典的线性学习方法:线性判别分析(Linear Discriminant Analysis, LDA)。
共有L×p + p× (p+1)/2 个参数
LDA拟合精度虽然可能不如一般的高斯函数准确 但大幅减少了参数量
先验: P ^ ( C = c i ) = N ( C = c j ) N \hat P(C=c_i)=\frac{N(C=c_j)}{N} P^(C=ci)=NN(C=cj)
第j个高斯分布的均值 μ j = 1 N ( C = c j ) ∑ X ∈ c j X \mu_j=\frac{1}{N(C=c_j)}\sum_{X\in c_j}X μj=N(C=cj)1∑X∈cjX
高斯分布的协方差矩阵:对每个类别计算样本协方差矩阵,然后把所有类别的样本协方差矩阵相加
所有的类共享一个协方差矩阵
Σ = 1 N ∑ c j ∈ C ∑ X ∈ c j ( X − μ j ) ( X − μ j ) T \Sigma =\frac{1}{N}\sum_{c_j\in C}\sum_{X\in c_j}(X-\mu_j)(X-\mu_j)^T Σ=N1cj∈C∑X∈cj∑(X−μj)(X−μj)T
LDA决策面为:
其中定义
a 0 = log π 1 π 2 − 1 2 ( μ 1 + μ 2 ) T Σ − 1 ( μ 1 − μ 2 ) ( a 1 , a 2 , . . . , a p ) T = Σ − 1 ( μ 1 − μ 2 ) a_0=\log\frac{\pi_1}{\pi_2}-\frac{1}{2}(\mu_1+\mu_2)^T\Sigma^{-1}(\mu_1-\mu_2)\\ (a_1,a_2,...,a_p)^T=\Sigma^{-1}(\mu_1-\mu_2) a0=logπ2π1−21(μ1+μ2)TΣ−1(μ1−μ2)(a1,a2,...,ap)T=Σ−1(μ1−μ2)
若 a 0 + ∑ i = 1 p a j x j > 0 a_0+\sum_{i=1}^pa_jx_j>0 a0+∑i=1pajxj>0,将x的标签置为c1,否则置为c2
如
Σ 好 瓜 = ( σ 11 2 0 0 σ 12 2 ) Σ 坏 瓜 = ( σ 21 2 0 0 σ 22 2 ) \Sigma_{好瓜}=\begin{pmatrix} \sigma_{11}^2\quad 0\\ 0\quad \sigma_{12}^2 \end{pmatrix}\quad \Sigma_{坏瓜}=\begin{pmatrix} \sigma_{21}^2\quad 0\\ 0\quad \sigma_{22}^2 \end{pmatrix} Σ好瓜=(σ11200σ122)Σ坏瓜=(σ21200σ222)
因为Σ ≠ Σ ,所以高斯朴素贝叶斯的决策面仍然是非线性的(二次)
1️⃣ 估计类条件概率 P ( X 1 , . . . , X p ∣ C ) P(X_1,...,X_p|C) P(X1,...,Xp∣C)使用属性独立假设
P ( X 1 , X 2 , . . . , X p ∣ C ) = P ( X 1 ∣ C ) P ( X 2 ∣ C ) . . . P ( X P ∣ C ) P(X_1,X_2,...,X_p|C)=P(X_1|C)P(X_2|C)...P(X_P|C) P(X1,X2,...,Xp∣C)=P(X1∣C)P(X2∣C)...P(XP∣C)
2️⃣ 朴素贝叶斯显著降低了计算开销
3️⃣ 朴素贝叶斯不仅可以处理离散属性,也可以处理连续属性
4️⃣ 对于一般的高斯贝叶斯分类器( QDA )以及朴素高斯贝 叶斯分类器,分类决策面是二次的。
5️⃣ 当 Σ k = Σ , ∀ k \Sigma_k=\Sigma,\forall k Σk=Σ,∀k, QDA退化成具有线性决策面的LDA
机器学习中的分类算法大致分为以下三种
1️⃣ 判别式:直接估计一个决策边界
例如:逻辑回归,支持向量机
2️⃣ 生成式:建立一个生成式统计模型
例如:朴素贝叶斯分类器
3️⃣ 基于实例的分类器:没有模型
训练偷懒,测试废时
分类原理
对一个未知样本进行分类:
1️⃣ 计算未知样本与标记样本的距离(最废时)
2️⃣ 确定k个近邻(超参,不鲁棒)
3️⃣ 使用近邻样本的标签确定目标的标签:例如,将其划分到k个样本中出现最频繁的类
KNN算法本身简单有效,它是一种lazy- learning算法
分类器不需要使用训练集进行训练, 训练时间复杂度为0
KNN分类的计算复杂度和训练集中的训练样本的数目成正比,也就是说,如果训练集中样本总数为n,那么KNN的分类时间复 杂度为0(n)
假如有N个样本,而且每个样本的特征为D维的向量。那对于一个目标样本的预测,需要的时间复杂度是多少?
首先对于任何一个目标样本,为了做预测需要循环所有的训练样本,这个复杂度为O(N)。另外,当我们计算两个样本之间距离的时候,这个复杂度就依赖于样本的特征维度,复杂度为O(D)。把循环样本的过程看做是外层循环,计算样本之间距离看作是内层循环,所以总的复杂度为它俩的乘积,也就是O(N*D)。
当目标输出是连续值时,预测是k个最接近的训练样本的均值
[1]庞善民.西安交通大学机器学习导论2022春PPT
[2]周志华.机器学习.北京:清华大学出版社,2016
[3]贝叶斯三之决策函数和决策面
[4]KNN复杂度分析及KD树