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是两个簇的中心坐标。
本网站采用OpenWBS 企业建站系统开发的网站模版,支持PC端+手机端。适合做公司网站企业网站,特别适合做工程和机械类公司网站。 OpenWBS企业建站系统是一款功能强大的企业建站内容管理系统,专业用于企业网站建设和企业网站制作,面向广大企业用户,帮助企业快速搭建企业官网,不论你是技术大咖还是建站小白,都可以使用企业建站系统快速搭建一个功能齐全的企业网站,非常适合 做公司网站、企业网站、政
0
对于二维数据,可以用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号