当前位置: 首页 > news >正文

sklearn.cluster.KMeans(n_clusters=8)

sklearn.cluster.KMeans(n_clusters=8)scikit-learn库中 K-Means 聚类算法的一个实例化调用。

这行代码的含义是:创建一个 K-Means 聚类模型,设置将数据分成8 个簇(即n_clusters=8),其他参数全部使用默认值。

详细参数说明

fromsklearn.clusterimportKMeans# 完整写法(含默认值)kmeans=KMeans(n_clusters=8,# 簇的数量(你设置的)init='k-means++',# 初始化质心的方法n_init='auto',# 不同初始质心运行的次数max_iter=300,# 单次运行的最大迭代次数tol=1e-4,# 收敛容忍度verbose=0,# 是否输出详细日志random_state=None,# 随机种子(用于结果复现)copy_x=True,# 是否复制数据algorithm='lloyd'# 算法实现)

常用操作示例

fromsklearn.clusterimportKMeansimportnumpyasnp# 1. 创建模型kmeans=KMeans(n_clusters=8,random_state=42)# random_state 保证结果可复现# 2. 准备数据(假设有 100 个样本,每个样本 2 个特征)X=np.random.rand(100,2)# 3. 训练模型kmeans.fit(X)# 4. 获取聚类结果labels=kmeans.labels_# 每个样本的簇标签 (0-7)centers=kmeans.cluster_centers_# 8 个簇的中心点坐标# 5. 预测新样本new_data=np.array([[0.5,0.5]])pred_label=kmeans.predict(new_data)# 6. 计算每个样本到所属簇中心的距离distances=kmeans.transform(X)# shape: (100, 8),每列是到各簇中心的距离

如何选择 n_clusters

n_clusters=8不一定是“最优”的,常用方法确定 K 值:

fromsklearn.metricsimportsilhouette_scoreimportmatplotlib.pyplotasplt# 肘部法则inertias=[]silhouette_scores=[]K_range=range(2,15)forkinK_range:kmeans=KMeans(n_clusters=k,random_state=42,n_init=10)kmeans.fit(X)inertias.append(kmeans.inertia_)# 簇内平方和silhouette_scores.append(silhouette_score(X,kmeans.labels_))# 绘图fig,(ax1,ax2)=plt.subplots(1,2,figsize=(12,4))ax1.plot(K_range,inertias,'bo-')ax1.set_xlabel('k')ax1.set_ylabel('Inertia')ax1.set_title('Elbow Method')ax2.plot(K_range,silhouette_scores,'ro-')ax2.set_xlabel('k')ax2.set_ylabel('Silhouette Score')ax2.set_title('Silhouette Analysis')plt.show()

注意事项

  1. 特征缩放:K-Means 对特征尺度敏感,建议先标准化:

    fromsklearn.preprocessingimportStandardScaler X_scaled=StandardScaler().fit_transform(X)
  2. random_state:设置随机种子可使结果可复现

  3. n_init:默认'auto'(10次),增加可提高稳定性但会慢

  4. 内存:数据量大时考虑使用MiniBatchKMeans

http://www.jsqmd.com/news/615843/

相关文章:

  • WorkBuddy的优势和劣势分别是什么?
  • PHP 8.9错误处理增强配置:从php.ini到Runtime::setErrorHandler()的7层防御链构建实战
  • Codex 输出漏洞检测与防御策略
  • Python 操作 MySQL 数据库:从基础连接到连接池与事务管理全解析
  • rk3568驱动-驱动编译进内核
  • Blazor WebAssembly AOT编译踩坑实录(含.NET 9 RTM正式版12类崩溃场景+符号映射调试秘钥)
  • SecGPT-14B私有化部署:企业内网安全使用OpenClaw的方案
  • 基于File-Based App开发MVP项目鸥
  • PHP静态分析新范式:基于LLM的代码合规性校验系统(2024最新开源实践)
  • 某高校证书站实战:API Fuzz+AI 辅助,一口气拿下 Redis+MySQL 账号密码
  • NTC热敏电阻测温原理与工程实践
  • 从零开始的知识蒸馏原理全解+代码实战训练
  • “你用AI,那我也会用AI,我还要你干什么?”死
  • 【Spring Boot 4.0 Agent-Ready 架构权威白皮书】:20年资深架构师亲授企业级落地避坑指南
  • “.NET 11 + ONNX Runtime 1.18 + Triton集成”三重加速组合拳:某全球Top3药企临床辅助诊断系统P99延迟压至17ms的完整链路揭秘
  • .NET对象转JSON,到底有几种方式?味
  • DDD难落地?就让AI干吧! - cleanddd-skills介绍嘶
  • 多肽合成丨司美格鲁肽/Semaglutide CAS号:197922-42-2
  • 国产MOS管替代实践,亲测效果分享
  • LangChain教程-、Langchain基础磐
  • FastAPI项目半夜报警吵醒你?聊聊告警这事儿怎么搞!逞
  • PHP电商订单系统测试实战:从下单到退款的12个关键断点检测方法
  • 【限时技术解禁】GraalVM静态镜像内存优化速查表(含JFR+Native Memory Tracking双验证脚本),仅开放72小时下载
  • OpenClaw故障模拟:Qwen3.5-9B-AWQ-4bit异常输入处理测试
  • 嵌入式三角形求解库:面向关节机械的轻量实时运动学计算
  • 2026上海冰雹吸坑上门维修名录:胶粘拉拔修复/车身刮痕修复/车身钣金精修/钢圈修复/铝钣金修复/不刮腻子钣金/选择指南 - 优质品牌商家
  • 嵌入式Linux驱动开发入门与实践指南
  • GraalVM静态编译内存泄漏排查难?资深架构师私藏的4类SubstrateVM堆外内存追踪法(含Native Image Heap Dump解析工具)
  • 不换设备、不重写程序:耐达讯自动化网关如何实现CC-Link IE转Modbus TCP的高效互通?
  • 揭秘三甲医院正在用的PHP脱敏引擎:0.3秒完成百万级患者信息动态脱敏,附开源代码与压测报告