在监督学习中,均方误差衡量的是预测值与实际值之间的平均平方差:
MSE = E [ ( Y − f ^ ( X ) ) 2 ] \text{MSE} = \mathbb{E}[(Y - \hat{f}(X))^2] MSE=E[(Y−f^(X))2]
MSE 可以分解为三部分:
MSE = Bias 2 ( f ^ ( x 0 ) ) + Var ( f ^ ( x 0 ) ) + Var ( ε ) \text{MSE} = \text{Bias}^2(\hat{f}(x_0)) + \text{Var}(\hat{f}(x_0)) + \text{Var}(\varepsilon) MSE=Bias2(f^(x0))+Var(f^(x0))+Var(ε)
理解偏差-方差权衡有助于模型选择与调参。
举例:
模型 | 调参方式 | 趋势 |
---|---|---|
多项式回归 | 增加多项式次数 | ↓偏差 ↑方差 |
kNN | 减小 k | ↓偏差 ↑方差 |
SVM | 增大 C | ↑偏差 ↓方差 |
核密度估计 | 减小带宽 | ↓偏差 ↑方差 |
每个观测包含:
模型目标是使用 x \boldsymbol{x} x 来预测 y y y。
通常模型输出的是类别概率,例如某个样本属于类别 1 的概率为 0.85。需要通过设定阈值(如 0.5)将概率转化为具体类别。
逻辑回归模型形式:
log ( p 1 − p ) = x ⊤ β \log\left( \frac{p}{1 - p} \right) = \boldsymbol{x}^\top \boldsymbol{\beta} log(1−pp)=x⊤β
其中 p = P ( Y = 1 ∣ x ) p = P(Y = 1 \mid \boldsymbol{x}) p=P(Y=1∣x)。
Sigmoid 函数将线性预测值映射到 ( 0 , 1 ) (0, 1) (0,1):
p = 1 1 + exp ( − x ⊤ β ) p = \frac{1}{1 + \exp(-\boldsymbol{x}^\top \boldsymbol{\beta})} p=1+exp(−x⊤β)1
我们通过最大化对数似然函数估计 β \boldsymbol{\beta} β:
ℓ ( β ) = ∑ i = 1 n [ y i log ( p i ) + ( 1 − y i ) log ( 1 − p i ) ] \ell(\beta) = \sum_{i=1}^{n} \left[ y_i \log(p_i) + (1 - y_i)\log(1 - p_i) \right] ℓ(β)=i=1∑n[yilog(pi)+(1−yi)log(1−pi)]
当 p ≥ 0.5 p \ge 0.5 p≥0.5(即 x ⊤ β ≥ 0 \boldsymbol{x}^\top \boldsymbol{\beta} \ge 0 x⊤β≥0)时,预测为正类。
LDA 假设各类数据服从高斯分布,并具有相同协方差矩阵。利用贝叶斯公式:
P ( Y = k ∣ X = x ) = π k f k ( x ) ∑ ℓ = 1 K π ℓ f ℓ ( x ) P(Y = k \mid X = x) = \frac{\pi_k f_k(x)}{\sum_{\ell=1}^{K} \pi_\ell f_\ell(x)} P(Y=k∣X=x)=∑ℓ=1Kπℓfℓ(x)πkfk(x)
LDA 适用于小样本、高斯假设成立的情况。
kNN 是一种非参数方法,预测类别基于最近的 k k k 个样本:
P ( Y = ℓ ∣ x ) = 1 k ∑ i ∈ N x k 1 { y i = ℓ } P(Y = \ell \mid x) = \frac{1}{k} \sum_{i \in N_x^k} \mathbb{1}_{\{y_i = \ell\}} P(Y=ℓ∣x)=k1i∈Nxk∑1{yi=ℓ}
优点:
缺点:
k 最近邻(kNN)是一种完全非参数方法,这意味着它不对决策边界的形状作任何假设。
选择合适的邻居数 k k k 是模型性能的关键:
常用做法是通过交叉验证选择最优的 k k k。
总结:
方法 | 假设前提 | 是否非参数 | 可解释性 | 适合边界类型 |
---|---|---|---|---|
kNN | 无 | ✅ 是 | ❌ 低 | 非线性 |
LDA | 高斯分布 + 同方差 | ✗ 否 | ✅ 强 | 线性 |
Logistic回归 | 决策函数线性 | ✗ 否 | ✅ 强 | 线性 |
支持向量机是一种强大的监督学习算法,其目标是寻找一个最优的决策边界(超平面),将不同类别的数据尽可能“间隔最大”地分开。
在 p p p 维空间中,超平面是一个 p − 1 p - 1 p−1 维的平坦空间,其一般形式为:
β 0 + β 1 X 1 + β 2 X 2 + ⋯ + β p X p = 0 \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_p X_p = 0 β0+β1X1+β2X2+⋯+βpXp=0
其中,向量 ( β 1 , β 2 , . . . , β p ) (\beta_1, \beta_2, ..., \beta_p) (β1,β2,...,βp) 被称为法向量,它垂直于超平面的表面,定义了决策边界的方向。
在二维空间( p = 2 p = 2 p=2)中,这个超平面就是一条直线。
假设我们将两类样本编码为:
若一个超平面 f ( x i ) = β 0 + β 1 x i 1 + ⋯ + β p x i p f(x_i) = \beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip} f(xi)=β0+β1xi1+⋯+βpxip 满足对所有样本 y i f ( x i ) > 0 y_i f(x_i) > 0 yif(xi)>0,则该超平面成功分隔了两类。
最大间隔分类器旨在最大化分类边界两侧距离最近样本的间隔 M M M:
max β 0 , β 1 , . . . , β p M subject to ∑ j = 1 p β j 2 = 1 , y i ( β 0 + β 1 x i 1 + ⋯ + β p x i p ) ≥ M , ∀ i \max_{\beta_0, \beta_1, ..., \beta_p} M \\ \text{subject to } \sum_{j=1}^p \beta_j^2 = 1, \\ y_i(\beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip}) \geq M, \quad \forall i β0,β1,...,βpmaxMsubject to j=1∑pβj2=1,yi(β0+β1xi1+⋯+βpxip)≥M,∀i
支持向量是距离决策边界最近的训练样本,它们直接决定了超平面的最终位置。
现实中类别不可完全分离或存在噪声。此时我们引入软间隔支持向量分类器(Support Vector Classifier),允许部分样本违背间隔要求:
优化目标:
max β 0 , . . . , β p , ε 1 , . . . , ε n M subject to ∑ j = 1 p β j 2 = 1 y i ( β 0 + β 1 x i 1 + ⋯ + β p x i p ) ≥ M ( 1 − ε i ) , ε i ≥ 0 ∑ i = 1 n ε i ≤ C \max_{\beta_0, ..., \beta_p, \varepsilon_1, ..., \varepsilon_n} M \\ \text{subject to} \sum_{j=1}^p \beta_j^2 = 1 \\ y_i(\beta_0 + \beta_1 x_{i1} + \cdots + \beta_p x_{ip}) \geq M(1 - \varepsilon_i), \quad \varepsilon_i \geq 0 \\ \sum_{i=1}^n \varepsilon_i \leq C β0,...,βp,ε1,...,εnmaxMsubject toj=1∑pβj2=1yi(β0+β1xi1+⋯+βpxip)≥M(1−εi),εi≥0i=1∑nεi≤C
其中:
解释:
有些问题的分类边界在原始特征空间中是非线性的。为处理此类问题,可以通过引入特征映射扩展空间,例如加入 X 1 2 X_1^2 X12, X 1 X 2 X_1X_2 X1X2, X 2 2 X_2^2 X22 等新特征,将二维空间变换为更高维空间。
在线性不可分的情况下,这种扩展使得在新空间中可以通过线性超平面完成分隔,在原始空间则呈现非线性边界。
示例决策函数:
β 0 + β 1 X 1 + β 2 X 2 + β 3 X 1 2 + β 4 X 2 2 + β 5 X 1 X 2 = 0 \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \beta_3 X_1^2 + \beta_4 X_2^2 + \beta_5 X_1 X_2 = 0 β0+β1X1+β2X2+β3X12+β4X22+β5X1X2=0
当维度高时显式构造新特征非常耗时,**核技巧(Kernel Trick)**提供了一种无需显式转换的方法:
SVM 最终的分类函数可以表示为:
f ( x ) = β 0 + ∑ j = 1 n α j ⟨ x , x j ⟩ f(x) = \beta_0 + \sum_{j=1}^n \alpha_j \langle x, x_j \rangle f(x)=β0+j=1∑nαj⟨x,xj⟩
只需计算训练样本之间的内积。
将内积 ⟨ x i , x j ⟩ \langle x_i, x_j \rangle ⟨xi,xj⟩ 替换为核函数 K ( x i , x j ) K(x_i, x_j) K(xi,xj):
利用核函数可以构造非线性决策边界而无需显式构造新特征。
R 中的 SVM 实现示例:
svm.model <- svm(x = data.mat[,-3], y = data.mat[[3]],
kernel = "radial", type = "C-classification",
cost = 64, fitted = FALSE)
标准 SVM 是为二分类设计的,处理多分类问题时常用以下两种方法:
推荐:
哪几个模型是非参数分类模型?
本周我们学习了四种核心分类方法:
方法 | 类型 | 特点 | 适用场景 |
---|---|---|---|
逻辑回归 | 判别模型 | 输出概率,适合线性边界 | 简单任务,概率建模 |
LDA | 生成模型 | 高斯假设,适合小样本 | 类别边界近似线性 |
kNN | 非参数 | 无需训练,计算代价高,易过拟合 | 非线性分布,训练样本丰富 |
SVM | 间隔模型 | 可构建非线性边界,适合高维稀疏数据 | 需要强分类性能,特征空间复杂 |
理解不同模型的假设和适用条件,有助于你在实践中做出更合理的模型选择。