yolov5如何运行自己的数据集_如何为数据集选择正确的聚类算法?

yolov5如何运行自己的数据集_如何为数据集选择正确的聚类算法?_第1张图片

作者 | CDA数据分析师

应用聚类算法比选择最佳算法要容易得多。每种类型都有其优缺点,如果您要争取一个整洁的集群结构,则必须加以考虑。数据聚类是安排正确的整个数据模型的重要步骤。为了进行分析,应根据共同点整理信息量。主要问题是,什么通用性参数可以提供最佳结果,以及“最佳”定义中到底蕴含着什么。

本文对于新手数据科学家或想刷新其在该主题上的记忆的专家应该是有用的。它包括最广泛使用的聚类算法及其深入的综述。根据每种方法的特殊性,提供了考虑其应用的建议。

四种基本算法以及如何选择一种

根据聚类模型,可以区分四种常见的算法类别。一般而言,算法不少于100种,但是它们的流行程度以及应用领域都很适中。

分层聚类

基于整个数据集对象之间距离的计算,聚类称为基于连通性或分层。根据算法的“方向”,它可以组合或反过来划分信息数组- 聚集和分裂的名称正是源于这种精确的变化。最为流行和合理的类型是聚集型,您可以从输入数据点的数量开始,然后将这些数据点组合成越来越大的簇,直到达到极限。

基于连接的聚类的最突出示例是植物的分类。数据集的“树”以特定物种开始,以一些植物王国结束,每个植物王国都由更小的簇组成(门,类,阶等)。

应用基于连接性的算法之一后,您将收到树状图数据,该树状图向您展示了信息的结构,而不是集群上的不同分隔。这样的功能可能既有好处,也有坏处:算法的复杂性可能变得过高或根本不适用于几乎没有层次的数据集。它还显示出较差的性能:由于存在大量的迭代,因此完整的处理将花费不合理的时间。最重要的是,使用分层算法不会获得精确的结构。

yolov5如何运行自己的数据集_如何为数据集选择正确的聚类算法?_第2张图片

同时,从计数器要求的输入数据下降到数据点的数量,该点不会对最终结果产生实质性影响,也不会影响预设的距离度量,该距离度量也可以进行粗略测量和近似计算。

KMeans聚类

根据我的经验,基于质心的聚类由于其比较简单而成为最常出现的模型。该模型旨在将数据集的每个对象分类为特定的聚类。簇数( k)是随机选择的,这可能是该方法最大的“弱点”。由于与 k近邻(kNN)相似,该 k均值算法在机器学习中特别受欢迎。

yolov5如何运行自己的数据集_如何为数据集选择正确的聚类算法?_第3张图片

计算过程包括多个步骤。首先,选择输入数据,这是应将数据集划分为的大致聚类数。聚类的中心应放置在尽可能远的位置,这将提高结果的准确性。其次,该算法找到数据集的每个对象与每个聚类之间的距离。最小坐标(如果我们在谈论图形表示)确定了将对象移动到哪个群集。之后,将根据所有对象坐标的平均值重新计算聚类的中心。重复算法的第一步,但是重新计算了簇的新中心。除非达到某些条件,否则此类迭代将继续。例如,当集群的中心距上一次迭代没有移动或移动不明显时,该算法可能会结束。

尽管数学和编码都很简单,但k-means仍然存在一些缺点,因此我无法在所有可能的情况下使用它。那包括:

  • 每个集群的疏忽之处,因为优先级设置在集群的中心,而不是边界;
  • 无法创建一个数据集结构,该结构的对象可以按等量的方式分类到多个群集中;
  • 需要猜测最佳k数,或者需要进行初步计算以指定此量规。

同时,期望最大化算法可以避免那些复杂情况,同时提供更高的准确性。简而言之,它计算每个数据集点与我们指定的所有聚类的关联概率。用于该聚类模型的主要“工具”是高斯混合模型(GMM) –假设数据集的点通常遵循高斯分布。

yolov5如何运行自己的数据集_如何为数据集选择正确的聚类算法?_第4张图片

EM算法

k-means算法基本上是EM原理的简化版本。它们都需要人工输入簇数,这是方法所要面对的主要难题。除此之外,计算原理(对于GMM或k均值)很简单:簇的近似范围是在每次新迭代中逐渐指定的。

与基于质心的模型不同,EM算法允许对两个或多个聚类的点进行分类-它仅向您展示每个事件的可能性,您可以使用该事件进行进一步的分析。更重要的是,每个聚类的边界组成了不同度量的椭球体,这与k均值不同,在k均值中,聚类在视觉上表示为圆形。但是,该算法对于对象不遵循高斯分布的数据集根本不起作用。这是该方法的主要缺点:它更适用于理论问题,而不是实际的测量或观察。

DBSCAN

最后,基于密度的聚类,名称包括模型的要点–将数据集划分为聚类,计数器会输入ε参数,即“邻居”距离。因此,如果对象位于ε半径的圆(球)内,则它与群集有关。

yolov5如何运行自己的数据集_如何为数据集选择正确的聚类算法?_第5张图片

DBSCAN(带有噪声的基于应用程序的基于密度的空间聚类)算法将逐步检查每个对象,将其状态更改为“已查看”,将其分类为OR聚类,直到最终处理整个数据集。用DBSCAN确定的簇可以具有任意形状,因此非常精确。此外,该算法不会让您计算聚类数-它是自动确定的。

尽管如此,即使像DBSCAN这样的杰作也有缺点。如果数据集由可变密度簇组成,则该方法显示的结果较差。如果对象的放置位置太近,并且无法轻松估算ε参数,也可能不是您的选择。

总结起来,没有错误选择算法之类的东西-其中有些更适合特定的数据集结构。为了始终采用最佳(更适合)算法,您需要全面了解它们的优缺点。

例如,如果某些算法不符合数据集规范,则可以从一开始就将其排除在外。为避免繁琐的工作,您可以花一些时间来记住信息,而不是选择反复试验的路径并从自己的错误中学习。

我们希望您一开始总是选择最好的算法。继续这了不起的工作吧!

yolov5如何运行自己的数据集_如何为数据集选择正确的聚类算法?_第6张图片

扫码进入CDA官方小程序,解锁更多新鲜资讯和优质内容,还有免费试听课程,不要错过哟!

你可能感兴趣的:(yolov5如何运行自己的数据集_如何为数据集选择正确的聚类算法?)