半监督流形学习算法研究与MATLAB实现
项目介绍
本项目实现了一种融合标签信息与拓扑结构的半监督流形学习算法(Semi-Supervised Manifold Learning - Laplacian Eigenmaps, SSML-LE)。该算法旨在解决标注样本稀缺条件下的高维数据特征提取问题。通过在传统的流形学习框架中引入监督机制,利用极少量的标记样本对邻接矩阵进行修正,从而在保持原始数据几何结构的同时,增强降维后特征的类别判别力。
功能特性
- 复合邻接图构建:结合K近邻算法(KNN)与热核函数计算原始数据的拓扑关系,确保全局流形的连续性。
- 强化的监督机制:针对已知标签的样本对,通过增加类内连接权重(Alpha参数)和削弱类间连接权重(Beta参数),显式引导降维过程。
- 半监督特征提取:利用Laplacian Eigenmaps框架,将非线性降维过程转化为广义特征值求解问题,能够有效处理具有复杂几何结构的流形。
- 性能深度评估:内置一近邻(1-NN)分类器,对比原始空间与嵌入空间在处理未标记数据时的分类准确率。
- 多维可视化展示:提供高维原始数据流形与低维嵌入结果的直观对比视图。
系统实现逻辑
- 数据合成与仿真:系统生成一个具有三维结构的双螺旋(Dual Spiral)流形作为原始数据。为了模拟真实的半监督场景,程序会自动随机隐藏大部分样本的标签,设定仅保留10%左右的已知标记。
- 拓扑结构建立:计算所有样本点间的欧氏距离。针对每个样本点,寻找其地理位置最接近的12个近邻点,并使用热核函数为各边分配初始权重,构建初步的对称邻接矩阵。
- 标签信息融合:遍历标记样本。若两样本同属一类,则显著成倍提高其邻接权重,使其在低维空间更加聚集;若两样本异类,则通过调节因子大幅削弱其权重,促使其在嵌入空间中分离。
- 拉普拉斯矩阵求解:计算度矩阵与拉普拉斯矩阵。核心算法通过求解广义特征值方程 $Ly = lambda Dy$ 来寻找映射方向。为了避免平凡解,选取最小的非零特征值对应的特征向量组成低维投影矩阵。
- 特征空间转换:将原始800x3的数据映射到800x2的嵌入平面,完成降维。
关键函数与算法分析
- 螺旋流形生成算法:通过三角函数逻辑生成两组交织的螺旋曲线,并添加正态分布噪声,模拟复杂的高维分布。
- 权重修正逻辑:这是半监督的核心。通过监督项权重系数Alpha和类间调节因子Beta,动态调整图结构。Alpha用于增强局部聚类,Beta用于拉开类别间距。
- 一近邻分类评估器:该模块将数据集划分为训练集(已知标签点)和测试集(未知标签点)。在原始空间和降维后的低维空间中分别执行1-NN算法,以分类准确率作为衡量降维算法表现的客观指标。
- 特征向量排序与筛选:算法自动剔除特征值接近于0的特征向量(即对应图的连通分量的常数向量),确保提取到的分量包含流形的主要几何变化信息。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 依赖工具箱:Statistics and Machine Learning Toolbox(用于计算距离度量与数据处理)。
- 硬件要求:建议内存4GB以上,支持标准图形渲染。
使用方法
- 启动MATLAB环境。
- 将项目相关的函数文件置于当前工作路径。
- 直接运行主程序。系统将自动执行以下流程:
- 生成含有噪声的双螺旋三维流形。
- 掩盖90%的类别信息。
- 计算并优化半监督邻接图。
- 执行特征值分解。
- 自动弹出对比图窗:左侧为带有类标色的原始三维数据,右侧为降维后的二维特征分布。
- 在命令行窗口输出原始空间与低维空间的分类精度评估报告。