聚类算法根据样本之间的相似性将样本划分到不同的类别中。聚类算法有K-means聚类、层次聚类、DBSCAN聚类、谱聚类等其中主要以K均值K-Means算法最为常用k-Means是一种无监督学习的聚类算法用于将数据划分为k个互不重叠的簇clusters。1. 聚类算法的核心思想核心思想通过迭代优化将样本分配到最近的簇中心质心并更新质心位置直到收敛。Api应用# 导包 from sklearn.cluster import KMeans # 创建模型实例 model KMeans(n_clusters4, random_state22) # 模型训练 estimator.fit(x) # 模型预测 pred estimator.predict(x)2. K-Means算法的底层流程1. 确定初始K中心初始化K值或利用K-Means算法优化初始点的选择让簇之间的距离尽可能远。2. 寻找最优的质心不断迭代、分配/更新的过程直到收敛或达到迭代次数使得簇内平方和达到最小值。3. 确定最终结果当迭代停止时算法输出最终的K个簇和对应的质心。3. 聚类算法的模型评估函数聚类算法常用的评估方法有SSE 误差平方和考虑簇内距离SSE 相对越小越好肘部法下降率突然变缓时聚类效果最好。ApiKMeans.inertia_属性SC SC轮廓系数法考虑簇内距离和簇外距离取值为[-1, 1]SC值越大聚类效果越好。Apifrom sklearn.metrics import silhouette_score通过图像可观察到n_clusters4取到最大值最佳值4CH CH轮廓系数法考虑簇内距离和簇外距离、质心的个数CH值越大聚类效果越好。Apifrom sklearn.metrics import calinski_harabasz_score通过图像可观察到n_clusters4取到最大值最佳值4