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
 │          ●
 │        ●
 │      ●
 │    ●
 │   ●
 └────────────────────► k
     1  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. 构造数据集

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thomas Kant

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值