
简介这份资料面向东南大学网络空间安全学院修读模式识别课程的学生汇集了课后作业答案与期末真题回忆版适合用来对照作业查漏补缺、把握考试重点。据描述该课程考试范围约九成来自做过的作业变式因此作业答案的参考价值远高于教材本身尤其适合平时跟PPT自学、需要靠作业突击复习的同学。压缩包共814个文件约118.24MB其中400个bmp与390个pgm图像文件对应课程实验与作业中的数据集样本16个pptx为课件讲义另有少量m脚本、docx文档及嵌套zip覆盖从数据读取到算法实现的完整流程。目前已有868人学习下载。借助作业答案可逐题核对推导与代码实现配合真题回忆版能快速锁定高频考点与题型变化m脚本与图像数据也可直接复现实验帮助在有限复习时间内抓住这门课量少却关键的核心内容。1. 模式识别期末复习地图从作业答案到真题回忆的完整脉络模式识别这门课很多人学到一半会有种错觉课上讲的都是贝叶斯、判别函数、聚类这些听起来很规整的东西可一到作业和考试题目就像换了一副面孔。这份资料把作业答案和考试真题回忆版放在一起恰好补上了从“听懂”到“做对”之间那段最容易被忽略的路。它适合正在系统学模式识别、准备期末的人也适合已经过了一遍教材、想快速查漏补缺的人。梳理下来会发现这门课真正的难点不在公式本身而在“拿到一道题你知不知道该用哪套决策逻辑去套”。下面按知识模块把整张地图铺开重点、易错点、复习清单依次落地。2. 贝叶斯决策与概率密度估计先验、后验与似然的三角关系2.1 贝叶斯决策的核心公式与三种判决规则模式识别的第一条主线是贝叶斯决策。它的底层逻辑很朴素给定一个样本 x你要判断它属于哪一类靠的是后验概率 P(ωᵢ|x)。而贝叶斯公式把后验拆成了先验和类条件概率的乘积# 贝叶斯决策的最小计算骨架 # prior: 各类先验概率 P(w_i) # likelihood: 类条件概率密度 p(x|w_i) # evidence: 全概率 p(x) sum(prior[i] * likelihood[i]) posterior (prior * likelihood) / evidence # 判决取 posterior 最大的那个类别 decision argmax(posterior)这段代码里prior来自训练集中各类的占比likelihood来自你对类条件分布的建模evidence对每个类都一样所以实际判决时只需要比较分子。参数上最容易改的是先验如果题目给了“某类先验为 0.8”那后验会被先验强烈拉扯判决边界随之偏移。三种判决规则要分清最小错误率贝叶斯决策看的是后验最大最小风险贝叶斯决策引入损失矩阵把“判错的代价”量化进去而 Neyman-Pearson 准则是在限定某一类错误率的前提下让另一类错误率最小。考试里常把这三者混在一起出题关键看题目给的是损失矩阵、错误率上限还是直接给后验。2.2 概率密度估计参数方法与无参数方法的取舍类条件概率密度 p(x|ωᵢ) 不会凭空出现要么假设它服从某种分布再估参数要么直接用无参数方法拟合。参数方法里高斯分布是绝对主角因为均值和协方差矩阵一估整个密度就定了。最大似然估计和贝叶斯估计的区别在于前者把参数当固定未知量后者把参数也当随机变量多了一层先验。无参数方法里直方图最直观但维度一高就崩Parzen 窗用核函数平滑核宽 h 是命门h 太小曲线毛刺h 太大又糊成一团k 近邻则是固定 k 让窗自适应。梳理下来会发现考试喜欢考“给定样本写出 Parzen 窗估计表达式”或者“比较两种无参数方法的优缺点”而不是让你真去算积分。注意高斯假设下如果协方差矩阵不可逆密度函数会直接失效。考场上遇到协方差行列式为零先检查是不是样本数少于维度或者特征之间完全线性相关。3. 判别函数与线性分类器从几何边界到感知机收敛3.1 线性判别函数的几何意义与增广形式线性判别函数 g(x) wᵀx w₀ 把特征空间切成两半决策面 g(x)0 是一个超平面。w 是法向量决定超平面的方向w₀ 是偏置决定它离原点多远。增广形式把 w₀ 吸收进权重向量样本也补一个 1这样 g(x)aᵀy 写起来更统一。多类情形下判别函数可以是一对多、一对一也可以是线性机器。一对多就是每个类跟其余所有类比容易遇到“多个类同时胜出”的死区一对一则是每两类之间划一条边界最后投票。考试里常给一组二维点让你写出判别函数并画出决策面这时候先算 w 和 w₀再找 g(x)0 的两个截距点就能画线。3.2 感知机与最小平方误差两种训练思路的差别感知机准则只关心“有没有分对”错分样本才更新权重更新规则是 w ← w ρ·y其中 y 是错分样本的增广向量ρ 是学习率。它的收敛前提是样本线性可分一旦不可分就会震荡。血泪经验是学习率设太大权重会来回跳设太小迭代次数爆炸。最小平方误差准则MSE则把“分对”变成“逼近目标值”让 aᵀy 尽量接近某个正数 b。它不要求线性可分解出来的是伪逆解但可能把原本能分开的样本也判错。两者的核心差别在于感知机是错误驱动MSE 是误差驱动。题目问“哪种方法适合线性不可分数据”答案通常指向 MSE 或带松弛变量的变体。方法收敛条件更新依据典型问题感知机准则线性可分错分样本不可分时震荡最小平方误差无要求全部样本误差可能牺牲可分性Ho-Kashyap无要求误差边距参数调节复杂3.3 易漏点判别函数章节最容易翻车的三处第一处是增广向量的符号。补 1 还是补 -1取决于你把偏置放在哪一侧一旦符号搞反整个决策面方向就错了。第二处是学习率与迭代次数的关系很多人只写“更新权重”却不写停止条件考试扣分就在这。第三处是多类扩展时一对多和一对一的结果可能不一致题目如果没指定策略要先说明你用的是哪种再往下算。4. 特征选择与降维别让维度成为黑匣子4.1 特征选择的三种搜索策略特征选择是从原始特征里挑一个子集不改变物理含义。穷举法在特征数少时可行但特征一多就组合爆炸。分支定界法利用单调性剪枝能在保证最优的前提下少搜一些。顺序前进和顺序后退则是贪心前者每次加一个最好的后者每次删一个最差的缺点是一旦选错就无法回头。考试里常考“用顺序前进法从 5 个特征中选 3 个”步骤要写清楚先选单独判据最高的那个再在剩余特征里找与已选特征组合后判据最高的依次类推。判据通常用类间距离、相关性或互信息。4.2 主成分分析与 Fisher 判别两种降维的出发点PCA 是无监督的目标是让投影后的方差最大换句话说它保留的是数据本身的散布结构不管类别标签。Fisher 判别分析是有监督的目标是让类间散度与类内散度的比值最大投影后同类挤在一起、异类拉得开。# Fisher 线性判别的方向向量计算 # Sw: 类内散度矩阵, Sb: 类间散度矩阵 import numpy as np w np.linalg.inv(Sw) (m1 - m2) # m1, m2 为两类均值 # 若 Sw 不可逆需先做正则化或降维参数说明Sw由各类样本围绕各自均值的散布累加得到Sb由类均值围绕总均值的散布得到。np.linalg.inv(Sw)要求 Sw 可逆样本数少于维度时这一步会直接报错实际处理时常用伪逆或先做 PCA 降维。提示PCA 降维后如果再接分类器主成分个数不能只看方差贡献率还要看分类效果。方差大的方向未必对分类有用这是最容易忽略的一点。4.3 易错点降维与选择的常见混淆最容易错的是把特征选择和特征提取混为一谈。选择是挑原特征提取是造新特征。PCA 和 Fisher 都属于提取不是选择。另一个坑是 PCA 之前要不要标准化如果各特征量纲差很多不标准化会让大方差特征主导主成分结果失真。还有 Fisher 中 Sw 奇异时的处理很多人直接跳过其实题目往往就考这一步。5. 聚类与近邻法无监督与懒惰学习的复习重点5.1 聚类算法K-means、层次与密度K-means 是最常考的聚类算法核心是“分配—更新”交替先把每个样本分给最近的簇心再用簇内均值更新簇心直到簇心不再移动。它的缺点是 k 要预先指定且对初始簇心敏感容易陷入局部最优。层次聚类分凝聚和分裂两种凝聚式从每个样本一个簇开始每次合并最近的簇最终形成树状图切在不同高度就得到不同数量的簇。密度聚类则能发现任意形状的簇但参数敏感。考试里 K-means 常考手算一轮迭代步骤是给定初始簇心算每个样本到各簇心的距离分配再算新簇心。注意距离用欧氏距离时平方和展开后交叉项会简化计算。5.2 近邻法k 值选择与距离度量最近邻法把训练样本全存下来来一个测试样本就找最近的训练样本属于懒惰学习。k 近邻则是找 k 个最近邻投票。k1 时决策边界复杂容易过拟合k 增大边界变平滑但太大又会欠拟合。距离度量除了欧氏距离还有曼哈顿距离、切比雪夫距离题目如果没指定默认欧氏。距离类型公式要点适用场景欧氏距离平方和开根连续特征默认选择曼哈顿距离绝对值和高维稀疏抗异常值马氏距离考虑协方差特征相关性强5.3 易漏点聚类评价与近邻的边界情况聚类没有标签评价指标容易漏。外部指标如调整兰德指数需要真实标签内部指标如轮廓系数只看簇内紧致和簇间分离。考试若问“如何评价聚类结果”要先说清有没有真实标签。近邻法里如果出现距离相同的情况投票平局怎么处理很多人不写其实题目可能就埋在这里。另外近邻法计算量大考“如何加速”时KD 树和球树是标准答案。6. 复习清单与查漏补缺从真题回忆反推重点6.1 按题型归类的复习优先级把作业答案和真题回忆放在一起看题型大致分四类公式推导、手算迭代、算法比较、概念辨析。公式推导集中在贝叶斯和 Fisher手算迭代集中在感知机、K-means、Parzen 窗算法比较集中在参数与非参数、PCA 与 Fisher、K-means 与层次聚类概念辨析则爱考“判别函数与决策面的关系”“先验与后验的区别”。复习时建议按这个顺序走先把贝叶斯公式和三种判决规则默写一遍再手推一遍 Fisher 方向向量然后手算一轮 K-means 和感知机更新最后把易混淆概念列成对照表。每做完一类回到真题回忆里找对应题目验证。6.2 查漏补缺的具体做法准备一张 A4 纸左边写模块名右边写“我能默写的公式”和“我常错的步骤”。默写不出来的立刻回教材对应章节只读那一节读完马上合上书再默一遍。手算错的把错误步骤单独抄下来标注是符号错、公式错还是计算错。概念混淆的用一句话写清区别比如“PCA 看方差Fisher 看类间类内比”。注意真题回忆版的价值在于题型和考点分布不在于答案本身。回忆版里模糊的题目要回到作业答案里找同类题用作业的解法去套而不是死记回忆版的只言片语。6.3 一个可复用的复习节奏我自己的习惯是考前一周每天只攻一个模块上午默写公式下午手算两道题晚上把当天错的点写进一张“后悔药清单”。第二天开始前先花十分钟把前一天的清单过一遍再进入新模块。这样滚动下来到考前最后一天清单上剩下的就是真正没掌握的集中突破即可。从那以后我每次复习模式识别都强制走一遍“默写—手算—对照真题”的流程不再只是翻书看公式。希望这份梳理能帮到你把作业答案和真题回忆真正用成一张能走通的地图。本文还有配套的精品资源点击获取