机械学习基础-5.分类-数据建模与机械智能课程自留

data modeling and machine intelligence - CLASSIFICATION

  • 为什么我们不将回归技术用于分类?
  • 贝叶斯分类器(The Bayes Classifier)
  • 逻辑回归(Logistic Regression)
    • 对逻辑回归的更多直观理解
    • 逻辑 /sigmoid 函数的导数
    • 我们如何确定参数
    • 更通俗易懂的理解(可以跳过)
  • 逻辑回归中的似然函数
    • 最大化似然函数
    • 如何寻找对数似然函数的驻点
  • 超越方程
  • 分类问题中是否存在更简单的分类方法?
      • 逻辑函数的局限性
      • 更简单的方法:k邻近
    • k - 近邻分类器(K - Nearest Neighborhood Classifier)的原理和公式推导
      • 数据集设定
      • 近邻点索引集合
      • 条件概率近似公式
      • 分类器模型
      • 总结
    • K邻近例子

本节目标:

  • 了解什么是二元分类
  • 了解如何使用逻辑函数进行分类
  • 要能够将 k 近邻算法应用于分类问题

回顾
监督学习(Supervised Learning)的流程:
在这里插入图片描述
监督学习的两个子类别:回归(Regression)和分类(Classification)。

回归问题中,标记数据 y i y_i yi 取连续值, y i ∈ R y_i \in \mathbb{R} yiR R \mathbb{R} R 表示实数集);而分类问题中,标记数据 y i y_i yi 取离散值, y i ∈ { 1 , 2 , … , l } y_i \in \{1,2,\ldots,l\} yi{1,2,,l} ,即标签属于一个有限的离散集合。

分类问题的示例:
在这里插入图片描述
当只有两种类型的标签时(最后一列是否有心脏病),我们将其称为二元分类问题。

标签可以是 {-1, 1} 、{0, 1} 、{1, 2} 、{A, B} 等等。唯一重要的是标签仅取两个离散值,给这些标签取什么名字并不重要。

为什么我们不将回归技术用于分类?

例子如下
在这里插入图片描述
假设我们给定一个数据集,目标是训练一个模型来预测旅行者的交通方式。
数据集包含四列:行程时间(Journey time)、费用(Cost)、换乘次数(Changes)和使用的交通工具(Transport used),并给出了四组数据示例。

为解决问题,给每种交通工具分配一个数字标签:飞机(Aeroplane)为 y = − 1 y = -1 y=1 ,火车(Train)为 y = 0 y = 0 y=0 ,公共汽车(Bus)为 y = + 1 y = +1 y=+1 。可以使用类似回归的技术找到一个最适合数据的模型 y = f ( x ) y = f(x) y=f(x)

到此为止,问题就出现了,如果真按照上面那样找这个模型,那么问题如下:

  • 问题 1:给标签任意赋值可能会在数据集上强加一些实际上不存在的顺序或结构。例如,当前标签暗示飞机和公共汽车之间的 “距离” 是 ∣ − 1 + 1 ∣ = 2 |-1 + 1| = 2 1+1∣=2 ,是火车和公共汽车之间距离的两倍,但原始数据并未提及飞机、公共汽车和火车之间的相似性。
  • 问题 2:训练的模型 y = f ( x ) y = f(x) y=f(x) 不太可能只输出离散值(例如,多项式映射到 ( − ∞ , ∞ ) (-\infty, \infty) (,) ,而不是 { − 1 , 0 , 1 } \{-1, 0, 1\} {1,0,1} )。如何将预测值 f ( x 0 ) = 0.5 f(x_0) = 0.5 f(x0)=0.5 判定为火车还是公共汽车是一个任意决定,对于 f ( x 0 ) = 100 f(x_0) = 100 f(x0)=100 该给出什么预测也不明确。
  • 问题 3:真实模型 y = f t r u e ( x ) y = f_{true}(x) y=ftrue(x) 不是连续的(除非它是常数),因为它取离散值。因此,从理论上讲,不能证明这个函数可以被通用逼近器(斯通 - 魏尔斯特拉斯定理)逼近。

贝叶斯分类器(The Bayes Classifier)

贝叶斯推断(Bayesian inference),它是一种数据建模方法,基于数据估计事件发生的概率。与构建模型不同,贝叶斯推断构建的是概率分布。

与回归方法的对比
在处理标签为连续值的回归问题时,我们试图找到一个函数或模型 f ( x i ) ≈ y i f(x_i) \approx y_i f(xi)yi 。但在贝叶斯推断里,我们试图找到一个函数,该函数近似表示 f l ( x ) ≈ P ( y = l ∣ x ) f_l(x) \approx \mathbb{P}(y = l|x) fl(x)P(y=lx) 。这里, f l ( x ) f_l(x) fl(x) 是一个取值范围在 [ 0 , 1 ] [0, 1] [0,1] 之间的函数,用于估计数据样本 x x x 被标记为 y = l y = l y=l 的概率。

当然,在实际应用贝叶斯分类器的过程中, f l ( x ) ∈ [ 0 , 1 ] f_l(x) \in [0, 1] fl(x)[0,1] 这个条件很难被严格满足。(因为现实有噪声、误差,并且特征之前可能不是完全独立等。)

逻辑回归(Logistic Regression)

假设给定数据 D = { ( x i , y i ) } i = 1 N D = \{(x_i, y_i)\}_{i = 1}^N D={(xi,yi)}i=1N ,其中 y i ∈ { − 1 , 1 } y_i \in \{-1, 1\} yi{1,1} ,属于二分类(binary classification)问题。
目标函数
我们试图找到一个函数,近似表示 f ( x ) ≈ P ( y = 1 ∣ x ) f(x) \approx \mathbb{P}(y = 1|x) f(x)P(y=1∣x) f ( x ) f(x) f(x) 的取值范围在 [ 0 , 1 ] [0, 1] [0,1] ,用于估计数据样本 x x x 被标记为 y = 1 y = 1 y=1 的概率。由于只有两个标签,所以只需要找到一个 “ f f f” 函数。
多项式不是 f ( x ) f(x) f(x) 的理想选择,因为其输出值会超出 [ 0 , 1 ] [0, 1] [0,1] 范围。一个常用的函数是逻辑函数(Logistic function)。
逻辑函数的表达式为 f ( x ) = e a 0 + a 1 ⊤ x 1 + e a 0 + a 1 ⊤ x f(x)=\frac{e^{a_0 + a_1^{\top}x}}{1 + e^{a_0 + a_1^{\top}x}} f(x)=1+ea0+a1xea0+a1x 。在神经网络文献中,它也被称为 sigmoid 函数。
下图展示了 sigmoid 函数 y = e x 1 + e x y = \frac{e^x}{1 + e^x} y=1+exex 的图像,该函数的形状为一条 S 形曲线。此外,图中还提到当前标签取值 ({-1, 1}) 是任意选择的,后续为了数学计算方便,会选择 ({0, 1}) 。
在这里插入图片描述

对逻辑回归的更多直观理解

寻找逻辑回归函数的动机:
我们需要找到一个函数 f ( x ) ≈ P ( y = 1 ∣ x ) f(x) \approx \mathbb{P}(y = 1|x) f(x)P(y=1∣x) 来近似表示在给定 x x x 的条件下 y = 1 y = 1 y=1 的概率。
由于概率值在 [ 0 , 1 ] [0, 1] [0,1] 之间,很多函数类难以对其进行近似,所以需要一种将 [ 0 , 1 ] [0, 1] [0,1] 映射到 ( − ∞ , ∞ ) (-\infty, \infty) (,) 的变换。

几率(Odds)的概念
给定一个结果发生的概率为 P ∈ [ 0 , 1 ] P \in [0, 1] P[0,1],其几率 O O O 定义为 O = P 1 − P ∈ [ 0 , ∞ ) O = \frac{P}{1 - P} \in [0, \infty) O=1PP[0,),它是结果发生的事件数与不发生的事件数之比。
若几率 O ∈ [ 0 , ∞ ) O \in [0, \infty) O[0,),那么对数几率 log ⁡ O ∈ ( − ∞ , ∞ ) \log O \in (-\infty, \infty) logO(,),这是一个有用的变换。

逻辑函数的推导过程:
尝试用最简单的线性函数来拟合对数几率,即 log ⁡ ( p ( x ; θ ) 1 − p ( x ; θ ) ) = θ 0 + θ 1 T x \log \left(\frac{p(x; \theta)}{1 - p(x; \theta)}\right) = \theta_0 + \theta_1^T x log(1p(x;θ)p(x;θ))=θ0+θ1Tx
通过对上述等式进行整理,就可以得到逻辑函数 p ( x ; θ ) = e θ 0 + θ 1 T x 1 + e θ 0 + θ 1 T x p(x; \theta) = \frac{e^{\theta_0 + \theta_1^T x}}{1 + e^{\theta_0 + \theta_1^T x}} p(x;θ)=1+eθ0+θ1Txeθ0+θ1Tx

逻辑 /sigmoid 函数的导数

在继续学习之前,需要计算逻辑 /sigmoid 函数的导数,并且该导数在训练逻辑函数和神经网络时都很有用。

函数表达式
展示了 sigmoid 函数的两种等价形式: σ ( x ) = e x 1 + e x = 1 1 + e − x \sigma(x)=\frac{e^x}{1 + e^x}=\frac{1}{1 + e^{-x}} σ(x)=1+exex=1+ex1 ,以及逻辑函数 f ( x ) = 1 1 + e − θ 0 − θ 1 ⊤ x = σ ( θ 0 + θ 1 ⊤ x ) f(x)=\frac{1}{1 + e^{-\theta_0 - \theta_1^{\top}x}}=\sigma(\theta_0 + \theta_1^{\top}x) f(x)=1+eθ0θ1x1=σ(θ0+θ1x)

求导过程
σ ( x ) \sigma(x) σ(x) 求导,根据求导公式和法则,先得到 σ ′ ( x ) = − ( 1 + e − x ) − 2 ( e − x ) ( − 1 ) \sigma'(x)=-(1 + e^{-x})^{-2}(e^{-x})(-1) σ(x)=(1+ex)2(ex)(1) ,然后逐步化简为 σ ′ ( x ) = ( e − x 1 + e − x ) ( 1 1 + e − x ) = σ ( x ) ( 1 − e − x 1 + e − x ) = σ ( x ) ( 1 − σ ( x ) ) \sigma'(x)=\left(\frac{e^{-x}}{1 + e^{-x}}\right)\left(\frac{1}{1 + e^{-x}}\right)=\sigma(x)\left(1 - \frac{e^{-x}}{1 + e^{-x}}\right)=\sigma(x)(1 - \sigma(x)) σ(x)=(1+exex)(1+ex1)=σ(x)(11+exex)=σ(x)(1σ(x))
进一步求 ∂ f ( x ) ∂ θ k \frac{\partial f(x)}{\partial \theta_k} θkf(x) ,结果为 σ ′ ( θ 0 + θ 1 ⊤ x ) x k = f ( x ) ( 1 − f ( x ) ) x k \sigma'(\theta_0 + \theta_1^{\top}x)x_k = f(x)(1 - f(x))x_k σ(θ0+θ1x)xk=f(x)(1f(x))xk

我们如何确定参数

数据设定
假设给定数据集 D = { ( x i , y i ) } i = 1 N D = \{(x_i, y_i)\}_{i = 1}^N D={(xi,yi)}i=1N,其中 y i ∈ { 0 , 1 } y_i \in \{0, 1\} yi{0,1},这是一个二分类问题

条件概率假设
假设对于某些参数 a 0 ∗ , a 1 ∗ ∈ R a_0^*, a_1^* \in \mathbb{R} a0,a1R,有 p ( x ; a 0 ∗ , a 1 ∗ ) = P ( y = 1 ∣ x ) p(x; a_0^*, a_1^*) = \mathbb{P}(y = 1|x) p(x;a0,a1)=P(y=1∣x),其中 p ( x ; a 0 , a 1 ) = e a 0 + a 1 ⊤ x 1 + e a 0 + a 1 ⊤ x p(x; a_0, a_1) = \frac{e^{a_0 + a_1^{\top}x}}{1 + e^{a_0 + a_1^{\top}x}} p(x;a0,a1)=1+ea0+a1xea0+a1x,这是一个逻辑函数形式的概率表达式。

我们的数据集 D 没有告诉我们标签出现的概率,所以在拟合贝叶斯概率模型时,不能最小化平方误差和。

参数求解思路
为了根据给定数据找到合适的 a 0 ∗ , a 1 ∗ ∈ R a_0^*, a_1^* \in \mathbb{R} a0,a1R,我们需要最大化似然函数 l ( a 0 , a 1 ) l(a_0, a_1) l(a0,a1)
l ( a 0 , a 1 ) l(a_0, a_1) l(a0,a1) 定义为在给定特征数据 x i x_i xi 的情况下观察到标签 y i y_i yi 的概率,即 max ⁡ a 0 , a 1 l ( a 0 , a 1 ) : = P ( Observing labels  y i  given feature data  x i  for  i ∈ { 1 , … , N } ) \max_{a_0, a_1} l(a_0, a_1) := \mathbb{P}(\text{Observing labels } y_i \text{ given feature data } x_i \text{ for } i \in \{1, \ldots, N\}) a0,a1maxl(a0,a1):=P(Observing labels yi given feature data xi for i{1,,N})
通过一系列推导
1.首先等价于 P ( y = y i  for  i ∈ { 1 , … , N } ∣ x 1 , … x n ) \mathbb{P}(y = y_i \text{ for } i \in \{1, \ldots, N\} | x_1, \ldots x_n) P(y=yi for i{1,,N}x1,xn)
2.基于 N 个观测值之间相互独立的假设,进一步推导为 ∏ i : y i = + 1 p ( x i ; a 0 , a 1 ) ∏ j : y j = 0 ( 1 − p ( x j ; a 0 , a 1 ) ) \prod_{i:y_i = +1} p(x_i; a_0, a_1) \prod_{j:y_j = 0} (1 - p(x_j; a_0, a_1)) i:yi=+1p(xi;a0,a1)j:yj=0(1p(xj;a0,a1))
3. 最后,由于对 y y y 标签的巧妙选择,化简为 ∏ i = 1 N p ( x i ; a 0 , a 1 ) y i ( 1 − p ( x i ; a 0 , a 1 ) ) 1 − y i \prod_{i = 1}^{N} p(x_i; a_0, a_1)^{y_i} (1 - p(x_i; a_0, a_1))^{1 - y_i} i=1Np(xi;a0,a1)yi(1p(xi;a0,a1))1yi
4. 这个式子就是在二分类问题中用于求解参数 a0 和 a1 的最终形式(通过最大化这个式子)。

更通俗易懂的理解(可以跳过)

在二分类问题里,我们要找的就是能够最准确描述数据特征与分类标签之间关系的参数 a0 和 a1。如何确定a0a1就靠上面这个式子。
在这里插入图片描述

逻辑回归中的似然函数

似然函数 l ( a 0 , a 1 ) l(a_0, a_1) l(a0,a1) 的表达式:
l ( a 0 , a 1 ) : = ∏ i = 1 N p ( x i ; a 0 , a 1 ) y i ( 1 − p ( x i ; a 0 , a 1 ) ) 1 − y i l(a_0, a_1) := \prod_{i = 1}^{N} p(x_i; a_0, a_1)^{y_i} (1 - p(x_i; a_0, a_1))^{1 - y_i} l(a0,a1):=i=1Np(xi;a0,a1)yi(1p(xi;a0,a1))1yi
其中 p ( x ; a 0 , a 1 ) = e a 0 + a 1 ⊤ x 1 + e a 0 + a 1 ⊤ x p(x; a_0, a_1) = \frac{e^{a_0 + a_1^{\top}x}}{1 + e^{a_0 + a_1^{\top}x}} p(x;a0,a1)=1+ea0+a1xea0+a1x

似然函数的性质
如果我们很好地选择参数 a 0 a_0 a0 a 1 a_1 a1,使得 p ( x ; a 0 , a 1 ) ≈ P ( y = 1 ∣ x ) p(x; a_0, a_1) \approx \mathbb{P}(y = 1|x) p(x;a0,a1)P(y=1∣x),那么:
y i = + 1 y_i = +1 yi=+1 时, p ( x i ; a 0 , a 1 ) ≈ 1 p(x_i; a_0, a_1) \approx 1 p(xi;a0,a1)1
y j = 0 y_j = 0 yj=0 时, p ( x j ; a 0 , a 1 ) ≈ 0 p(x_j; a_0, a_1) \approx 0 p(xj;a0,a1)0

因此,最优参数会使 l ( a 0 , a 1 ) ≈ 1 l(a_0, a_1) \approx 1 l(a0,a1)1 ,次优参数会使 l ( a 0 , a 1 ) ≈ 0 l(a_0, a_1) \approx 0 l(a0,a1)0 。(代入进上面那个式子试一下就知道了。别忘了有yi和1-yi次方)

决策变量 a 0 a_0 a0 a 1 a_1 a1 与似然函数 l ( a 0 , a 1 ) l(a_0, a_1) l(a0,a1) 的输出之间存在复杂的关系。
这使得求解优化问题 max ⁡ a 0 , a 1 { l ( a 0 , a 1 ) } \max_{a_0, a_1} \{l(a_0, a_1)\} maxa0,a1{l(a0,a1)} 变得困难。

最大化似然函数

原始优化问题
求解以下优化问题较为困难: max ⁡ a 0 , a 1 l ( a 0 , a 1 ) : = ∏ i = 1 N p ( x i ; a 0 , a 1 ) y i ( 1 − p ( x i ; a 0 , a 1 ) ) 1 − y i \max_{a_0, a_1} l(a_0, a_1) := \prod_{i = 1}^{N} p(x_i; a_0, a_1)^{y_i} (1 - p(x_i; a_0, a_1))^{1 - y_i} maxa0,a1l(a0,a1):=i=1Np(xi;a0,a1)yi(1p(xi;a0,a1))1yi ,这是一个关于参数 a 0 a_0 a0 a 1 a_1 a1 的似然函数最大化问题。

为了简化问题,采用求解等价优化问题的思路,将原问题转换为对似然函数取对数后的最大化问题,即从 max ⁡ a 0 , a 1 l ( a 0 , a 1 ) \max_{a_0, a_1} l(a_0, a_1) maxa0,a1l(a0,a1) 转换为 max ⁡ a 0 , a 1 { log ⁡ l ( a 0 , a 1 ) } \max_{a_0, a_1} \{\log l(a_0, a_1)\} maxa0,a1{logl(a0,a1)}

对数似然函数展开
利用对数的性质 log ⁡ ( a b ) = log ⁡ ( a ) + log ⁡ ( b ) \log(ab) = \log(a) + \log(b) log(ab)=log(a)+log(b) log ⁡ ( a b ) = b log ⁡ ( a ) \log(a^b) = b\log(a) log(ab)=blog(a) ,对 log ⁡ l ( a 0 , a 1 ) \log l(a_0, a_1) logl(a0,a1) 进行展开:
max ⁡ a 0 , a 1 { log ⁡ l ( a 0 , a 1 ) } = max ⁡ a 0 , a 1 { ∑ i = 1 N y i log ⁡ ( p ( x i ; a 0 , a 1 ) ) + ( 1 − y i ) log ⁡ ( 1 − p ( x i ; a 0 , a 1 ) ) } \max_{a_0, a_1} \{\log l(a_0, a_1)\} = \max_{a_0, a_1} \left\{\sum_{i = 1}^{N} y_i \log(p(x_i; a_0, a_1)) + (1 - y_i) \log(1 - p(x_i; a_0, a_1))\right\} a0,a1max{logl(a0,a1)}=a0,a1max{i=1Nyilog(p(xi;a0,a1))+(1yi)log(1p(xi;a0,a1))}

如何寻找对数似然函数的驻点

回顾解决普通最小二乘法(OLS)问题时,是通过求导并令导数为零来求解的,这里也采用同样的方法。

将参数符号简化,令 θ = [ a 0 a 1 ] \theta=\begin{bmatrix}a_0\\a_1\end{bmatrix} θ=[a0a1],同时 p ( x ; θ ) = e θ 0 + θ 1 ⊤ x 1 + e θ 0 + θ 1 ⊤ x = 1 1 + e − θ 0 − θ 1 ⊤ x p(x;\theta)=\frac{e^{\theta_0+\theta_1^{\top}x}}{1 + e^{\theta_0+\theta_1^{\top}x}}=\frac{1}{1 + e^{-\theta_0-\theta_1^{\top}x}} p(x;θ)=1+eθ0+θ1xeθ0+θ1x=1+eθ0θ1x1

对数似然函数整理
在对对数似然函数求导之前先进行整理,对数似然函数 L ( θ ) : = log ⁡ l ( θ ) L(\theta):=\log l(\theta) L(θ):=logl(θ) ,经过一系列变换:
L ( θ ) = ∑ i = 1 N y i log ⁡ ( p ( x i ; θ ) ) + ( 1 − y i ) log ⁡ ( 1 − p ( x i ; θ ) ) = ∑ i = 1 N y i log ⁡ ( p ( x i ; θ ) 1 − p ( x i ; θ ) ) + log ⁡ ( 1 − p ( x i ; θ ) ) = ∑ i = 1 N y i ( θ 0 + θ 1 ⊤ x i ) − log ⁡ ( 1 + e θ 0 + θ 1 ⊤ x i ) \begin{align*} L(\theta)&=\sum_{i = 1}^{N}y_i\log(p(x_i;\theta))+(1 - y_i)\log(1 - p(x_i;\theta))\\ &=\sum_{i = 1}^{N}y_i\log\left(\frac{p(x_i;\theta)}{1 - p(x_i;\theta)}\right)+\log(1 - p(x_i;\theta))\\ &=\sum_{i = 1}^{N}y_i(\theta_0+\theta_1^{\top}x_i)-\log(1 + e^{\theta_0+\theta_1^{\top}x_i}) \end{align*} L(θ)=i=1Nyilog(p(xi;θ))+(1yi)log(1p(xi;θ))=i=1Nyilog(1p(xi;θ)p(xi;θ))+log(1p(xi;θ))=i=1Nyi(θ0+θ1xi)log(1+eθ0+θ1xi)
求导与目标
L ( θ ) L(\theta) L(θ) 关于 θ k \theta_k θk 求导:
∂ ∂ θ k L ( θ ) = ∑ i = 1 N y i x i , k − e θ 0 + θ 1 ⊤ x i 1 + e θ 0 + θ 1 ⊤ x i x i , k = ∑ i = 1 N ( y i − p ( x i ; θ ) ) x i , k \frac{\partial}{\partial\theta_k}L(\theta)=\sum_{i = 1}^{N}y_ix_{i,k}-\frac{e^{\theta_0+\theta_1^{\top}x_i}}{1 + e^{\theta_0+\theta_1^{\top}x_i}}x_{i,k}=\sum_{i = 1}^{N}(y_i - p(x_i;\theta))x_{i,k} θkL(θ)=i=1Nyixi,k1+eθ0+θ1xieθ0+θ1xixi,k=i=1N(yip(xi;θ))xi,k

为了方便,引入符号 x i , 0 = 1 x_{i,0}=1 xi,0=1

需要找到 θ \theta θ 使得 ∑ i = 1 N ( y i − p ( x i ; θ ) ) x i , k = 0 \sum_{i = 1}^{N}(y_i - p(x_i;\theta))x_{i,k}=0 i=1N(yip(xi;θ))xi,k=0

其中 p ( x ; θ ) = e θ 0 + θ 1 ⊤ x 1 + e θ 0 + θ 1 ⊤ x p(x; \theta) = \frac{e^{\theta_0 + \theta_1^{\top}x}}{1 + e^{\theta_0 + \theta_1^{\top}x}} p(x;θ)=1+eθ0+θ1xeθ0+θ1x ,这一问题涉及到求解超越方程。

不幸的是,求解逻辑回归问题涉及到求解超越方程。一般来说,超越方程没有解析解,只有近似的求根方法,如牛顿法(Newton’s method) 。

超越方程

定义
超越方程是一类需要找到一个数(实数、复数或多维等)来满足包含非多项式项恒等式的问题。一般来说,超越方程包含了指数函数、三角函数、对数函数等非多项式项。

进一步的理解
从数学原理上看,解析解是指可以用有限次的常见运算(加、减、乘、除、乘方、开方等)和基本函数(幂函数、指数函数、对数函数、三角函数、反三角函数等)来表示的解。

超越方程由于其函数的复杂性和非线性,很难甚至无法通过有限次的代数运算和基本函数组合来精确表示其解。例如 e x + x 2 − 1 = 0 e^{x}+x^{2}-1 = 0 ex+x21=0 e x e^{x} ex 的存在使得方程不能像一元二次方程 a x 2 + b x + c = 0 ax^{2}+bx + c=0 ax2+bx+c=0(可以用求根公式 x = − b ± b 2 − 4 a c 2 a x=\frac{-b\pm\sqrt{b^{2}-4ac}}{2a} x=2ab±b24ac 这样的解析形式求解 )那样,用有限次常见运算和基本函数组合给出精确的解。

所以,对于超越方程,通常只能采用近似的求根方法,如牛顿法,它是通过迭代的方式不断逼近方程的根。
超越方程由于其函数的复杂性和非线性,很难甚至无法通过有限次的代数运算和基本函数组合来精确表示其解。

牛顿法(Newton’s Method)求根。

在这里插入图片描述
求解 f ( x ) = 0 f(x)=0 f(x)=0时牛顿法:

  1. 首先找到一个点xi,这个点可以随机,当然选择离x轴交点近的地方更好。
  2. 下一步找到斜率为 f ′ ( x i ) f'(x_{i}) f(xi) 的直线:直线的一般方程为 y = m x + c y = mx + c y=mx+c,其中斜率 m = f ′ ( x i ) m = f'(x_{i}) m=f(xi),且直线过点 ( x i , f ( x i ) ) (x_{i}, f(x_{i})) (xi,f(xi)),由此可得截距 c = f ( x i ) − f ′ ( x i ) x i c = f(x_{i}) - f'(x_{i})x_{i} c=f(xi)f(xi)xi
  3. 找到直线与 x x x 轴的交点:令 y = 0 y = 0 y=0,即 0 = m x i + 1 + c 0 = mx_{i + 1} + c 0=mxi+1+c,从而推导出 x i + 1 = x i − f ( x i ) f ′ ( x i ) x_{i + 1} = x_{i}-\frac{f(x_{i})}{f'(x_{i})} xi+1=xif(xi)f(xi)
  4. x i + 1 x_{i+1} xi+1视作新的xi,重复上面的步骤,直到 f ( x i ) f(x_i) f(xi)趋近于0.

但是结合上述问题,求解最大化似然函数市不是要 f ( x ) = 0 f(x)=0 f(x)=0,而是要需求驻点,即求解 f ′ ( x ) = 0 f'(x) = 0 f(x)=0.

求解 f ′ ( x ) = 0 f'(x) = 0 f(x)=0 可能比较困难,所以与上面类似,应用牛顿法,其迭代公式为 x i + 1 = x i − f ′ ( x i ) f ′ ′ ( x i ) x_{i + 1}=x_{i}-\frac{f'(x_{i})}{f''(x_{i})} xi+1=xif′′(xi)f(xi),其中 f ′ ( x i ) f'(x_{i}) f(xi) 是函数 f ( x ) f(x) f(x) x i x_{i} xi 处的一阶导数, f ′ ′ ( x i ) f''(x_{i}) f′′(xi) 是函数 f ( x ) f(x) f(x) x i x_{i} xi 处的二阶导数。

高维空间中的牛顿 - 拉夫森方法

刚刚的牛顿法求根是比较容易理解的,不过我们还需要扩展一下,从实数空间扩展到n维实数空间。

为求解无约束优化问题 min ⁡ x ∈ R n f ( x ) \min_{x \in \mathbb{R}^n} f(x) minxRnf(x)(即在 n 维实数空间中求函数 f ( x ) f(x) f(x) 的最小值),应用的迭代公式为 x i + 1 = x i − ( H f ( x i ) ) − 1 ∇ f ( x i ) x_{i + 1}=x_{i}-(Hf(x_{i}))^{-1}\nabla f(x_{i}) xi+1=xi(Hf(xi))1f(xi)。这里 x ∈ R n x \in \mathbb{R}^n xRn,当 (n = 1) 时,就退化为上面的一维的结果。

我们期望 x ∗ = lim ⁡ i → ∞ x i x^*=\lim_{i \to \infty}x_{i} x=limixi 满足 f ( x ∗ ) = min ⁡ x ∈ R n f ( x ) f(x^*)=\min_{x \in \mathbb{R}^n} f(x) f(x)=minxRnf(x),即迭代的极限点 x ∗ x^* x 是函数 f ( x ) f(x) f(x) n n n 维空间中的最小值点。

补充两个概念:

  1. ∇ f ( x ) \nabla f(x) f(x) 表示梯度向量,其形式为 [ ∂ ∂ x 1 f ( x ) ⋮ ∂ ∂ x n f ( x ) ] \left[\begin{array}{c}\frac{\partial}{\partial x_1}f(x)\\\vdots\\\frac{\partial}{\partial x_n}f(x)\end{array}\right] x1f(x)xnf(x) ,它是由函数 f ( x ) f(x) f(x) 对各个变量 x 1 , x 2 , ⋯   , x n x_1,x_2,\cdots,x_n x1,x2,,xn 的一阶偏导数组成的向量。(简单理解:可以当作一次导数)
  2. H f ( x ) Hf(x) Hf(x) 表示海森矩阵,形式为 [ ∂ 2 ∂ x 1 2 f ( x ) ⋯ ∂ 2 ∂ x 1 ∂ x n f ( x ) ⋮ ⋱ ⋮ ∂ 2 ∂ x n ∂ x 1 f ( x ) ⋯ ∂ 2 ∂ x n 2 f ( x ) ] \left[\begin{array}{ccc}\frac{\partial^2}{\partial x_1^2}f(x)&\cdots&\frac{\partial^2}{\partial x_1\partial x_n}f(x)\\\vdots&\ddots&\vdots\\\frac{\partial^2}{\partial x_n\partial x_1}f(x)&\cdots&\frac{\partial^2}{\partial x_n^2}f(x)\end{array}\right] x122f(x)xnx12f(x)x1xn2f(x)xn22f(x) ,它是由函数 (f(x)) 对各个变量的二阶偏导数组成的 n × n n\times n n×n 矩阵。 (简单理解:二次导数)

应用牛顿 - 拉夫森方法求解逻辑回归

核心迭代公式为 θ i + 1 = θ i − ( H L ( θ i ) ) − 1 ∇ L ( θ i ) \theta_{i + 1}=\theta_{i}-(HL(\theta_{i}))^{-1}\nabla L(\theta_{i}) θi+1=θi(HL(θi))1L(θi)。这里应用牛顿 - 拉夫森方法时,用 − L ( θ ) -L(\theta) L(θ)(负对数似然函数)替代了常规函数 f ( x ) f(x) f(x),原因是我们要最大化对数似然函数 L ( θ ) L(\theta) L(θ)

对数似然函数 L ( θ ) L(\theta) L(θ)

回忆对数似然函数的表达式为 L ( θ ) : = ∑ i = 1 N y i ( θ 0 + θ 1 ⊤ x ) − log ⁡ ( 1 + e θ 0 + θ 1 ⊤ x ) L(\theta):=\sum_{i = 1}^{N}y_{i}(\theta_{0}+\theta_{1}^{\top}x)-\log(1 + e^{\theta_{0}+\theta_{1}^{\top}x}) L(θ):=i=1Nyi(θ0+θ1x)log(1+eθ0+θ1x),其中 y i y_{i} yi 是样本标签, θ 0 \theta_{0} θ0 是截距项, θ 1 \theta_{1} θ1 是参数向量, x x x 是特征向量。

梯度向量 ∇ L ( θ i ) \nabla L(\theta_{i}) L(θi) 和海森矩阵 H L ( θ i ) HL(\theta_{i}) HL(θi)

接下来要找到 H L ( θ i ) HL(\theta_{i}) HL(θi) ∇ L ( θ i ) \nabla L(\theta_{i}) L(θi) 的表达式:

  • 梯度向量 ∇ L ( θ ) \nabla L(\theta) L(θ) 的第 k k k 个分量 [ ∇ L ( θ ) ] k = ∂ ∂ θ k L ( θ ) = ∑ i = 1 N ( y i − p ( x i ; θ ) ) x i , k [\nabla L(\theta)]_{k}=\frac{\partial}{\partial\theta_{k}}L(\theta)=\sum_{i = 1}^{N}(y_{i}-p(x_{i};\theta))x_{i,k} [L(θ)]k=θkL(θ)=i=1N(yip(xi;θ))xi,k,其中 p ( x ; θ ) = e θ 0 + θ 1 ⊤ x 1 + e θ 0 + θ 1 ⊤ x p(x;\theta)=\frac{e^{\theta_{0}+\theta_{1}^{\top}x}}{1 + e^{\theta_{0}+\theta_{1}^{\top}x}} p(x;θ)=1+eθ0+θ1xeθ0+θ1x 是逻辑回归的预测概率。
  • 海森矩阵 H L ( θ ) HL(\theta) HL(θ) 的第 l , k l,k l,k 个元素 [ H L ( θ ) ] l , k = ∂ 2 ∂ θ l ∂ θ k L ( θ ) = − ∑ i = 1 N x i , k x i , l ( 1 − p ( x i ; θ ) ) p ( x i ; θ ) [HL(\theta)]_{l,k}=\frac{\partial^{2}}{\partial\theta_{l}\partial\theta_{k}}L(\theta)=-\sum_{i = 1}^{N}x_{i,k}x_{i,l}(1 - p(x_{i};\theta))p(x_{i};\theta) [HL(θ)]l,k=θlθk2L(θ)=i=1Nxi,kxi,l(1p(xi;θ))p(xi;θ)
  • 补充说明:刚刚已经求得了关于 Sigmoid 函数的导数: ∂ p ( x ; θ ) ∂ θ k = σ ′ ( θ 0 + θ 1 ⊤ x ) x k = p ( x ; θ ) ( x ) ( 1 − p ( x ; θ ) ( x ) ) x k \frac{\partial p(x;\theta)}{\partial\theta_{k}}=\sigma'(\theta_{0}+\theta_{1}^{\top}x)x_{k}=p(x;\theta)(x)(1 - p(x;\theta)(x))x_{k} θkp(x;θ)=σ(θ0+θ1x)xk=p(x;θ)(x)(1p(x;θ)(x))xk,用于辅助理解上述两个式子的推导。

将牛顿 - 拉夫森方法用于逻辑回归的矩阵形式表达。

定义矩阵:

  • X : = [ 1 x 1 , 1 ⋯ x m , 1 ⋮ ⋮ 1 x 1 , N ⋯ x m , N ] ∈ R N × ( m + 1 ) X := \begin{bmatrix}1&x_{1,1}&\cdots&x_{m,1}\\&\vdots&\vdots\\1&x_{1,N}&\cdots&x_{m,N}\end{bmatrix} \in \mathbb{R}^{N\times(m + 1)} X:= 11x1,1x1,Nxm,1xm,N RN×(m+1),这是特征矩阵,每一行代表一个样本,每一列代表一个特征,第一列元素全为1,用于表示截距项。
  • Y : = [ y 1 ⋮ y N ] ∈ R N Y := \begin{bmatrix}y_1\\\vdots\\y_N\end{bmatrix} \in \mathbb{R}^{N} Y:= y1yN RN,是样本标签向量。
  • P ( θ ) : = [ p ( x 1 ; θ ) ⋮ p ( x N ; θ ) ] ∈ R N P(\theta) := \begin{bmatrix}p(x_1;\theta)\\\vdots\\p(x_N;\theta)\end{bmatrix} \in \mathbb{R}^{N} P(θ):= p(x1;θ)p(xN;θ) RN,是模型预测的概率向量,其中 p ( x i ; θ ) p(x_i;\theta) p(xi;θ) 是样本 x i x_i xi 属于正类的概率。
  • W ( θ ) : = d i a g ( ( 1 − p ( x 1 ; θ ) ) p ( x 1 ; θ ) , ⋯   , ( 1 − p ( x N ; θ ) ) p ( x N ; θ ) ) ∈ R N × N W(\theta) := diag((1 - p(x_1;\theta))p(x_1;\theta),\cdots,(1 - p(x_N;\theta))p(x_N;\theta)) \in \mathbb{R}^{N\times N} W(θ):=diag((1p(x1;θ))p(x1;θ),,(1p(xN;θ))p(xN;θ))RN×N,是对角矩阵,对角元素由 ( 1 − p ( x i ; θ ) ) p ( x i ; θ ) (1 - p(x_i;\theta))p(x_i;\theta) (1p(xi;θ))p(xi;θ) 构成。

推导梯度向量和海森矩阵的矩阵形式
已知 [ ∇ L ( θ ) ] k = ∑ i = 1 N ( y i − p ( x i ; θ ) ) x i , k [\nabla L(\theta)]_k = \sum_{i = 1}^{N}(y_i - p(x_i;\theta))x_{i,k} [L(θ)]k=i=1N(yip(xi;θ))xi,k [ H L ( θ ) ] l , k = − ∑ i = 1 N x i , k x i , l ( 1 − p ( x i ; θ ) ) p ( x i ; θ ) [HL(\theta)]_{l,k} = -\sum_{i = 1}^{N}x_{i,k}x_{i,l}(1 - p(x_i;\theta))p(x_i;\theta) [HL(θ)]l,k=i=1Nxi,kxi,l(1p(xi;θ))p(xi;θ),推导出:

  • 梯度向量 ∇ L ( θ ) = X ⊤ ( Y − P ( θ ) ) \nabla L(\theta) = X^{\top}(Y - P(\theta)) L(θ)=X(YP(θ))
  • 海森矩阵 H L ( θ ) = − X ⊤ W ( θ ) X HL(\theta) = -X^{\top}W(\theta)X HL(θ)=XW(θ)X

将上述结果代入牛顿 - 拉夫森方法的迭代公式 θ i + 1 = θ i − ( H L ( θ i ) ) − 1 ∇ L ( θ i ) \theta_{i + 1} = \theta_i - (HL(\theta_i))^{-1}\nabla L(\theta_i) θi+1=θi(HL(θi))1L(θi),得到 θ i + 1 = θ i + ( X ⊤ W ( θ i ) X ) − 1 X ⊤ ( Y − P ( θ i ) ) \theta_{i + 1} = \theta_i + (X^{\top}W(\theta_i)X)^{-1}X^{\top}(Y - P(\theta_i)) θi+1=θi+(XW(θi)X)1X(YP(θi))

现在我们只需要初始化 θ 0 \theta_0 θ0就好了:通常,我们随机初始化算法的参数 θ 0 ∈ R m \theta_0 \in \mathbb{R}^{m} θ0Rm,其中 m m m 是特征的数量(不包括截距项对应的维度)。

例子

数据集:

x x x-10
y y y01

即当 x = − 1 x = -1 x=1 时,对应的标签 y = 0 y = 0 y=0;当 x = 0 x = 0 x=0 时,对应的标签 y = 1 y = 1 y=1

逻辑回归模型的表达式: f ( x ) = 1 1 + e − θ 0 − θ 1 x f(x)=\frac{1}{1 + e^{-\theta_0 - \theta_1x}} f(x)=1+eθ0θ1x1,该模型用于预测样本属于正类的概率。
考虑参数初始化 θ initialisation = [ 1 , 1 ] ⊤ \theta_{\text{initialisation}} = [1, 1]^{\top} θinitialisation=[1,1],则初始模型为 f initialisation ( x ) = 1 1 + e − 1 − x f_{\text{initialisation}}(x)=\frac{1}{1 + e^{-1 - x}} finitialisation(x)=1+e1x1

  • x = − 1 x = -1 x=1 时, f initialisation ( − 1 ) = 1 1 + e 0 = 0.5 f_{\text{initialisation}}(-1)=\frac{1}{1 + e^{0}} = 0.5 finitialisation(1)=1+e01=0.5,即模型预测 x = − 1 x = -1 x=1 具有标签 y = 0 y = 0 y=0 的概率为 50 % 50\% 50%
  • x = 0 x = 0 x=0 时, f initialisation ( 0 ) = 1 1 + e − 1 ≈ 0.73 f_{\text{initialisation}}(0)=\frac{1}{1 + e^{-1}} \approx 0.73 finitialisation(0)=1+e110.73

模型预测 x = − 1 x = -1 x=1 50 / 50 50/50 50/50 的概率标签为 y = 0 y = 0 y=0,这表明该模型当前表现不佳(Bad model)。使用牛顿法更新模型参数,以获得更好的模型。

使用牛顿法对逻辑回归模型进行参数更新

牛顿法用于逻辑回归参数更新的公式: θ i + 1 = θ i + ( X ⊤ W ( θ i ) X ) − 1 X ⊤ ( Y − P ( θ i ) ) \theta_{i + 1} = \theta_i + (X^{\top}W(\theta_i)X)^{-1}X^{\top}(Y - P(\theta_i)) θi+1=θi+(XW(θi)X)1X(YP(θi))

矩阵计算过程

  1. 特征矩阵 X X X、标签向量 Y Y Y 和预测概率向量 P ( θ ) P(\theta) P(θ)
    • X = [ 1 − 1 1 0 ] X = \begin{bmatrix}1& -1\\1&0\end{bmatrix} X=[1110] Y = [ 0 1 ] Y = \begin{bmatrix}0\\1\end{bmatrix} Y=[01]
    • 当参数 θ = [ 1 1 ] \theta = \begin{bmatrix}1\\1\end{bmatrix} θ=[11] 时, P ( [ 1 1 ] ) = [ 1 1 + e 0 1 1 + e − 1 ] = [ 0.5 0.7311 ] P(\begin{bmatrix}1\\1\end{bmatrix}) = \begin{bmatrix}\frac{1}{1 + e^{0}}\\\frac{1}{1 + e^{-1}}\end{bmatrix} = \begin{bmatrix}0.5\\0.7311\end{bmatrix} P([11])=[1+e011+e11]=[0.50.7311]
  2. 权重矩阵 W ( θ ) W(\theta) W(θ)
    • W ( [ 1 1 ] ) = [ ( 1 − 0.5 ) × 0.5 0 0 ( 1 − 0.73 ) × 0.73 ] = [ 0.25 0 0 0.2 ] W(\begin{bmatrix}1\\1\end{bmatrix}) = \begin{bmatrix}(1 - 0.5) \times 0.5&0\\0&(1 - 0.73) \times 0.73\end{bmatrix} = \begin{bmatrix}0.25&0\\0&0.2\end{bmatrix} W([11])=[(10.5)×0.500(10.73)×0.73]=[0.25000.2]
  3. 计算 X ⊤ W X X^{\top}WX XWX: - X ⊤ W X = [ 1 1 − 1 0 ] [ 0.25 0 0 0.2 ] [ 1 − 1 1 0 ] = [ 0.45 − 0.25 − 0.25 0.25 ] X^{\top}WX = \begin{bmatrix}1&1\\ -1&0\end{bmatrix}\begin{bmatrix}0.25&0\\0&0.2\end{bmatrix}\begin{bmatrix}1& -1\\1&0\end{bmatrix} = \begin{bmatrix}0.45& -0.25\\ -0.25&0.25\end{bmatrix} XWX=[1110][0.25000.2][1110]=[0.450.250.250.25]
  4. 计算 ( X ⊤ W X ) − 1 (X^{\top}WX)^{-1} (XWX)1: - 通过公式计算 ( X ⊤ W X ) − 1 = 1 0.45 × 0.25 − 0.2 5 2 [ 0.25 0.25 0.25 0.45 ] = [ 5 5 5 9 ] (X^{\top}WX)^{-1} = \frac{1}{0.45 \times 0.25 - 0.25^{2}}\begin{bmatrix}0.25&0.25\\0.25&0.45\end{bmatrix} = \begin{bmatrix}5&5\\5&9\end{bmatrix} (XWX)1=0.45×0.250.2521[0.250.250.250.45]=[5559]
  5. 计算 X ⊤ ( Y − P ) X^{\top}(Y - P) X(YP): - X ⊤ ( Y − P ) = [ 1 1 − 1 0 ] ( [ 0 1 ] − [ 0.5 0.73 ] ) = [ 0.23 0.5 ] X^{\top}(Y - P) = \begin{bmatrix}1&1\\ -1&0\end{bmatrix}(\begin{bmatrix}0\\1\end{bmatrix} - \begin{bmatrix}0.5\\0.73\end{bmatrix}) = \begin{bmatrix}0.23\\0.5\end{bmatrix} X(YP)=[1110]([01][0.50.73])=[0.230.5]
  6. 更新参数 θ \theta θ: - 最终得到更新后的参数 θ update = [ 1 1 ] + [ 5 5 5 9 ] [ 0.23 0.5 ] = [ 2.25 4.35 ] \theta_{\text{update}} = \begin{bmatrix}1\\1\end{bmatrix} + \begin{bmatrix}5&5\\5&9\end{bmatrix}\begin{bmatrix}0.23\\0.5\end{bmatrix} = \begin{bmatrix}2.25\\4.35\end{bmatrix} θupdate=[11]+[5559][0.230.5]=[2.254.35]

根据之前计算得到更新后的参数 θ update = [ 2.25 4.35 ] \theta_{\text{update}} = \begin{bmatrix}2.25\\4.35\end{bmatrix} θupdate=[2.254.35],更新后的逻辑回归模型为 f update ( x ) = 1 1 + e − 2.25 − 4.35 x f_{\text{update}}(x)=\frac{1}{1 + e^{-2.25 - 4.35x}} fupdate(x)=1+e2.254.35x1

模型预测结果 :

  • x = − 1 x = -1 x=1 时, f update ( − 1 ) = 1 1 + e 2.1 = 0.1 f_{\text{update}}(-1)=\frac{1}{1 + e^{2.1}} = 0.1 fupdate(1)=1+e2.11=0.1,即模型预测 x = − 1 x = -1 x=1 具有标签 y = 1 y = 1 y=1 的概率较低。
  • x = 0 x = 0 x=0 时, f update ( 0 ) = 1 1 + e − 2.25 = 0.9 f_{\text{update}}(0)=\frac{1}{1 + e^{-2.25}} = 0.9 fupdate(0)=1+e2.251=0.9,即模型预测 x = 0 x = 0 x=0 具有标签 y = 1 y = 1 y=1 的概率较高。

更新后的模型能够正确地对样本进行预测,对于 x = − 1 x = -1 x=1 预测为 y = 1 y = 1 y=1 的概率较低,对于 x = 0 x = 0 x=0 预测为 y = 1 y = 1 y=1 的概率较高。更严格的模型性能分析还应包括准确率、特异性、ROC 表格、测试数据误差等指标。

分类问题中是否存在更简单的分类方法?

之前。我们尝试找到函数 f ( x ) f(x) f(x) 来近似条件概率 P ( y = 1 ∣ x ) \mathbb{P}(y = 1|x) P(y=1∣x),这要求 f ( x ) f(x) f(x) 的取值范围在 [0, 1] 之间。为解决此问题,我们任意选择了逻辑函数(logistic function)来作为 f ( x ) f(x) f(x)

逻辑函数的局限性

尽管逻辑函数具有一些良好的性质,但是有的时候它实在是太复杂 。因此,我们考虑一种更简单的方法,即假设 f ( x ) f(x) f(x) 没有特定的参数结构。

更简单的方法:k邻近

f ( x ) f(x) f(x) 等于在 x x x k k k 个最近邻训练数据点中 y y y 的最常见值,这实际上就是 k k k - 近邻(k - nearest neighbors,KNN)算法的基本思想。
在这种方法中,不对 f f f 做任何参数化结构的假设。此方法的逻辑函数的表达式 f ( x ) = e a 0 + a 1 ⊤ x 1 + e a 0 + a 1 ⊤ x f(x)=\frac{e^{a_0 + a_1^{\top}x}}{1 + e^{a_0 + a_1^{\top}x}} f(x)=1+ea0+a1xea0+a1x

k - 近邻分类器(K - Nearest Neighborhood Classifier)的原理和公式推导

数据集设定

假设给定一个数据集 D = { ( x i , y i ) } 1 ≤ i ≤ N \mathcal{D} = \{(x_i, y_i)\}_{1\leq i\leq N} D={(xi,yi)}1iN,其中 x i x_i xi 是特征向量, y i y_i yi 是对应的标签,N 是数据集中样本的数量。

近邻点索引集合

定义 N k ( x 0 ) N_k(x_0) Nk(x0) 为在数据集 { x i } i = 1 N \{x_i\}_{i = 1}^{N} {xi}i=1N 中与 x 0 x_0 x0 最接近的 k k k 个点的索引集合。

条件概率近似公式

对于给定的 x = x 0 x = x_0 x=x0,类别 y = l y = l y=l 的条件概率 P ( y = l ∣ x = x 0 ) \mathbb{P}(y = l|x = x_0) P(y=lx=x0) 可以近似为:
P ( y = l ∣ x = x 0 ) ≈ 1 k ∑ i ∈ N k ( x 0 ) 1 { y i } ( l ) \mathbb{P}(y = l|x = x_0) \approx \frac{1}{k} \sum_{i\in N_k(x_0)} \mathbb{1}_{\{y_i\}}(l) P(y=lx=x0)k1iNk(x0)1{yi}(l)
其中, 1 A ( x ) \mathbb{1}_A(x) 1A(x) 是指示函数,当 x ∈ A x \in A xA 时取值为 1 1 1,否则为 0 0 0。这个公式的含义是,在 x 0 x_0 x0 k k k 个近邻点中,标签为 l l l 的点的数量占近邻点总数 k k k 的比例,即近邻中标签为 l l l 的点的频率。

分类器模型

选择模型 f ( x 0 ) f(x_0) f(x0)为:
f ( x 0 ) = max ⁡ l { 1 k ∑ i ∈ N k ( x 0 ) 1 { y i } ( l ) } f(x_0) = \max_{l} \left\{ \frac{1}{k} \sum_{i\in N_k(x_0)} \mathbb{1}_{\{y_i\}}(l) \right\} f(x0)=lmax k1iNk(x0)1{yi}(l)
f ( x 0 ) f(x_0) f(x0) 取使得上述条件概率近似值最大的类别 (l)。

总结

图片底部绿色区域总结了 (k) - 近邻分类器的核心思想:(f(x)) 等于在 (x) 的 (k) 个最近邻训练数据点中 (y) 的最常见值,也就是将未知样本 (x) 分类为其 (k) 个近邻中出现频率最高的类别。

K邻近例子

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

音频进阶学习十三——Z变换二(有理z变换、稳定性与反变换)

文章目录 前言一、有理Z变换1.定义2.作用3.LTI系统的传递函数1)传递函数的定义2)差分方程转换传递函数 二、极点和零点1.有理分式的极点和零点2.稳定性实例 二、逆Z变换1.观察法2.部分分式展开法1)定义2)举例 3.幂级数法/长除法1&…

centos部署open-webui

提示:本文将简要介绍一下在linux下open-webui的安装过程,安装中未使用虚拟环境。 文章目录 一、open-webui是什么?二、安装流程1.openssl升级2.Python3.11安装3.sqlite安装升级4.pip 下载安装open-webui 总结 一、open-webui是什么? Open W…

DeepSeek R1 32B 本地部署实战

#DeepSeek# DeepSeek是一款基于人工智能的智能助手,专为提升工作效率和信息获取能力而设计。它结合了自然语言处理、机器学习和大数据技术,能够快速理解用户需求并提供精准的答案或解决方案。 DeepSeek的核心功能 智能问答 DeepSeek可以回答各种问题&…

day09_实时类标签/指标

文章目录 day09_实时类标签/指标一、日志数据实时采集2、Flume简介2.3 项目日志数据采集Flume配置2.3.1 涉及的Flume组件和参数2.3.2 Nginx日志采集2.3.3 用户行为日志采集 二、Nginx日志数据统计1、日志格式说明2、数据ETL2.1 日志抽取2.1.1 正则表达式2.1.2 基于Spark实现Ngi…

硬件学习笔记--41 电磁兼容试验-5 射频场感应的传导干扰试验介绍

目录 电磁兼容试验-射频场感应的传导干扰试验介绍 1.试验目的 2.试验方法 3.判定依据及意义 电磁兼容试验-射频场感应的传导干扰试验介绍 驻留时间是在规定频率下影响量施加的持续时间。被试设备(EUT)在经受扫频频带的电磁影响量或电磁干扰的情况下&a…

告别卡关!XSS挑战之旅全关卡通关思路详解

XSS挑战之旅 XSS测试思路Level1Level2Level3Level4Level5Level6Level7Level8Level9Level10Level11Level12Level13Level14Level15Level16Level17Level18Level19Level20免责声明: XSS测试思路 确定输入输出点: 寻找URL参数、表单输入、HTTP头(R…

连锁企业管理系统的五大核心功能

连锁管理系统对于连锁企业的运营和发展至关重要,以下以核货宝连锁管理系统为例,介绍其五大核心功能: 门店管理功能 门店信息管理:核货宝连锁管理系统可集中管理所有门店的详细信息,包括门店地址、联系方式、营业时间、…

【第12章:深度学习与伦理、隐私—12.4 深度学习与伦理、隐私领域的未来挑战与应对策略】

凌晨三点的自动驾驶测试场,AI系统突然在暴雨中做出惊人决策——它选择撞向隔离带而不是紧急变道,因为算法推演发现隔离带后的应急车道站着五个工程师。这个惊悚的伦理困境,揭开了深度学习伦理危机最尖锐的冰山一角。 一、潘多拉魔盒已开:深度学习伦理的四大原罪 1.1 数据原…

深度学习(1)-简单神经网络示例

我们来看一个神经网络的具体实例:使用Python的Keras库来学习手写数字分类。在这个例子中,我们要解决的问题是,将手写数字的灰度图像(28像素28像素)划分到10个类别中(从0到9)​。我们将使用MNIST…

腿足机器人之八- 腿足机器人动力学

腿足机器人之八- 腿足机器人动力学 刚体动力学接触动力学与地面交互稳定性判据ZMP(零力矩点)CoM(Center of Mass)捕获点 简化动力学模型双足机器人走路与小跑的动力学对比挑战与前沿技术 腿足机器人的运动学解决“如何到达目标位置”的问题,动力学解决“如何高效稳定…

Kubernetes控制平面组件:etcd高可用集群搭建

云原生学习路线导航页(持续更新中) kubernetes学习系列快捷链接 Kubernetes架构原则和对象设计(一)Kubernetes架构原则和对象设计(二)Kubernetes架构原则和对象设计(三)Kubernetes控…

HCIA项目实践--静态路由的拓展配置

7.7 静态路由的拓展配置 网络中的两个重要思想: (1) 实的不行来虚的; (2) 范围太大,划分范围。(分治) 7.7.1 负载均衡 (1)定义 负载均衡是一种网…

node.js + html调用ChatGPTApi实现Ai网站demo(带源码)

文章目录 前言一、demo演示二、node.js 使用步骤1.引入库2.引入包 前端HTML调用接口和UI所有文件总结 前言 关注博主,学习每天一个小demo 今天是Ai对话网站 又到了每天一个小demo的时候咯,前面我写了多人实时对话demo、和视频转换demo,今天…

类和对象(5)——抽象类和接口

目录 1. 抽象类 1.1 抽象类的概念 1.2 抽象类语法:abstract关键字 1.3 抽象类的特性 1.4 抽象类的作用 2. 接口 2.1 接口的概念 2.2 接口语法:interface关键字 2.3 接口的实现:implements关键字 2.4 接口的特性 2.5 实现多个接口 …

kubectl exec 实现的原理

kubectl exec 是 Kubernetes 提供的一个命令,它允许你在指定的 Pod 中执行命令,类似于在容器中打开一个终端会话。这个功能对于调试、监控和管理容器化应用非常有用。kubectl exec 的实现涉及到多个 Kubernetes 组件和机制,包括 API Server、…

【ubuntu24.04】 强制重启导致大模型的磁盘挂载出错

挂载NTFS文件系统出错 各种模型放在了这个机械硬盘上,虽然速度慢,但是好在容量大。大模型在工作,但是程序看起来有问题,导致系统卡死了,然后我重启了,然后报错:wrong fs type bad option &…

【数据结构】 栈和队列

在计算机科学的世界里,数据结构是构建高效算法的基础。栈(Stack)和队列(Queue)作为两种基本且重要的数据结构,在软件开发、算法设计等众多领域都有着广泛的应用。今天,我们就来深入探讨一下栈和…

移动端测试的挑战与解决方案:兼容性、网络问题及实战策略

引言 移动应用已成为用户触达服务的核心入口,但移动端测试面临设备多样性、网络波动、用户场景复杂等多重挑战。据Statista统计,2023年全球活跃移动设备超180亿台,操作系统(Android/iOS)版本碎片化率超30%,这对测试工程师提出了极高要求。本文深度解析移动端测试的核心痛…

【设计模式】03-理解常见设计模式-行为型模式(专栏完结)

前言 前面我们介绍完创建型模式和创建型模式,这篇介绍最后的行为型模式,也是【设计模式】专栏的最后一篇。 一、概述 行为型模式主要用于处理对象之间的交互和职责分配,以实现更灵活的行为和更好的协作。 二、常见的行为型模式 1、观察者模…

matlab欠驱动船舶模型预测控制

1、内容简介 matlab135-欠驱动船舶模型预测控制 可以交流、咨询、答疑 2、内容说明 略 针对在风 、 浪 、 流时变干扰下欠驱动水面船舶的轨迹跟踪控制问题 , 设计了一种基于模型 预测控制的轨迹跟踪控制器 . 考虑到欠驱动船舶在没有横向驱动力情况下…