机器学习期末实战:从线性回归到SVM的考题详解(附答案推导)
机器学习期末实战从线性回归到SVM的考题详解附答案推导期末考试临近不少同学对机器学习中的核心算法仍存在理解盲区。本文将以典型考题为切入点深入剖析线性回归、高斯朴素贝叶斯和软间隔SVM的解题逻辑帮助大家建立系统的解题思维框架。不同于简单的公式罗列我们将从数学原理出发逐步拆解每个推导环节的思考路径。1. 线性回归的概率解释与牛顿法优化线性回归作为机器学习入门算法其背后的概率意义常被忽视。考试中常要求从概率视角重新理解最小二乘法这是检验是否真正掌握算法本质的关键。概率解释三部曲条件概率建模假设目标变量 $y$ 服从以 $\theta^Tx$ 为均值的高斯分布 $$ p(y|x;\theta) \frac{1}{\sqrt{2\pi}\sigma}\exp\left(-\frac{(y-\theta^Tx)^2}{2\sigma^2}\right) $$似然函数构建对于独立同分布的 $m$ 个样本联合概率为 $$ L(\theta) \prod_{i1}^m p(y^{(i)}|x^{(i)};\theta) $$对数似然最大化取对数后等价于最小化平方误差 $$ \begin{aligned} \ell(\theta) \log L(\theta) \ -\frac{m}{2}\log(2\pi\sigma^2) - \frac{1}{2\sigma^2}\sum_{i1}^m(y^{(i)}-\theta^Tx^{(i)})^2 \end{aligned} $$注意考试中常会要求推导正则化版本。以L2正则为例目标函数变为 $$ J(\theta) \frac{1}{2}|X\theta - y|^2 \frac{\lambda}{2}|\theta|^2 $$ 其闭式解为 $$ \theta (X^TX \lambda I)^{-1}X^Ty $$牛顿法优化步骤计算Hessian矩阵 $$ H X^TX \lambda I $$迭代更新规则 $$ \theta : \theta - H^{-1}(X^T(X\theta - y) \lambda\theta) $$收敛判断当参数变化量 $|\Delta\theta| \epsilon$ 时终止2. 高斯朴素贝叶斯的参数估计当特征服从高斯分布时贝叶斯分类器可转化为参数估计问题。考试常要求完成以下推导模型假设类别变量 $Y \sim \text{Bernoulli}(p)$特征 $X|Yj \sim \mathcal{N}(\mu_j, \sigma_j^2)$关键推导步骤联合似然函数 $$ L(p,\mu,\sigma) \prod_{i1}^m p^{y^{(i)}}(1-p)^{1-y^{(i)}} \prod_{j0}^1 \frac{1}{\sqrt{2\pi}\sigma_j}\exp\left(-\frac{(x^{(i)}-\mu_j)^2}{2\sigma_j^2}\right)^{I(y^{(i)}j)} $$后验概率表达式 $$ P(Y1|X) \frac{1}{1\exp\left(\ln\frac{1-p}{p} \frac{(x-\mu_0)^2}{2\sigma_0^2} - \frac{(x-\mu_1)^2}{2\sigma_1^2}\right)} $$参数估计闭式解参数估计公式$p$$\frac{1}{m}\sum_{i1}^m I(y^{(i)}1)$$\mu_j$$\frac{\sum_{i1}^m x^{(i)}I(y^{(i)}j)}{\sum_{i1}^m I(y^{(i)}j)}$$\sigma_j^2$$\frac{\sum_{i1}^m (x^{(i)}-\mu_j)^2I(y^{(i)}j)}{\sum_{i1}^m I(y^{(i)}j)}$3. 软间隔SVM的变体推导当考试出现非标准形式的SVM时需回归优化问题本质进行推导。以松弛变量平方项为例原始问题 $$ \min_{w,b,\xi} \frac{1}{2}|w|^2 C\sum_{i1}^m \xi_i^2 $$ $$ \text{s.t. } y^{(i)}(w^Tx^{(i)}b) \geq 1-\xi_i, \xi_i \geq 0 $$KKT条件原始可行性$y^{(i)}(w^Tx^{(i)}b) \geq 1-\xi_i$对偶可行性$\alpha_i \geq 0$互补松弛$\alpha_i[1-\xi_i-y^{(i)}(w^Tx^{(i)}b)]0$梯度为零$\nabla_w \mathcal{L} w - \sum_{i1}^m \alpha_i y^{(i)}x^{(i)} 0$对偶问题推导技巧构造拉格朗日函数 $$ \mathcal{L} \frac{1}{2}|w|^2 C\sum_{i1}^m \xi_i^2 - \sum_{i1}^m \alpha_i[y^{(i)}(w^Tx^{(i)}b)-1\xi_i] $$通过对 $\xi_i$ 求导得到关系式 $$ \frac{\partial\mathcal{L}}{\partial\xi_i} 2C\xi_i - \alpha_i 0 \Rightarrow \xi_i \frac{\alpha_i}{2C} $$最终对偶形式 $$ \max_\alpha \sum_{i1}^m \alpha_i - \frac{1}{4C}\sum_{i1}^m \alpha_i^2 - \frac{1}{2}\sum_{i,j1}^m \alpha_i\alpha_j y^{(i)}y^{(j)}x^{(i)T}x^{(j)} $$ $$ \text{s.t. } \sum_{i1}^m \alpha_i y^{(i)} 0, \alpha_i \geq 0 $$4. 高频简答题精要PCA算法步骤数据标准化$X \leftarrow (X - \mu)/\sigma$计算协方差矩阵$\Sigma \frac{1}{m}X^TX$特征值分解$[\vec{v},\lambda] \text{eig}(\Sigma)$选择主成分按特征值降序选取前$k$个特征向量投影数据$Z XV_k$ $V_k$为前$k$个特征向量组成的矩阵核K-means实现要点# 使用RBF核的K-means实现 def kernel_kmeans(X, k, gamma, max_iters100): # 计算核矩阵 K np.exp(-gamma * pairwise_distances(X, metricsqeuclidean)) # 随机初始化簇中心索引 centroids np.random.choice(len(X), k, replaceFalse) for _ in range(max_iters): # 计算样本到中心的距离通过核技巧 distances np.diag(K)[:,None] np.diag(K)[centroids] - 2*K[:,centroids] labels np.argmin(distances, axis1) # 更新中心点选择距离簇内点平均最近的点 new_centroids [] for i in range(k): mask (labels i) if np.sum(mask) 0: avg_dist np.mean(K[mask][:,mask], axis1) new_centroids.append(mask.nonzero()[0][np.argmin(avg_dist)]) centroids np.array(new_centroids) return labelsBias-Variance分解 $$ \mathbb{E}[(y-\hat{f})^2] \text{Bias}^2(\hat{f}) \text{Var}(\hat{f}) \sigma^2 $$ 其中$\text{Bias} \mathbb{E}[\hat{f}] - f$ 表示模型预测的期望与真实值的偏离$\text{Var} \mathbb{E}[(\hat{f} - \mathbb{E}[\hat{f}])^2]$ 反映模型预测的波动性$\sigma^2$ 为数据固有噪声模型复杂度与误差关系可通过以下实验验证使用不同阶数的多项式回归拟合数据在训练集和验证集上分别计算MSE观察训练误差随复杂度单调下降验证误差呈现U型曲线
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2452210.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!