基于半监督核主元分析(SSKPCA)的数据特征提取与分类优化系统
项目介绍
本项目实现了一种半监督核主元分析(SSKPCA)算法,专门用于高维非线性数据的特征提取与降维。该系统通过在经典的核主元分析(KPCA)框架中引入标签信息,改进了纯无监督学习在特征判别力上的不足。系统通过核技巧将原始属性空间映射到高维再生核希尔伯特空间(RKHS),并在该空间内结合全局方差最大化与类别标签约束,提取出既保留非线性流形结构又具有强类别区分度的低维特征。该方案特别适用于标签样本稀缺、数据非线性特征明显的工业监控、图像处理及复杂系统故障诊断等场景。
功能特性
- 非线性流形提取:支持通过高斯核、线性核及多项式核有效捕捉非线性数据结构。
- 半监督学习机制:利用少量的类别标签构建相似度约束矩阵,引导投影方向向有利于分类的方向优化。
- 广义特征值求解:通过求解融合了中心化核矩阵与相似度约矩阵的广义特征方程,获得最优正交投影轴。
- 多维度评估指标:提供主成分方差贡献率、累积贡献率以及核空间重构误差等量化分析指标。
- 自动化可视化:系统自动生成三维原始数据分布图与降维后的二维特征子空间分布图,直观展示特征分离度。
- 新样本投影能力:具备完善的测试集映射逻辑,能够将未知样本一致性地转换到提取的特征空间。
使用方法
- 环境准备:确保安装了 MATLAB 运算环境。
- 数据配置:系统内部集成了一套非线性螺旋数据集生成器,用户也可以通过修改代码中的输入矩阵 X 和标签向量 y 来处理自定义数据。
- 参数调整:
- 修改 kernel_type 选择核函数类型('gaussian', 'linear', 'poly')。
- 调整 kernel_param 设置核函数宽度或阶数。
- 调整 beta 参数(0 到 1 之间)来平衡无监督方差与有监督标签信息的影响力。
- 运行系统:直接执行主程序,系统将自动完成数据生成、模型训练、特征投影、误差计算及结果绘图。
- 结果分析:观察命令行输出的报告信息以及图形界面展示的降维效果。
系统要求
- MATLAB R2016b 或更高版本。
- 基本的 MATLAB 矩阵运算工具箱(通常为标准安装自带)。
实现逻辑与功能细节
1. 数据准备与预处理
系统首先生成一个具有非线性结构的 600 样本数据集,模拟三维空间中的双螺旋流形。为了模拟真实工业场景,系统随机保留 20% 的样本标签,将其余 80% 的标签置为 0,以此测试算法在弱监督环境下的表现。
2. SSKPCA 核心算法逻辑
训练过程遵循以下数学逻辑:
- 核矩阵计算:根据用户定义的核函数(如 RBF 核)计算样本间的相似度矩阵 K。
- 中心化处理:通过中心化算子对核矩阵进行双向中心化,确保投影坐标系的原点位于数据中心。
- 约束矩阵构建:利用已知标签构建相似度矩阵 S。当两个标记样本属于同类时赋予正权重,异类则赋予负权重,未标记样本权重为零。
- 目标函数融合:构造综合矩阵 M = (1-beta) * K_centered + beta * (K * S * K)。该公式旨在同时最小化核空间重构误差和最大化同类样本的聚集度。
- 广义分解:求解 M 与 K 的广义特征分解问题。为了防止数值计算中出现奇异矩阵,系统在核矩阵对角线加入了微小的正则化项(1e-6)。
3. 特征投影与归一化
系统提取前 k 个最大特征值对应的特征向量(Alpha),并对其进行正则化,确保投影后的特征轴在核空间中具有单位范数。最后,通过核矩阵与 Alpha 的乘积将原始数据投影到低维子空间。
4. 关键函数功能说明
- SSKPCA训练模块:实现核矩阵构建、中心化、约束融合、特征解算及模型封装。
- 特征转换模块:针对新样本,计算其与训练集的跨核矩阵,执行与训练集一致的中心化偏移补偿,并投影至学习到的主通道。
- 核函数逻辑模块:封装了高斯径向基、线性及多项式三类核函数的底层数学实现。
- 误差分析模块:在再生核希尔伯特空间中,通过迹函数原理计算样本点在特征子空间上的近似重构残差,用于评估降维后的信息保留完整度。
5. 结果产出
系统在运行结束后会输出详细的特征提取报告,包含:
- 目标维度与前两个成分的独立方差贡献率。
- 系统累计方差贡献率分析。
- 全体样本的平均核空间重构误差。
- 可视化对比图:左侧展示原始带噪声的 3D 数据分布,右侧展示 SSKPCA 提取出的 2D 判别特征,清晰呈现类别边界。