解决K均值初始化挑战的有效策略
精明有效的策略解决K均值初始化挑战
使用n_init和K均值
简介
K均值是机器学习中广泛使用的聚类算法,具有许多优点,但也存在重要挑战。在本文中,我们将深入探讨其局限性,并提供直接有效的解决方案。
K均值如何工作?
K均值是一种将数据划分为K个簇的聚类算法。它随机初始化K个质心,然后将每个数据点分配给最近的质心。根据分配的点的均值重新计算质心,并重复此过程直至收敛。
我在下面用t分布随机邻居嵌入(一种降维技术)进行了说明。每个簇用颜色表示。
K均值开始时通过随机选择质心,这意味着结果可能会因此初始选择而有所不同。如果这些质心选择不恰当,可能会产生不准确的簇。为了解决这个问题,可以采用两种策略:”n_init”和”K均值++”。
在下一节中,我们将详细介绍整个过程,从确定最佳的’K’值到训练模型。
选择最佳的K
K代表簇的数量,在K均值算法中非常重要。一个次优的K可能会导致不精确的聚类。确定合适的K通常并不直观,通常需要领域知识和分析技术的结合。我们将使用两种技术称为“弯曲拐点法”和“轮廓系数”。
弯曲拐点法
一种常见的方法是“弯曲拐点法”,但还有其他各种技术和考虑因素需要牢记。让我们深入了解如何为您的数据选择最佳K。
from sklearn.metrics import silhouette_scorecost = []silhouettes = []K = range(2, 20)for k in K: kmeans = KMeans(n_clusters=k, n_init=10)…