Sklearn 机器学习 数据聚类 KMeans实现聚类
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖
本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】
使用 Sklearn 实现 KMeans 聚类算法实战指南
聚类是一种无监督学习方法,广泛应用于客户分群、图像压缩、异常检测等任务中。
在本篇博文中,我们将通过 Sklearn 的 KMeans 方法,逐步完成一个聚类分析的完整流程,帮助你掌握实际应用技巧。
🧩 一、什么是聚类?
聚类(Clustering)是指将数据集划分为若干个组(簇,Cluster),使得同一组中的样本相似度更高,不同组之间的样本差异更大。
它是一种无监督学习方法,区别于分类,它不依赖于目标标签,只通过样本之间的特征相似度划分数据。
常见聚类算法包括:
- KMeans(重点讲解)
- DBSCAN
- 层次聚类(Hierarchical Clustering)
- GMM(Gaussian Mixture Model)
📐 二、KMeans 算法原理简述
KMeans(K均值聚类) 是最经典、使用最广泛的聚类算法之一,其核心思想是:
- 给定聚类簇数
K
; - 随机初始化
K
个聚类中心; - 分配:将每个样本划分到最近的聚类中心;
- 更新:重新计算每个聚类中心;
- 重复执行步骤 3 和 4,直到聚类中心收敛或达到迭代次数。
优点:
- 简单高效,适用于大规模数据;
- 可解释性强,易于可视化。
缺点:
- 需预先指定
K
; - 对异常值敏感;
- 只适用于凸形簇。
🛠️ 三、Sklearn 中使用 KMeans 聚类的步骤
我们以一组二维模拟数据为例,演示如何用 sklearn.cluster.KMeans
完成聚类操作。
导入必要库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
生成聚类样本数据
# 构造数据:3 个聚类中心,每个簇有 100 个点
X, y_true = make_blobs(n_samples=300, centers=3, cluster_std=0