无监督聚类中的 k - 均值算法深入解析与案例实践
在无监督学习领域,聚类是一种重要的技术,它能够将数据集中的对象分组为不同的簇,使得同一簇内的对象具有较高的相似性,而不同簇之间的对象具有较高的差异性。k - 均值算法是一种广泛使用的聚类方法,本文将详细介绍 k - 均值算法的原理、如何选择合适的簇数量、以及通过两个具体案例展示其在实际中的应用。
1. k - 均值算法基础与簇数量选择
k - 均值算法虽然不能保证收敛到全局最优解,但在实践中往往能够收敛。也就是说,对象分配到各个组的情况会稳定到一个局部最小值,这个局部最小值可以通过有限数量的 Voronoi 划分之一来表示。SOCR 2D 交互式 Voronoi 细分应用程序可以交互式地演示这个迭代划分过程,我们可以使用参数手动控制迭代过程的动态。
选择合适的簇数量是 k - 均值算法中的一个关键问题。一般来说,簇的数量既不宜过大也不宜过小。如果簇的数量过多,对象的分组可能过于具体,难以进行有意义的解释;而簇的数量过少,则分组可能过于宽泛,缺乏实用性。一种经验法则是从 $k = \sqrt{\frac{n}{2}}$ 开始尝试,但这可能会产生过多的簇。
为了更准确地确定簇的数量,我们可以使用肘部法则。该方法通过绘制组内同质性与簇数量 k 的关系图,找出是否存在一个明确的“肘部点”。这个点对应的 k 值表示在相对较大的组内同质性下的最小簇数量。
以下是实现自动识别最优肘部点并确定合适簇数量 k 的代码:
estimateElbowPoint <- function(xValues, yValues) { # Est
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



