本章开始讲无监督学习,与有监督学习最大的区别是目标变量事前不存在。

本章是K-均值聚类算法。聚类是一种无监督的学习,它将相似的对象归到同一个簇中,将不相似对象归到不同簇。有点像全自动分类。聚类有时也被称为无监督分类,其产生的结果与分类相同,只是类别没有预先定义。聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好。

K-均值聚类(K-means)算法是指将数据集分成k个不同的簇,且每个簇的中心采用簇中所含值的均值计算而成。

一、K-均值算法

1)首先,用户确定簇个数k(计划将数据划分为k个类);

2)随机确定k个初始点作为质心(在数据边界范围之内随机选取);

3)对每个数据实例依次计算到k个质心的距离,选择最小距离的质心,并将其分配给该质心所对应的簇,直到数据集中的所有数据全都分配给k个簇,更新k个簇的质心为该簇所有点的平均值;

4)循环上述步骤3),重新分配每个数据实例到新的质心,直到所有数据的分配结果不再发生改变为止。

二、使用后处理来提高聚类性能

       K-均值算法的缺点:K-均值聚类中,簇的数目k是用户预先定义的参数,但是用户并不知道如何选择k才是正确的,生成的簇才是最好的。K-均值算法有时候的簇分配结果值没有那么准确,K-均值算法收敛但聚类效果较差的原因是,K-均值算法收敛到了局部最小值,而非全局最小值(局部最小值指结果还可以但并非最好结果,全局最小值是可能的最好结果)。

       度量聚类效果指标:一种度量聚类效果的指标是SSE(Sum of Squared Error,误差平方和)。SSE值越小表示数据点越接近于它们的质心,聚类效果也越好。因为对误差取了平方,因此更重视那些远离中心的点。一种肯定可以降低SSE值的方法是增加簇的个数,但是这违背了聚类的目标。聚类的目标是在保持簇数目不变的情况下提高簇的质量。

       K-均值的改进:对生成的簇进行后处理。一种方法是将具有最大SSE值的簇划分为两个簇。具体实现可以是将最大簇包含的点过滤出来并在这些点上运行K=2的K-均值算法。为了保持簇的总数不变,另一种后处理方法是可以再将某两个簇进行合并。具体实现可以合并最近的质心;或者合并两个使得SSE增幅最小的质心。

三、二分K-均值算法

二分K-均值算法是对K-均值算法的改进,针对K-均值算法收敛于局部最小值而非全局最小值的问题,提出了二分K-均值算法(bisecting K-means)。

       该算法思想是:首先将所有点看作一个簇,然后将该簇一分为二;之后再选择一个划分后可以降低SSE值的簇进行划分;直到划分的簇数目达到指定数k为止。

算法步骤

1)确定簇数目k;

2)将所有数据点看作一个簇;

3)当簇数目小于k时,进入循环,对每一个簇尝试k=2的K-Means聚类;

4)具体循环:首先设置SSE为无穷大,对当前所有簇进行K-均值聚类(k=2),计算每个簇一分为二划分后的总体误差(包含划分的簇和未划分簇的总SSE)。每一轮循环结束后,选择总体误差最小的那个簇进行K-均值聚类(k=2)。

5)调整所有簇的编号和质心。一分为二的簇变成两个新的簇,其中一个编号占用原来的,另一个编号变为簇个数(len(簇),末尾加了一个)。质心也由原来的一个变成两个,一个替换被划分的原来的簇的质心,另一个质心追加到列表最后。

6)重复步骤3)4)5),直到簇数目大于等于k为止。

四、小结

聚类是一种无监督学习方法,所谓无监督学习是指事先并不知道要寻找的内容,即没有目标变量。聚类将数据点归到多个簇中,其中相似数据点处于同一簇,而不相似数据点处于不同簇中。聚类中可以使用多种不同的方法来计算相似度。

K-均值算法是一种广泛使用的聚类算法,K-均值算法简单有效但是也容易受到初始簇质心的影响。为了获得更好的聚类效果,可以使用二分K-均值的聚类算法,其聚类效果要好于K-均值算法。

除了K-均值算法及变形的K-均值算法外,被称为层次聚类的方法也被广泛使用。

K-均值聚类算法通俗讲解相关推荐

  1. K均值聚类算法(Kmeans)讲解及源码实现

    K均值聚类算法(Kmeans)讲解及源码实现 算法核心 K均值聚类的核心目标是将给定的数据集划分成K个簇,并给出每个数据对应的簇中心点.算法的具体步骤描述如下. 数据预处理,如归一化.离群点处理等. ...

  2. K-means(K均值聚类算法)算法笔记

    K-means(K均值聚类算法)算法笔记 K-means 算法,是比较简单的无监督的算法,通过设定好初始的类别k,然后不断循环迭代,将给定的数据自动分为K个类别.事实上,大家都知道K-means是怎么 ...

  3. 计算机视觉面试考点(14)K均值聚类算法(K-Means)

    计算机视觉工程师在面试过程中主要考察三个内容:图像处理.机器学习.深度学习.然而,各类资料纷繁复杂,或是简单的知识点罗列,或是有着详细数学推导令人望而生畏的大部头.为了督促自己学习,也为了方便后人,决 ...

  4. 【模式识别】K均值聚类算法应用实验报告及MATLAB仿真

    一. 实验目的 1.掌握K均值聚类算法的原理和实现过程: 2.掌握K均值聚类算法的应用方法. 二. 实验内容 1.彩色图像分割 选择一幅图像,分别按三种颜色数进行彩色图像分割的结果(原图和分割图).步 ...

  5. k均值聚类算法优缺点_Grasshopper实现K均值聚类算法

    本文很长很长,有很多很多图,包含以下部分: 1.算法简介 2.如何分类平面点 3.如何分类空间点 4.如何分类多维数据 5.后记 提醒:以下内容包括:智障操作,无中生友,重复造轮子 等 1.算法简介 ...

  6. K-Means(K均值聚类算法)

    K-Means(K均值聚类算法) 1.前言 要学习聚类算法就要知道聚类学习算法是什么,为什么要学习聚类学习聚类学习算法,有什么用途,下面就简单的做一下介绍,并且详细的说明k-means均值聚类学习算法 ...

  7. K均值聚类算法(HCM,K-Means)

    K均值聚类核心思想如下: 算法把n个向量分为个组,并求每组的聚类中心,使得非相似性(或距离)指标的价值函数(或目标函数)达到最小.当选择欧几里德距离为组j中向量与相应聚类中心间的非相似性指标时,价值函 ...

  8. k均值聚类算法python_K均值和其他聚类算法:Python快速入门

    k均值聚类算法python This post was originally published here 这篇文章最初发表在这里 Clustering is the grouping of obje ...

  9. python(scikit-learn)实现k均值聚类算法

    k均值聚类算法原理详解 示例为链接中的例题 直接调用python机器学习的库scikit-learn中k均值算法的相关方法 from sklearn.cluster import KMeans imp ...

  10. 机器学习之无监督学习-K均值聚类算法

    机器学习之无监督学习-K均值聚类算法 对于无监督学习,有两类重要的应用,一个是聚类,一个是降维.我们今天主要学习聚类中的K均值聚类. 我们先看看下图,图a为原始的数据点,我们想要对图a的数据点进行分类 ...

最新文章

  1. 基于PyGame的乒乓球和滑雪小游戏
  2. java中缀表达式转后缀表达式_数据结构Java实现06----中缀表达式转换为后缀表达式...
  3. PPC中检查某程序是否运行
  4. php程序中用户名含特殊字符怎么办,php中包含ñ等特殊字符
  5. unity and MySql
  6. 在CodeBlocks上配置OpenGL问题
  7. Spring和Junit整合
  8. Linux利用PROMPT_COMMAND实现审计功能
  9. 企业税银数据深度分析(上)
  10. spark安装以及hive on spark和spark on hive 的配置
  11. 杜邦线改成焊线_做杜邦线(假)教程
  12. 论文阅读笔记:Neural Belief Tracker: Data-Driven Dialogue State Tracking
  13. u8转完看不到菜单_用友U8软件菜单和导航有功能不能正常显示,如何解决?
  14. Chrome浏览器谷歌翻译 失效/用不了的解决方法idea-翻译插件失败(TKK: 更新 TKK 失败,请检查网络连接)
  15. vmbox 导入虚拟电脑之后无法上网
  16. 2014,微信是糖,甜到忧伤
  17. 微信公众号图灵机器人开发php,使用图灵api创建微信聊天机器人
  18. 写一个矩阵相乘的函数
  19. 微信语音转文字的体验报告
  20. intel服务器芯片排行,【2021Intel服务器CPU排行榜】Intel服务器CPU哪款好_热门Intel服务器CPU推荐-太平洋产品报价...

热门文章

  1. 信安软考 第十四章 恶意代码防范技术原理
  2. 一款好看流光风格个人主页HTML源码
  3. Landsat5数据下载中国地区1990年
  4. PMP 考点 第七章 项目成本管理
  5. DIY无人机(匿名拓控者P2+F330机架)
  6. 来几个有趣的Linux指令 (转自Chinaitlab)
  7. 金蝶K3系统数据库群集部署方案
  8. 联想本win10 virtualbox 安装centos
  9. [SPDK/NVMe存储技术分析]015 - 理解内存注册(Memory Registration)
  10. rce远程执行 0day漏洞 复测