文章来源:https://medium.com/voxel51/how-to-cluster-images-6e09bdff7361
2024 年 4 月 10 日
使用 FiftyOne、Scikit-learn和特征嵌入
在 2024 年深度学习的计算密集型环境中,集群一词最常出现在讨论 GPU 集群时--高度优化的矩阵乘法机器的大规模集合,用于训练同样大规模的生成模型。每个人都专注于训练更大、更好的模型,挑战人工智能模型性能的极限,并将最新的架构进展应用于他们的数据。
在本文中,我们将介绍聚类的基础知识,并向你展示如何使用开源机器学习库 Scikit-learn 和 FiftyOne 来构建可视化数据!
什么是聚类?
集群的构建模块
想象一下,你有一大堆各种形状和大小的乐高积木散落在地板上。到了该把乐高积木收起来的时候,你却发现自己没有一个足够大的垃圾桶来存放所有的乐高积木。幸运的是,你找到了四个较小的垃圾桶,每个都能容纳大致相同数量的乐高积木。你可以把各种乐高积木随意扔进每个垃圾桶,然后就可以收工了。但这样一来,下次你再去找某个特定的乐高积木时,就得花很多时间四处寻找了。
相反,你有一个更好的主意:把相似的乐高积木放在同一个垃圾桶里,会为你节省很多时间和麻烦。但是,你打算用什么标准来把乐高积木放进垃圾桶呢?是给不同颜色的乐高积木分配不同的盒子?还是把所有的方形乐高积木放在一个盒子里,圆形乐高积木放在另一个盒子里?这真的取决于你有哪些乐高积木!简而言之,这就是聚类。
更正式地说,聚类或聚类分析是一套对数据点进行分组的技术。聚类算法接收一堆对象,然后为每个对象分配任务。不过,与分类法不同的是,聚类算法并不是从一个类别列表开始对对象进行分类,迫使对象落入预设的桶中。相反,聚类试图根据数据发现不同的类别。换句话说,聚类的目的是发现数据中的结构,而不是预测预先存在的结构中的标签。
最后一点值得重复:聚类不是预测标签。与分类、检测和分割任务不同,聚类任务没有基本真实标签。我们将这种算法称为无监督算法,与有监督和自监督学习任务形成鲜明对比。
更重要的是,聚类是无需训练的。聚类算法会吸收数据点(对象)的特征,并利用这些特征将对象分成若干组。一旦成功,这些组就会突出独特的特征,让你了解数据的结构。
聚类是如何工作的?
聚类是一个包含技术的总称!
聚类算法有多种类型,根据其用于分配聚类成员资格的标准而有所区别。最常见的几种聚类算法是:
基于中心点的聚类:例如 K-means 聚类和均值移动聚类等技术。这些方法试图找到中心点来定义每个聚类,这些中心点被称为 "中心点",其目的是最大限度地提高聚类内