LegClust层次聚类算法实现
项目介绍
本项目实现了IEEE TPAMI论文中提出的LegClust聚类算法。该算法通过计算数据点之间的邻近关系构建邻近矩阵,然后基于图的连通分量分析进行层次聚类。LegClust能够有效处理复杂分布的数据集,利用图论方法发现数据中的自然聚类结构,在聚类质量和计算效率方面表现出色。
功能特性
- 邻近矩阵构建:基于数据点间的距离或相似度计算,构建反映样本间邻近关系的对称矩阵
- 图连通分量分析:将邻近矩阵转化为图结构,通过连通分量分析识别数据中的基础聚类单元
- 层次聚类树生成:基于连通分量构建层次聚类树,描述聚类合并的完整过程
- 智能切割策略:支持指定聚类数量或自动确定最佳聚类划分
- 聚类质量评估:提供多种评估指标(轮廓系数、DB指数等)量化聚类效果
使用方法
输入参数
- 数据矩阵:n×d的数值矩阵,n为样本数量,d为特征维度
- 邻近度阈值参数:用于确定样本间邻近关系的阈值参数
- 聚类数量参数(可选):指定最终聚类数目或自动确定策略参数
输出结果
- 聚类标签向量:n×1的整数向量,每个元素对应一个样本的聚类编号
- 层次聚类树:描述聚类合并过程的树状结构信息
- 邻近矩阵:n×n的对称矩阵,记录样本间的邻近关系
- 聚类质量评估指标:如轮廓系数、DB指数等聚类效果评估值
基本调用示例
% 加载数据
data = load('dataset.mat');
% 设置参数
threshold = 0.5; % 邻近度阈值
num_clusters = 3; % 指定聚类数量(可选)
% 执行聚类
[labels, tree, proximity_matrix, metrics] = main(data, threshold, num_clusters);
系统要求
- MATLAB R2018b或更高版本
- 支持的操作系统:Windows 10/11, Linux, macOS
- 内存要求:至少4GB RAM(建议8GB以上用于大规模数据集)
- 硬盘空间:至少500MB可用空间
文件说明
主程序文件实现了算法的核心流程,包括数据预处理、邻近矩阵计算、图连通分量分析、层次聚类树构建、聚类划分决策以及结果评估等完整功能。该文件整合了所有关键技术模块,提供从原始数据输入到最终聚类结果输出的完整解决方案,用户可通过调整参数灵活控制聚类过程。