基于Fisher线性判别分析的模式识别与数据降维系统
项目介绍
本项目实现了一个基于Fisher线性判别分析(Linear Discriminant Analysis, LDA)的模式识别与数据降维实验系统。Fisher线性判别是一种经典的高维数据处理方法,其核心思想是寻找一个最优的投影方向,使得原始特征在投影到低维空间后,依然保持极佳的分类性能。系统通过最大化类间离散度与最小化类内离散度的比值,确立最佳判别矢量,从而在保留关键分类信息的前提下实现维度的有效压缩。
功能特性
- 自动化仿真建模:系统内置高效的数据生成算法,可模拟生成具有特定均值向量和协方差矩阵的多维高斯分布数据集,为验证算法有效性提供标准测试环境。
- 严谨的矩阵构造:完整实现了类内离散度矩阵(Sw)与类间离散度矩阵(Sb)的数学计算逻辑。
- 稳健的特征求解:采用广义特征值求解方案,并引入伪逆运算处理可能的矩阵奇异性,确保在处理复杂特征时系统的数值稳定性。
- 降维维度调控:自动根据类别数量确定最优降维维度(C-1维),确保投影后的空间具备最强的特征区分度。
- 性能质量评估:实时计算输出Fisher准则函数值J(w),定量分析降维后样本分布的优劣。
- 多维度可视化呈现:系统能够同步对比原始高维空间的散点分布与降维后低维空间的概率密度分布,直观展示LDA的聚类效果。
实现逻辑与算法流程
系统的核心逻辑遵循以下核心步骤:
- 实验数据仿真:
系统首先确定随机数种子以保证实验的可重复性,随后生成两个具有不同均值中心(mu1, mu2)和自定义协方差矩阵的三维正态分布数据集。每个类别包含100个样本,共计200个三维特征向量。
- 离散度矩阵构建:
- 系统首先计算全局样本均值。
- 遍历所有类别,计算每个类别的内部均值向量。
- 累加各类别样本相对于其类中心的离散度,生成类内离散度矩阵 Sw。
- 计算各类别均值中心与全局中心之间的加权距离,生成类间离散度矩阵 Sb。
- 最优投影方向求解:
系统将判别准则转化为求解广义特征值问题。通过对矩阵 pinv(Sw) * Sb 进行特征值分解,提取特征值。随后对特征值按降序排列,取其最大的前k个特征向量构成投影矩阵 W。
- 特征空间映射:
利用求解出的投影矩阵,通过矩阵乘法将原始三维数据映射到一维(或低维)轴上,得到极简化的判别特征。
- 指标计算与视觉输出:
系统计算投影后的迹比值(Fisher Criterion)作为衡量模型好坏的指标,并分两部分展示结果:一是原始3D特征空间的样本云图;二是降维后的投影分布图,包含概率密度曲线模拟图和样本点的一维排布,清晰展示类间距离拉伸与类内紧凑化的过程。
关键细节分析
- 分类判别准则:系统严格执行 J(w) = (W' * Sb * W) / (W' * Sw * W) 的最大化原则,这是LDA区别于PCA等无监督降维方法的核心,即LDA利用了类标签信息。
- 数值稳定性处理:在求解特征向量时,针对Sw矩阵可能出现的奇异性(不可逆),代码使用了伪逆函数(pinv),有效避免了计算崩溃,增强了工程实用性。
- 密度可视化:对于二分类降维到一维的情况,系统不仅绘制了样本点,还利用直方图统计(histcounts)拟合了概率密度曲线,使不同类别的覆盖范围和分界点一目了然。
使用方法
- 启动环境:打开MATLAB开发环境。
- 运行系统:执行主控函数(main),系统将全自动完成数据生成、矩阵运算及图形渲染。
- 结果查看:
- 命令行窗口:将实时显示原始维度、降维后维度、最优投影矢量W的具体分量以及Fisher准则函数值。
- 图形窗口:左侧子图展示3D原始数据分布,右侧子图展示降维后的1D投影密度分布。
系统要求
- 软件平台:MATLAB R2016b 及以上版本。
- 必备工具箱:Statistics and Machine Learning Toolbox(用于生成多维正态分布数据及部分绘图函数)。