【机器学习】聚类算法

本文介绍了无监督学习中的聚类算法,特别是K-means算法的原理和优化目标。K-means通过迭代寻找数据的最佳聚类,其中涉及到随机初始化、簇分配和移动聚类中心等步骤。此外,还讨论了如何选择合适的聚类数量,包括使用肘部原则和考虑下游任务需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文为机器学习的学习总结,讲解聚类算法。欢迎交流。

无监督学习导论

监督学习需要学习带标签的数据,找出正负样本间的决策边界。即使用假设函数对样本标签进行拟合。

在这里插入图片描述

与监督学习不同,无监督学习需要学习无标签的数据,将无标签的数据作为输入,让算法找出其中隐藏的数据结构。如下图中的例子,可以将样本分成两个簇,即聚类算法(注意这里没有 y ( i ) y^{(i)} y(i))。

在这里插入图片描述

K-means 算法

K-means 算法用来将样本分成子集或簇。接下来我们介绍其原理。

对于下图中的例子,我们使用 K-means 算法介绍其执行步骤:

在这里插入图片描述

聚类算法是一个迭代算法,其中包括了两个步骤:簇分配+移动聚类中心

首先随机生成聚类中心,也就是图中的红叉和蓝叉。
在这里插入图片描述

每次迭代的第一步进行簇分配。遍历每个样本(绿点),根据距离分配给两个簇中心。图中的红点分给了红叉,蓝点分给了蓝叉:
在这里插入图片描述

第二步是移动聚类中心,将中心(2 个叉)移动到同色点的均值处:
在这里插入图片描述

不断迭代,算法收敛时,聚类中心已经能够成功将所有的样本分类了:

在这里插入图片描述

通过上面的介绍,应该已经大体了解了聚类算法的过程。接下来我们重新介绍一下规范写法。

算法有 2 个输入:

  • 输入参数 K K K,表示想从数据中聚类出簇的个数。在文章后面我们会介绍如何选择参数。

  • 输入是训练集 x ( i ) x^{(i)} x(i),约定 x ( i ) x^{(i)} x(i) n n n 维实向量,默认丢掉 x 0 = 1 x_0=1 x0=1

首先随机初始化 K K K 个聚类中心 μ 1 , … , μ K ∈ R \mu_1,…,\mu_K\in \mathcal R μ1,,μKR,表示上个例子中的红叉和蓝叉。对下面的两步进行迭代:

在这里插入图片描述

第一步是簇分配,遍历 m m m 个样本点,计算 c ( i ) = min ⁡ k ∣ ∣ x ( i ) − μ k ∣ ∣ 2 c^{(i)}=\min\limits_k ||x^{(i)}-\mu_k||^2 c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值