谱聚类算法演示

谱聚类算法是一种用于同时考虑矩阵的行(样本)和列(特征)的聚类方法。它旨在识别样本之间的模式,以及样本子集中的模式,从而允许在数据中检测局部结构。这使得谱聚类特别适合于特征顺序固定的数据集,例如图像、时间序列或基因组。

生成样本数据

使用make_checkerboard函数生成样本数据。每个像素在300x300的形状中代表一个来自均匀分布的值。噪声是从正态分布中添加的,其中噪声的标准差被选择为噪声值。可以看到,数据分布在12个聚类单元中,并且相对容易区分。

数据重排

重排数据,目标是使用谱聚类算法重建它。创建了重排的行和列索引列表,并重新定义了重排后的数据并绘制它。观察到,原始数据矩阵的结构已经丢失。

拟合谱聚类模型

拟合模型并将获得的聚类与真实情况进行比较。注意,在创建模型时,指定了与创建数据集时相同的聚类数量,这将有助于获得良好的结果。

绘制结果

现在,根据谱聚类模型分配的行和列标签的升序重新排列数据,并再次绘制。行标签的范围是0到3,而列标签的范围是0到2,代表每行有4个聚类,每列有3个聚类。

展示行和列标签之间的关系

最后,想展示模型分配的行和列标签之间的关系。因此,使用numpy.outer创建一个网格,它取排序后的行标签和列标签,并每个加1以确保标签从1而不是0开始,以便于更好的可视化。

脚本总运行时间

脚本的总运行时间为:(0分钟0.564秒)

可以下载Jupyter笔记本:

可以下载Python源代码:

可以下载压缩包:

谱共聚类算法演示

使用轮廓分析选择KMeans聚类的数量

标签传播学习复杂结构

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485