基于Fisher准则与贝叶斯决策的男女性别分类器
项目介绍
本项目提供了一套基于MATLAB开发的性别自动识别系统,旨在通过人体生物特征数据(身高、体重、脚码)实现对性别的精准分类。系统核心集成了两种经典的模式识别算法:Fisher线性判别分析(FLD)与最小错误率贝叶斯分类器。通过对比分析降维投影法与统计概率模型,本项目展示了不同数学模型在处理多维生物特征数据时的分类表现、决策边界特性以及鲁棒性,适用于学习模式识别基础理论及工程验证。
功能特性
- 仿真数据生成:内置基于多元正态分布的随机数据生成功能,模拟真实世界中男女身形特征的分布规律。
- 自动化数据持久化:生成的训练与测试样本自动导出为CSV格式文件,便于数据回溯与独立分析。
- 标准预处理流程:包含特征提取、随机化数据集划分(80%训练,20%测试)以及基于Z-score的数据归一化处理。
- 双算法核心实现:完整实现了Fisher准则的最佳投影向量计算及阈值判别,以及多元统计意义下的最小错误率贝叶斯评估。
- 多维度性能度量:通过准确率指标及手动实现的混淆矩阵,定量分析分类器在各类别上的识别精度。
- 综合可视化表现:提供包括原始特征3D空间分布、Fisher一维投影直方图、分类准确率对比及二位决策边界切面投影在内的可视化对比图。
使用方法- 打开MATLAB软件,并将当前工作目录切换至本项目代码文件所在的文件夹。
- 在命令行窗口直接输入主入口函数名称并按回车键运行。
- 系统将自动生成模拟数据集并在当前目录下创建名为gender_dataset.csv的文件。
- 紧接着,程序会执行模型训练与预测,并在命令行窗口输出Fisher与贝叶斯分类器的准确率及各自的混淆矩阵。
- 最后,程序会自动弹出一个包含四个子图的可视化窗口,展示分类结果与数学特性的图形化表示。
系统要求
- 软件环境:MATLAB R2016b 及以上版本。
- 辅助工具箱:建议安装 Statistics and Machine Learning Toolbox(用于调用随机分布生成及交叉验证划分函数)。
- 硬件要求:标准桌面或笔记本电脑,具备基础的计算性能和图形显示支持。
主程序逻辑说明主程序严格遵循以下逻辑阶段进行计算:
利用 mvnrnd 函数通过预设的均值向量和协方差矩阵,分别生成150个男性和150个女性样本点。特征包含身高、体重和脚码,并在数据末尾追加性别标签。
程序读取生成的CSV表单,利用 cvpartition 进行数据切分。通过计算训练集的均值和标准差,对全体特征进行归一化,解决不同物理单位(cm, kg, size)对分类器造成的尺度偏差问题。
算法通过计算男、女两个训练簇的均值向量和类内离散度矩阵,构建总类内离散度矩阵。通过求解矩阵方程得到最佳投影方向 w。系统计算各个类中心在投影轴上的坐标,并以两类投影中心的中点作为判别阈值。
程序首先估算训练集中男女类别的先验概率及各自特征分量的均值和协方差。在测试阶段,针对每个样本点,利用对数判别函数计算其分属于男、女类别的后验得分(考虑了马氏距离和协方差矩阵行列式的对数补偿),并遵循最大后验准则进行最终类别赋予。
程序对比预测标签与真实标签,计算识别精度。混淆矩阵的实现采取了手动逻辑,不依赖外部工具箱,通过双重遍历真实类与预测类实现分类结果的细化统计。
核心算法与实现细节分析
代码中 w_fisher = Sw (m1 - m2) 的实现代表了寻找使 Fisher 准则函数(类间距离与类内距离之比)最大化的解。通过单位化处理保证了投影空间的稳定性。
在计算过程中,使用了多元正态分布的对数似然形式。核心公式考虑了样本 x 与均值向量的马氏距离项、协方差矩阵的行列式(代表样本分布的散度和确定度)以及先验概率的自然对数。
为了展示高维决策边界,程序采用了“固定变量法”。在绘制贝叶斯决策边界时,将脚码固定在归一化后的均值水平,通过网格取样方式计算身高和体重平面上的判别分值差,从而绘制出非线性的决策分界线(0坐标等高线)。
归一化过程中使用训练集的参数处理测试集,严格遵循了机器学习中避免“数据泄露”的原则,确保评估结果的真实有效。