聚类分析|k-means聚类方法及其Python实现

本文详细介绍了k-means聚类算法的工作原理,包括其如何通过迭代划分数据集,以及如何通过计算样本与簇中心的距离来优化聚类。此外,还展示了如何在Python中使用sklearn库实现k-means算法,以对鸢尾花数据进行聚类分析。

0. k-means算法简介

k-means算法由MacQueen在1967年提出。是一种经典的基于划分的聚类方法。

划分方法(Partitioning Method)是基于距离判断样本相似度,通过不断迭代将含有多个样本的数据集划分成若干个簇,使每个样本都属于且只属于一个簇,同时聚类簇的总数小于样本总数目。

该方法需要事先给定聚类数以及初始聚类中心,通过迭代的方式使得样本与各自所属类别的簇中心的距离平方和最小,聚类效果很大程度取决于初始簇中心的选择。
K-means算法接受输入量k,然后将n个数据样本的样本集D划分为k个簇以便使所获得的聚类满足:
(1)同一簇中的数据样本相似度较高,而不同簇中的数据样本相似度较小。
(2)聚类相似度是利用各簇中数据样本的均值所获得一个“簇中心”(引力中心)来进行计算的。

1. k-means算法工作原理

  1. 数据样本分类
    从D中任意选择k个数据样本作为初始簇中心。对于所剩下其它数据样本,则根据它们与这些簇中心的相似度(距离),分别将它们分配给与其最相似的簇中心所代表的簇。
  2. 簇中心的调整
    计算每个所获新簇的簇中心(该簇中所有数据样本的均值)
  3. 不断重复这一过程直到标准测度函数开始收敛为止
    一般标准测度函数都采用均方差。
    假设待聚类的数据样本集 D D D ,将其划分为 k k k 个簇,簇 C C C的中心为 Z Z Z,定义准则函数 E E E:
    E = ∑ i = 1 k ∑ D i s ∈ C i D i s 2 ( Z i , D i s ) E=\sum^{k}_{i=1}\sum_{D_{is}\in C_i} Dis^2(Z_i,D_{is}) E=i=1kD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

皖山文武

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

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

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

打赏作者

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

抵扣说明:

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

余额充值