搜索
写经验 领红包

k均值聚类有什么作用(k均值聚类算法的基本原理)

导语:这样讲K均值聚类,简单又清楚!

点击上方关注,All in AI中国

K均值聚类是最简单和最受欢迎的无监督机器学习算法之一。

通常,无监督算法仅使用输入向量从数据集进行推断,而不参考已知或标记的结果。

AndreyBu拥有超过5年的机器学习经验,目前向人们教授他的技能,他表示“K-means的目标很简单:将类似的数据分组在一起,发现潜在的模式。为了实现这一目标,K-means在数据集中查找固定数量(k)的聚类。”

集群是指由于某些相似性而聚合在一起的数据点集合。

您将定义一个目标数字k,它指的是数据集中所需的质心数,质心是表示集群中心的虚构或真实位置。

通过减少簇内平方和,将每个数据点分配给每个簇。

换句话说,K-means算法识别k个质心,然后将每个数据点分配给最近的簇,同时保持质心尽可能小。

K均值中的“均值”是指数据的平均值;也就是说,找到质心。

K-means算法如何工作

为了处理学习数据,数据挖掘中的K均值算法从第一组随机选择的质心开始,这些质心用作每个聚类的起始点,然后执行迭代(重复)计算以优化质心的位置。

它可以在以下情况之一停止创建和优化集群:

质心已经稳定- 它们的值没有变化,因为聚类已经成功。已经实现了定义的迭代次数。

K-means算法示例问题

让我们看看K-means机器学习算法如何使用Python编程语言工作的步骤。

我们将使用Scikit-learn库和一些随机数据来说明K-means聚类的简单解释。

第1步:导入库

从上面的代码中可以看出,我们将在项目中导入以下库:

用于阅读和编写电子表格的熊猫Numpy用于执行高效计算Matplotlib用于数据可视化

第2步:生成随机数据

以下是在二维空间中生成一些随机数据的代码:

总共产生了100个数据点并分成两组,每组50个点。

以下是数据在二维空间中的显示方式:

第3步:使用Scikit-Learn

我们将使用Scikit-learn库中的一些可用函数来处理随机生成的数据。

这是代码:

在这种情况下,我们任意给k(n_clusters)一个任意值2。

以下是运行代码时得到的K-means参数的输出:

第4步:找到质心

以下是查找集群中心的代码:

这是质心值的结果:

让我们显示集群中心(使用绿色和红色)。

这是输出:

第5步:测试算法

以下是获取K-means聚类示例数据集的标签属性的代码;也就是说,数据点如何被划分为两个集群。

以下是运行上述K-means算法代码的结果:

如您所见,50个数据点属于0集群,而其余数据属于1个集群。

例如,让我们使用下面的代码来预测数据点的集群:

结果如下:

总结:

以下是Python中的整个K-means聚类算法代码:

K均值聚类是一种广泛使用的数据聚类分析技术。

这很容易理解,特别是如果您使用K-means集群教程加速学习。它可以快速提供训练结果。

然而,其性能通常不如其他复杂的聚类技术那样具有竞争力,因为数据的微小变化可能导致高度变化。

此外,假设簇是球形的并且大小均匀,这可能会降低K-means聚类Python结果的准确性。

本文内容由小涵整理编辑!