小学生都能懂的局部和全局聚类说明

2024-06-12 21:44

本文主要是介绍小学生都能懂的局部和全局聚类说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小学生都能懂的局部和全局聚类说明

  • 1. 什么是聚类?
  • 2. 什么是局部和全局聚类?
  • 3. 为什么要同时使用局部和全局聚类?
  • 4. 示例解释
    • 4-1. 故事:珠子分类
  • 5. 简单代码示例
  • 6. 解释

1. 什么是聚类?

聚类就是把一大堆东西(数据点)分成几组,每组里面的东西都很相似。比如,我们有很多不同颜色的珠子,想把它们按照颜色分成不同的组。

2. 什么是局部和全局聚类?

  • 全局聚类:把所有的珠子(数据点)整体来看,分成大致几组。就像先把珠子分成红色、蓝色和绿色三大组。
  • 局部聚类:在每个大组里面再进行细分。比如,在红色组里面再分成深红、浅红、粉红等小组。

3. 为什么要同时使用局部和全局聚类?

同时使用局部和全局聚类,可以让我们更好地理解数据:

  • 全局聚类:可以让我们看到数据的整体结构,比如主要有几大类。
  • 局部聚类:可以让我们看到每大类里面的细节,发现更细致的模式。

4. 示例解释

4-1. 故事:珠子分类

假设我们有很多不同颜色的珠子,现在我们想把这些珠子分类。我们会先进行全局聚类,然后在每个大组里进行局部聚类。

  1. 全局聚类:先把珠子分成几个大类

    • 我们把珠子分成三大类:红色、蓝色和绿色。
  2. 局部聚类:在每个大类里面再进行细分

    • 在红色组里面,我们再把珠子分成深红、浅红、粉红。
    • 在蓝色组里面,我们再把珠子分成深蓝、浅蓝、天蓝。
    • 在绿色组里面,我们再把珠子分成深绿、浅绿、黄绿。

这样,我们既可以看到珠子的整体颜色分类(全局),又可以看到每种颜色里面的细节分类(局部)。

5. 简单代码示例

假设我们有一些数据点,先进行全局聚类,再进行局部聚类:

import numpy as np
from sklearn.mixture import GaussianMixture
import umap
import matplotlib.pyplot as plt# 生成一些模拟数据
np.random.seed(42)
data = np.random.rand(100, 5)# 全局聚类
global_gmm = GaussianMixture(n_components=3, random_state=42)
global_labels = global_gmm.fit_predict(data)# 画出全局聚类的结果
reducer = umap.UMAP(n_components=2, random_state=42)
embedding = reducer.fit_transform(data)
plt.scatter(embedding[:, 0], embedding[:, 1], c=global_labels)
plt.title("全局聚类结果")
plt.show()# 局部聚类
local_embeddings = []
local_labels = []
for label in np.unique(global_labels):local_data = data[global_labels == label]local_gmm = GaussianMixture(n_components=2, random_state=42)local_label = local_gmm.fit_predict(local_data)local_embed = reducer.fit_transform(local_data)local_embeddings.append(local_embed)local_labels.append(local_label)# 画出每个全局聚类里面的局部聚类结果
for i, (local_embed, local_label) in enumerate(zip(local_embeddings, local_labels)):plt.scatter(local_embed[:, 0], local_embed[:, 1], c=local_label)plt.title(f"局部聚类结果 (全局组 {i+1})")plt.show()

6. 解释

  1. 数据点:生成一些模拟数据,每个数据点有5个特征。
  2. 全局聚类:使用高斯混合模型(GMM)把数据分成三大类。
  3. 降维:使用UMAP把数据从5维降到2维,以便可视化。
  4. 局部聚类:在每个全局大类里面,再使用GMM进行细分。
  5. 结果展示:画出全局聚类和局部聚类的结果。

通过这个故事和示例,希望你能更好地理解局部和全局聚类的基本概念和它是如何工作的!

这篇关于小学生都能懂的局部和全局聚类说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1055422

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

列举你能想到的UNIX信号,并说明信号用途

信号是一种软中断,是一种处理异步事件的方法。一般来说,操作系统都支持许多信号。尤其是UNIX,比较重要应用程序一般都会处理信号。 UNIX定义了许多信号,比如SIGINT表示中断字符信号,也就是Ctrl+C的信号,SIGBUS表示硬件故障的信号;SIGCHLD表示子进程状态改变信号;SIGKILL表示终止程序运行的信号,等等。信号量编程是UNIX下非常重要的一种技术。 Unix信号量也可以

用Pytho解决分类问题_DBSCAN聚类算法模板

一:DBSCAN聚类算法的介绍 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,DBSCAN算法的核心思想是将具有足够高密度的区域划分为簇,并能够在具有噪声的空间数据库中发现任意形状的簇。 DBSCAN算法的主要特点包括: 1. 基于密度的聚类:DBSCAN算法通过识别被低密