Python机器学习k均值简介,在本视频中,我们介绍了K均值聚类算法。K均值聚类是一种无监督学习算法,用于将数据集分成具有相似特征的簇。该算法使用样本之间的相似性进行分组,并使用距离度量来计算样本之间的差异。K均值聚类的目标是最小化簇内距离并最大化簇间距离。算法的步骤包括初始化簇的数量,选择质心,计算样本与质心的距离,将样本分配到最近的簇,更新质心,并重复这些


你好,欢迎光临。在本视频中,我们将介绍 K 均值聚类。那么让我们开始吧。

想象一下,您有一个客户数据集,并且需要对此历史数据应用客户细分。客户细分是将客户群划分为具有相似特征的个人组的做法。K-Means 聚类是可用于客户细分的算法之一。K-Means 只能根据客户之间的相似性对数据进行无监督分组。让我们更正式地定义这种技术。

有多种类型的聚类算法,例如分区、分层或基于密度的聚类。K-Means是分区聚类的一种,即将数据划分为K个不重叠的子集或簇,没有任何簇内部结构或标签。这意味着,它是一种无监督算法。一个簇内的对象非常相似,而不同簇之间的对象则非常不同或不相似。

正如您所看到的,为了使用 K 均值,我们必须找到相似的样本:例如相似的客户。现在,我们面临几个关键问题。首先,我们如何在聚类中找到样本的相似性,然后我们如何衡量两个客户在人口统计方面的相似程度?尽管K-Means的目标是以类似样本进入一个集群、不同样本进入不同集群的方式形成集群,但可以证明,我们可以使用不相似性度量来代替相似性度量。换句话说,通常使用样本彼此之间的距离来塑造聚类。所以我们可以说 K-Means 试图最小化簇内距离并最大化簇间距离。

现在的问题是,我们如何计算两个案例(例如两个客户)的差异或距离?假设我们有两个客户,我们将他们称为客户一和客户二。我们还假设这两个客户中的每一个都只有一个特征,该特征就是年龄。我们可以轻松地使用特定类型的 Minkowski 距离来计算这两个客户的距离。事实上,这就是欧几里得距离。x1 到 x2 的距离是 34 的根减去 30_2,即四。如果我们有多个特征(例如年龄和收入)怎么办?例如,如果我们有每个客户的收入和年龄,我们仍然可以使用相同的公式,但这次是在二维空间中。此外,我们可以对多维向量使用相同的距离矩阵。当然,我们必须规范化我们的特征集以获得准确的差异度量。

还有其他相异性度量也可用于此目的,但它高度依赖于数据类型以及为其完成聚类的域。例如,您可以使用欧几里德距离、余弦相似度、平均距离等。事实上,相似性度量高度控制聚类的形成方式,因此建议了解数据集的领域知识和特征的数据类型,然后选择有意义的距离度量。

现在,让我们看看 K-Means 聚类是如何工作的。为了简单起见,我们假设我们的数据集只有两个特征:客户的年龄和收入。这意味着,它是一个二维空间。我们可以用散点图来展示客户的分布情况:Y轴表示客户的年龄,X轴表示客户的收入。我们尝试根据这两个维度将客户数据集聚类为不同的组或聚类。

第一步,我们应该确定簇的数量。K-Means 算法的关键概念是它为每个簇随机选择一个中心点。这意味着我们必须初始化 K,它代表簇的数量。本质上,确定数据集中的簇数或 K 是 K-Means 中的一个难题,我们将在稍后讨论。现在,我们将样本数据集的 K 设为 3。就像我们的簇有三个代表点一样。这三个数据点称为簇的质心,并且应该与我们的客户特征集具有相同的特征大小。有两种方法可以选择这些质心。第一,我们可以从数据集中随机选择三个观测值,并将这些观测值用作初始平均值。或者两个,我们可以创建三个随机点作为簇的质心,这是我们的选择,在图中以红色显示。

在定义每个集群的质心的初始化步骤之后,我们必须将每个客户分配到最近的中心。为此,我们必须计算每个数据点或在我们的例子中每个客户距质心点的距离。如前所述,根据数据的性质和使用聚类的目的,可以使用不同的距离度量来将项目放入聚类中。因此,您将形成一个矩阵,其中每一行代表客户距每个质心的距离。它被称为距离矩阵。

K-Means 聚类的主要目标是最小化数据点与该聚类质心的距离,并最大化与其他聚类质心的距离。因此,在这一步中,我们必须找到距离每个数据点最近的质心。我们可以使用距离矩阵来找到距离数据点最近的质心。找到每个数据点最近的质心.

它会产生误差最小的簇或最密集的簇。然而,由于它是一种启发式算法,不能保证它会收敛到全局最优,并且结果可能取决于初始聚类。这意味着,该算法保证收敛到一个结果,但结果可能是局部最优,即不一定是最好的结果。为了解决这个问题,通常以不同的启动条件多次运行整个过程。这意味着使用随机的起始质心,可能会产生更好的结果。

 

Python机器学习k均值简介 推荐

领券有优惠