K-均值(K-means)聚类算法是一种常用的无监督学习算法,用于将数据集划分为K个不同的簇。该算法通过迭代的方式将数据点分配到最近的簇中,并更新簇的中心,直到收敛为止。
一、K-均值聚类算法的基本步骤:
-
初始化K个簇的中心点(可以随机选择或者根据数据集初始化)。
-
将每个数据点分配到最近的簇中。
-
更新每个簇的中心点为该簇所有数据点的平均值。
-
重复步骤2和3,直到簇的中心点不再改变或达到指定的迭代次数。
二、K-均值聚类算法的优点:
-
简单且易于实现。
-
可以处理大规模数据集。
-
能够有效地对数据进行聚类,尤其在簇形状相对简单且簇之间区别明显时效果较好。
三、K-均值聚类算法的缺点:
-
对初始中心点的选择敏感,可能会陷入局部最优解。
-
需要事先确定簇的个数K,如果K值选择不合适,可能导致聚类效果不佳。
-
对异常值和噪声敏感,可能会影响聚类结果。
四、K-均值聚类算法Python代码
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
# 生成示例数据
np.random.seed(0)
X = np.random.rand(100, 2)
# 创建KMeans模型并拟合数据
kmeans = KMeans(n_clusters=3, random_sta