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

Sklearn 机器学习 数据聚类 肘部法则选择聚类数目

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖

在这里插入图片描述

本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】


在这里插入图片描述

Sklearn 机器学习:数据聚类中的肘部法则(Elbow Method)选择最佳聚类数目

在无监督学习中,聚类(Clustering) 是一项常见任务,而确定最优的聚类数目始终是聚类算法中的一个关键挑战。

本篇博文将围绕 SklearnKMeans 实践,详细讲解如何通过 肘部法则(Elbow Method) 辅助选择合理的聚类数目。

我们将覆盖如下内容:

  • 肘部法则的原理与直觉解释
  • Sklearn + KMeans + Elbow Method 实战代码
  • 自动寻找拐点与多指标辅助判断
  • 方法局限性与补充建议

🔍 一、什么是肘部法则(Elbow Method)?

原理简介

KMeans 聚类中,我们需要提前指定聚类数目 k。不同的 k 会产生不同的聚类结果,我们可以通过 样本到其所属簇中心的距离平方和 来衡量聚类效果。

这个距离平方和被称为:

簇内平方和(Within-Cluster Sum of Squares, WCSS),也常被称为 SSE(Sum of Squared Errors)。
Sklearn 中 KMeansinertia_ 属性就是该值的计算结果,默认使用欧氏距离作为度量方式。

随着聚类数 k 的增加,WCSS 会不断减小,但下降的幅度会逐渐趋缓。此时在曲线上出现“陡降 → 平缓”的拐点,即所谓的“肘部(Elbow)”,通常被视为最优聚类数

示意图理解

我们可以绘制如下图所示的折线图,x轴为聚类数 k,y轴为 SSE 值:

SSE│          ●│        ●│      ●│    ●│   ●└────────────────────► k1  2  3  4  5 ...↘ 肘部位置

从图中寻找“SSE 降低幅度明显变缓的点”,就是肘部位置。

⚠️ 注意:当数据聚类结构不明显或维度较高时,肘部可能难以辨识,后文将介绍自动检测方法和其他指标辅助。


🛠️ 二、Sklearn 实战:肘部法则选择聚类数

以下是完整的代码示例,我们使用 make_blobs 构造数据集,并通过肘部法则绘图选择合适的聚类数。

1. 导入必要库

import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

2. 构造数据集

http://www.lryc.cn/news/610159.html

相关文章:

  • 昇思学习营-模型推理和性能优化学习心得
  • MS-DOS 常用指令集
  • 【清除pip缓存】Windows上AppData\Local\pip\cache内容
  • 我的世界进阶模组开发教程——附魔(2)
  • (二)软件工程
  • 论文阅读笔记:《Dataset Distillation by Matching Training Trajectories》
  • 在CentOS 7上安装配置MySQL 8.0完整指南
  • PyTorch :三角函数与特殊运算
  • MFC-Ribbbon-图标-PS
  • 【秋招笔试】2025.08.03虾皮秋招笔试-第二题
  • 蜜汁整体二分——区间 kth
  • Next.js 中的文件路由:工作原理
  • 秋招笔记-8.4
  • 软件需求关闭前的质量评估标准是什么
  • Java项目:基于SSM框架实现的商铺租赁管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告+任务书+远程部署】
  • 优化 Unity ConstantForce2D 性能的简单方法【资料】
  • 2025年08月04日Github流行趋势
  • 无偿分享120套开源数据可视化大屏H5模板
  • WSL安装Ubuntu与Docker环境,比VMware香
  • Flutter 对 Windows 不同版本的支持及 flutter_tts 兼容性指南
  • 离线Docker项目移植全攻略
  • Oracle 在线重定义
  • [GYCTF2020]FlaskApp
  • 【编程实践】点云曲率计算与可视化
  • 八股——Kafka相关
  • 【Pytorch✨】LSTM04 l理解长期记忆和短期记忆
  • 第12届蓝桥杯Scratch_选拔赛_初级组_真题2020年8月23日
  • 神经网络---非线性激活
  • C++进阶-封装红黑树模拟实现map和set(难度较高)
  • 李沐写作笔记