KMeans聚类通过最小化点到簇中心距离平方和将数据划分为K组。使用scikit-learn需安装依赖库,准备数据后选择K值(可用肘部法则),训练模型并可视化结果,注意数据标准化及KMeans对初始值和异常值的敏感性。

在Python中使用KMeans聚类是数据挖掘和机器学习中常见的无监督学习方法,主要用于将数据划分为K个簇。它通过最小化每个点到其所属簇中心的距离平方和来实现聚类。下面介绍如何使用scikit-learn库中的KMeans进行聚类分析。
确保已安装必要的库:
pip install scikit-learn numpy matplotlibKMeans聚类的基本流程包括:准备数据、选择簇数K、训练模型、查看结果和可视化。
from sklearn.cluster import KMeans
import numpy as np
import matplotlib.pyplot as plt
示例数据:
立即学习“Python免费学习笔记(深入)”;
# 生成示例数据设置K值并训练模型:
kmeans = KMeans(n_clusters=2, random_state=42)上面代码将数据分为2类,labels表示每个点属于哪个簇(0或1),centers是两个簇的中心坐标。
对于二维数据,可以用matplotlib画出聚类效果:
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis', label='Data Points')不同颜色代表不同簇,红色叉号表示聚类中心。
常用的方法是肘部法则(Elbow Method),通过观察不同K值对应的惯性(inertia,即样本到其簇中心距离的平方和)变化来判断最佳K。
inertias = []
K_range = range(1, 6)
for k in K_range:
km = KMeans(n_clusters=k, randomstate=42)
km.fit(X)
inertias.append(km.inertia)
plt.plot(K_range, inertias, 'bo-', label='Inertia')
plt.xlabel('Number of Clusters (k)')
plt.ylabel('Inertia')
plt.title('Elbow Method')
plt.show()
当曲线出现明显“拐点”时,该K值通常较合适。
random_state保证结果可复现StandardScaler
基本上就这些。KMeans简单高效,适合初学者上手聚类任务,结合实际业务理解选择K值更重要。不复杂但容易忽略细节。
以上就是Python kmeans聚类的使用的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号