🌈个人主页: 程序员不想敲代码啊
🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家
👍点赞⭐评论⭐收藏
🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步!
💓K-means聚类算法
💓K-means聚类是一种广泛用于数据挖掘和机器学习的划分方法,它的目标是将n个观测点划分到k个簇中,使得每个点都属于离它最近的均值(即簇中心)对应的簇,从而使簇内的点尽可能地相似(即内聚度高),而不同簇的点尽可能的不相似(即分离度高)。K-means算法的基本步骤如下:
💓1. 初始化:
🎈选择k个初始质心(centroid),这可以是随机挑选的样本点,或者是随机生成的点。(有不同的初始化方法,比如K-means++提供了一种更精确的初始化质心的方法。)
💓2. 分配步骤:
🎈对于每一个样本点,计算它与每个质心的距离,并把样本点分配给最近的质心所表示的簇。通常情况下,这个距离是欧几里得距离。
💓3. 更新步骤:
🎈对于每个簇,重新计算所有点的平均值,把簇的质心更新为该平均值。
💓4. 迭代:
🎈重复步骤2和步骤3,直到满足终止条件。终止条件可以是质心之间的变化非常小(小于某个阈值),簇分配不再改变,或者已经执行了指定次数的迭代。
💓K-means算法的挑战包括:
- 🎈需要预先指定簇的数量k。
- 🎈对初始质心的选择敏感,可能会收敛到局部最小值而非全局最小值。
- 🎈对离群值敏感,由于基于距离的度量。
- 🎈主要适用于球形簇。
💓K-means聚类的评价可以用多种指标,如轮廓系数(Silhouette Coefficient)、Davies-Bouldin指数或者肘法(Elbow Method)等方式来确定簇的数量是否是最优的。
💓K-means是一种通用的聚类方法,它的简洁和效率使得其成为数据挖掘和模式识别中常用的基准聚类算法。