用人话讲明白聚类算法kmeans

K-means聚类分析 1.K-means的原理 1.1聚类分析的基本思想 先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是以下任何一个: (1) 没有(或最小数目)对象被重新分配给不同的聚类。 (2)没有(或最小数目)聚类中心再发生变化。 (3)误差平方和局部最小。 1 阅读详情



1.什么是聚类

先来回顾一下本系列第一篇就讲到的机器学习的种类。

监督式学习:训练集有明确答案,监督学习就是寻找问题(又称输入、特征、自变量)与答案(又称输出、目标、因变量)之间关系的学习方式。监督学习模型有两类,分类和回归。

• 分类模型:目标变量是离散的分类型变量;
• 回归模型:目标变量是连续性数值型变量。

无监督学习:只有数据,无明确答案,即训练集没有标注目标变量。常见的无监督学习算法有聚类(clustering),由计算机自己找出规律,把有相似属性的样本放在一组,每个小组也称为簇(cluster)。

最早的聚类分析是在考古分类、昆虫分类研究中发展起来的,目的是找到隐藏于数据中客观存在的“自然小类”,“自然小类”具有类内结构相似、类间结构差异显著的特点,通过刻画“自然小类”可以发现数据中的规律、揭示数据的内在结构

之前一起学了回归算法中超级典型的线性回归,分类算法中非常难懂的SVM,这两都是有监督学习中的模型,那今天就来看看无监督学习中最最基础的聚类算法——K-Means Cluster吧。


2.K-Means步骤

K-Means聚类步骤是一个循环迭代的算法,非常简单易懂:

  1. 假定我们要对N个样本观测做聚类,要求聚为K类,首先选择K个点作为初始中心点
  2. 接下来,按照距离初始中心点最小的原则,把所有观测分到各中心点所在的类中;
  3. 每类中有若干个观测,计算K个类中所有样本点的均值,作为第二次迭代的K个中心点;
  4. 然后根据这个中心重复第2、3步,直到收敛(中心点不再改变或达到指定的迭代次数),聚类过程结束。

以二维平面中的点 X i = ( x i 1 , x i 2 ) , i = 1 , . . . , n X_{i}=(x_{i1},x_{i2}),i=1,...,n Xi=(xi1,xi2),i=1,...,n为例,用图片展示K=2时的迭代过程:

  1. 现在我们要将(a)图中的n个绿色点聚为2类,先随机选择蓝叉和红叉分别作为初始中心点;
  2. 分别计算所有点到初始蓝叉和初始红叉的距离, X i = ( x i 1 , x i 2 ) X_{i}=(x_{i1},x_{i2}) Xi=(xi1,xi2)距离蓝叉更近就涂为蓝色,距离红叉更近就涂为红色,遍历所有点,直到全部都染色完成,如图(b);
  3. 现在我们不管初始蓝叉和初始红叉了,对于已染色的红色点计算其红色中心,蓝色点亦然,得到第二次迭代的中心,如图(c );
  4. 重复第2、3步,直到收敛,聚类过程结束。

怎么样,很简单吧?看完K-Means算法步骤的文字描述,我们可能会有以下疑问:

  1. 第一步中的初始中心点怎么确定?随便选吗?不同的初始点得到的最终聚类结果也不同吗?
  2. 第二步中点之间的距离用什么来定义?
  3. 第三步中的所有点的均值(新的中心点)怎么算?
  4. K怎么选择

3.K-Means的数学描述

我们先解答第2个和第3个问题,其他两个问题放到后面小节中再说。

聚类是把相似的物体聚在一起,这个相似度(或称距离)是用什么来度量的呢?这又得提到我们的老朋友——欧氏距离

给定两个样本 X = ( x 1 , x 2 , . . . , x n ) X=(x_{1},x_{2},...,x_{n}) X=(x1,x2,...,xn) Y = ( y 1 , y 2 , . . . , y n ) Y=(y_{1},y_{2},...,y_{n}) Y=(y1,y2,...,yn),其中n表示特征数 ,X和Y两个向量间的欧氏距离(Euclidean Distance)表示为:
d i s t e d ( X , Y ) = ∣ ∣ X − Y ∣ ∣ 2 = ( x 1 − y 1 ) 2 + . . . + ( x n − y n ) 2 2 dist_{ed}(X,Y)=||X-Y||_{2}=\sqrt[2]{(x_{1}-y_{1})^{2}+...+(x_{n}-y_{n})^{2}} di

K-means聚类模型(超详细,含案例代码) K-means是一种常用的聚类算法,用于将数据集中的观测点分为不同的群组或簇。聚类是一种无监督学习方法,其目标是发现数据中隐藏的结构,将相似的数据点划分为同一组,同时将不相似的数据点划分为不同的组。 阅读详情

相关推荐

kmeans聚类练习

聚类算法,不是分类算法。 分类算法是给一个数据,然后判断这个数据属于已分好的类中的具体哪一类。 聚类算法是给一大堆原始数据,然后通过算法将其中具有相似特征的数据聚为一类。 这里的k-means聚类,是事先给出原始数据所含的类数,然后将含有相似特征的数据聚为一个类中。 所有资料中还是Andrew Ng介绍的明白。 首先给出原始数据{x1,x2,...,xn},这些数据没

fandoudou123的专栏 5941

机器学习——K-Means聚类

K-Means 算法是一种无监督的聚类算法,其核心思想是:对于给定的样本集,按照样本点之间的距离大小,将样本集划分为K个簇,并让簇内的点尽量紧凑,簇间的点尽量分开算法流程图如下:K-Means算法流程如图,以为例:我们需要将图(a) 中的样本点划分为两类,则K-means聚类过程如下:第 1 步:从M个数据对象中任意选择2个对象作为初始聚类中心,如图(b) 所示。

T940842933的博客 1万+

经典聚类算法——Kmeans详解

一、什么是聚类Clustering (聚类)是常见的unsupervised learning (无监督学习)方法。聚类的目的就是将大量数据中具有”相似”特征的数据或样本划分到同一个类别中。聚类模型建立在无类别标记的数据上,需要实现的目标只是把相似的样本聚到一起,即只是利用样本数据本身的分布规律。聚类模型会根据数据自身间的”距离”或”相似度”将他们划分成若干组,划分的基本原则就是使组内样本间距离最小化而组间距离最大化。常用的聚类算法如下:二、kmeans算法基本原理kmeans算法又称k均值算法,是最常用的

白话机器学习 1万+

聚类分析算法——K-means聚类 详解

K-means 是一种简单、快速的聚类算法,广泛应用于数据聚类任务。通过反复优化簇中心位置,K-means 不断收敛并找到数据的聚类结构。然而,它对初始条件敏感,对簇形状有限制,适合于球形且均匀分布的簇。在实际应用中,可通过结合 K-means++、肘部法和轮廓系数等手段改进其效果。

goTsHgo的博客 10万+

kmeans算法_KMeans聚类算法详解

1. 写在前面如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,常见的机器学习算法:监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Adaboost等无监督算法聚类,降维,关联规则, PageRank等为了详细的理解这些原理,曾经看过西瓜书,统计学习方法,机器学习实战等书,也听过一些机器学习的课程,但总感觉语里比较深奥,读起...

weixin_39824223的博客 5192

kmeans聚类算法_聚类算法Kmeans

本篇大纲:1、背景知识:一些常见的距离度量/相似度计算方式2、聚类算法Kmeans3、kmeans优缺点及其改进4、kmeans的简单代码实现上上期回顾1、我们先做了基本铺垫,对于最值求解问题进行三种类别划分,包括无约束问题,等式约束问题和不等式约束问题,并简单阐述对应的求解方式。2、我们从感知器出发,简单阐述其二分类原理,从而明白SVM是从何算法改进而来。3、我们从svm的两个核心目...

weixin_39857513的博客 2996

sklearn kmeans 聚类中心_Kmeans聚类算法

1 引例经过前面一些列的介绍,我们已经接触到了多种回归和分类算法。并且这些算法有一个共同的特点,那就是它们都是有监督的(supervised)学习任务。接下来,笔者就开始向大家介绍一种无监督的(unsupervised) 经典机器学习算法——聚类。同时,由于笔者仅仅只是对Kmeans框架下的聚类算法较为熟悉,因此在后续的几篇文章中笔者将只会介绍Kmeans框架下的聚类算法,包括:Kmea...

weixin_39997695的博客 4617

简单的聚类算法——KMeans代码

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着工智能的不断发展,机器学习这门技术也越来越重要,很多都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码

qq_39451645的博客 2856

从零开始实现Kmeans聚类算法

声明:版权所有,转载请联系作者并注明出处: http://blog.csdn.net/u013719780?viewmode=contents知乎专栏: https://www.zhihu.com/people/feng-xue-ye-gui-zi本系列文章的所有源代码都将会开源,需要源代码的小伙伴可以去我的 Github fork!1. Kmeans聚类算法简介由于具有出色的速度和良好的可扩展性,

风雪夜归子 7万+

kmeans聚类算法python

kmeans聚类算法python

隔壁王叔的博客 1673

kmeans算法_实战 | KMeans 聚类算法

1. 写在前面如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,常见的机器学习算法:监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Adaboost等无监督算法聚类,降维,关联规则, PageRank等为了详细的理解这些原理,曾经看过西瓜书,统计学习方法,机器学习实战等书,也听过一些机器学习的课程,但总感觉语里比较深奥,读起...

weixin_39904268的博客 714

机器学习算法之K-means(K均值聚类算法

聚类 聚类,简单来说,就是将一个庞杂数据集中具有相似特征的数据自动归类到一起,称为一个簇,簇内的对象越相似,聚类的效果越好。它是一种无监督的学习(Unsupervised Learning)方法,不需要预先标注好的训练集。聚类与分类最大的区别就是分类的目标事先已知,例如猫狗识别,你在分类之前已经预先知道要将它分为猫、狗两个种类;而在你聚类之前,你对你的目标是未知的,同样以动物为例,对于一个动物集来...

tttaeyang的博客 8825

K-Means聚类算法

什么是聚类分析聚类分析是数据挖掘中一个重要概念,其核心是寻找数据对象中隐藏的有价值的信息,根据相似性原则,把具有较高相似度的数据对象划分到同一类簇,把具有较高相异度的数据对象划分到不同类簇,从而使相同组中的数据点之间比其他组中的数据点更具有相似性。聚类算法典型的聚类算法分为三个阶段,主要包括特征选择和特征提取、数据对象间相似度计算以及根据相似度将数据对象分组。聚类算法可以分为两大类:层次聚类算法和划分聚类算法。层次聚类算法通过不同类别间的数据对象的相似度试图构建一个高层次的嵌套聚类树结构,聚类树的构建有两种

软件工程小施同学 的专栏 6万+

机器学习之K-Means(k均值)算法

K-Means算法又称K均值算法,属于聚类(clustering)算法的一种,是应用最广泛的聚类算法之一。所谓聚类,即根据相似性原则,将具有较高相似度的数据对象划分至同一类簇,将具有较高相异度的数据对象划分至不同类簇。聚类与分类最大的区别在于,聚类过程为无监督过程,即待处理数据对象没有任何先验知识,而分类过程为有监督过程,即存在有先验知识的训练数据集。K-Means是无监督学习的杰出代表之一。

十年以上架构设计经验,专注于软件架构和人工智能领域,对机器视觉、NLP、音视频等领域都有涉猎 2万+

机器学习】全面解析Kmeans聚类算法(Python)

一、聚类简介Clustering (聚类)是常见的unsupervised learning (无监督学习)方法,简单地说就是把相似的数据样本分到一组(簇),聚类的过程,我们并不清楚某一类...

fengdu78的博客 2万+

聚类】K-Means聚类(优缺点、手肘法、轮廓系数法、检测异常点、图像压缩,含代码实战)

K-Means聚类(优缺点、手肘法、轮廓系数法、检测异常点、图像压缩,含代码实战)

学无止境、积少成多、厚积薄发 1万+

机器学习》K-means 聚类 原理、参数解析、案例实现

K-means是一种常用的无监督学习算法,用于将数据集中的对象划分为k个不同的组或簇。该算法的目标是最小化每个数据点与所属簇的质心之间的平方欧氏距离之和。

wx_AHao1004Y的博客 8022
上一篇: 用人话讲明白支持向量机SVM(下)
下一篇: 用人话讲明白近邻算法KNN
化简可得
博客等级 码龄7年 104粉丝 14原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值