机器学习笔记-基于谱聚类开发的聚类任务(Python)-代码链接在文末

本文介绍了如何在Windows环境下利用Python3.10.11和sklearn库进行Iris数据集的聚类分析,包括选择最佳聚类数目、谱聚类算法应用、以及通过TSNE和UMAP进行降维和结果可视化的过程。
摘要由CSDN通过智能技术生成

实验环境

  1. 操作系统:Windows
  2. 开发工具:Python 3.10.11
  3. 数据集:Iris(sklearn自带)

安装相关库

import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import SpectralClustering
from sklearn.manifold import TSNE
import umap.umap_ as umap
import seaborn as sns
from scipy.cluster.hierarchy import dendrogram, linkage
from sklearn.datasets import load_iris
  1. matplotlib.pyplot:matplotlib是一个用于创建静态、动态和交互式图标的库,pyplot是其中提供MATLAB风格接口的子模块。
  2. sklearn:导入 SpectralClustering 类,这是一种谱聚类方法;导入了 pairwise_distances 函数,这个函数用于计算一组数据点之间的成对距离;从 sklearn.manifold 模块中导入了 TSNE 类。TSNE 是一种用于数据降维和可视化的方法;从 sklearn.datasets 模块中导入了 load_iris 函数。这个函数用于加载 iris 数据集。
  3. umap:导入umap的imap_模块,这是一种用于数据降维和可视化的方法。
  4. scipy.cluster.hierarchy:从 scipy.cluster.hierarchy 模块中导入了 dendrogram 和 linkage 函数。dendrogram 函数用于绘制树状图,linkage 函数用于进行层次聚类。

 寻找最佳聚类数目

        聚类数目是会直接影响到聚类结果的质量和解释性的重要参数,因此本实验中使用Calinski-Harabasz指数评估聚类的质量,从而选择最佳的聚类数目。编写程序计算聚类数目从2-10的聚类质量并输出。

代码运行结果如下:

d4e2202c166e40549885b3e63b4c5a5c.png

b6711a53a14e45d4b56e84fb58f39209.png         观察即可看出,聚类数目为3时聚类效果最好。

使用谱聚类算法

X = iris.data 这行代码将鸢尾花数据集的特征数据赋值给变量 X。在鸢尾花数据集中,每个样本有四个特征,分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度。

y = iris.target 这行代码将鸢尾花数据集的标签赋值给变量 y。在鸢尾花数据集中,标签是一个整数,表示每个样本所属的类别,有三种可能的值,分别对应鸢尾花的三个品种:山鸢尾(Iris-setosa)、变色鸢尾(Iris-versicolor)和维吉尼亚鸢尾(Iris-virginica)。

ab5201fd221f4998a3347df6b7db544b.png

 聚类结果可视化

绘制相似性矩阵

7543b26da2d14d6f89fa36996c7ee55c.png

绘制T-SNE降维图

278c891167644712bdfc2e72c593ea36.png

绘制UMAP降维图

db58624d4bba460191977b5eb2a37cc2.png

绘制树状图

d64c424bf81a4171965d78aa9c0a007d.png

绘制一致性热力图

5ff8dede529c4da386416cbb1e6e5037.png

代码点击此处免费下载使用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值