1.聚类算法和分类算法的区别

a)分类

分类(Categorization or Classification)就是按照某种标准给对象贴标签(label),再根据标签来区分归类。

举例:

假如你有一堆动物的头像图片样本,想把它们进行分类,分成:猫,狗,鱼等。当在有新的动物图片进来之后,能够自动的识别出属于哪一类,这就是分类,而猫,狗,鱼等就是标签

b)聚类

聚类是指事先没有“标签”而通过某种成团分析找出事物之间存在聚集性原因的过程。聚类是在没有划分类别的情况下,根据数据相似度进行样本分组的一种方法。

与分类模型需要使用有类标记样本构成的训练数据不同,聚类模型可以建立在无类标记的数据上,是一种非监督的学习算法。

举例:

假如你有一堆数据样本,想把这些数据分类,但是你也不知道怎么分,你只知道要分3类,4类或者其他更多。这时候就等于是把一堆零散的样本聚成几类。

c)总结:分类和聚类最大的区别就是有无标签。

2.K-means属于聚类算法

假设你有X1——Xi个样本,想把它们分成Uk个中心

算法的步骤:

a).随机的选择U1---Uk个中心,用样本Xi去减分别减这个中心值,得到距离类别中心最近的类别,归为同一个簇。
b).将这个簇的中心值归为这个簇的所有样本的平均值,重新执行第一步。
c).不断进行迭代,也就是不断的执行a)和b)两步,直到类别中心小于某个阈值也就是终止条件。

这些终止条件可以是:1)迭代次数; 2)簇中心变化率 ;3)最小平方误差

3.注意事项:

a).K-means算法是初始敏感的

如下图:在初始选择簇类点时,对后面的聚类影响很大,下面初始选择4个红点作为簇类中心,结果就变成了右边这种情况了。并不是我们想要分成的四类

解决办法:聚类完之后计算一下簇的均方误差,如果某一个簇的均方误差特别大,就可以判断这个簇聚的不对,初值选的不行,把簇中心比较近的合成一类,重新再聚一遍

这种叫做二分K-Means聚类

b)异常点处理

K—Means算法是将簇中所有的均值作为质心,若簇中含有异常点,将导致均值偏离严重。

例如:当有一个数组:1,2,3,4,100的均值是22,显然距离大多数数据比较远

解决办法:该取中位数3为比较稳妥。这种取中位数的为簇中心的算法叫K-Mediods聚类

4.总结:

虽然有以下缺点:

a)不适合于发现非凸形状的簇或者大小差别很大的簇

b)对噪声和孤立点数据敏感

但是,K-Means聚类算法可以作为其他聚类算法的基础

【算法】K-Means聚类算法(k-平均或k-均值)的更多相关文章

  1. 数据挖掘十大算法--K-均值聚类算法

    一.相异度计算  在正式讨论聚类前,我们要先弄清楚一个问题:怎样定量计算两个可比較元素间的相异度.用通俗的话说.相异度就是两个东西区别有多大.比如人类与章鱼的相异度明显大于人类与黑猩猩的相异度,这是能 ...

  2. 机器学习算法总结(五)——聚类算法(K-means,密度聚类,层次聚类)

    本文介绍无监督学习算法,无监督学习是在样本的标签未知的情况下,根据样本的内在规律对样本进行分类,常见的无监督学习就是聚类算法. 在监督学习中我们常根据模型的误差来衡量模型的好坏,通过优化损失函数来改善 ...

  3. [聚类算法] K-means 算法

    聚类 和 k-means简单概括. 聚类是一种 无监督学习 问题,它的目标就是基于 相似度 将相似的子集聚合在一起. k-means算法是聚类分析中使用最广泛的算法之一.它把n个对象根据它们的属性分为 ...

  4. mahout in Action2.2-聚类介绍-K-means聚类算法

    聚类介绍 本章包含 1 实战操作了解聚类 2.了解相似性概念 3 使用mahout执行一个简单的聚类实例 4.用于聚类的各种不同的距离測算方法 作为人类,我们倾向于与志同道合的人合作-"鸟的 ...

  5. ISODATA聚类算法的matlab程序

    ISODATA聚类算法的matlab程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 参考:Kmeans及ISODATA算法的matlab实现 算法 ...

  6. mean shift聚类算法的MATLAB程序

    mean shift聚类算法的MATLAB程序 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. mean shift 简介 mean shift, 写的 ...

  7. 转载 | Python AI 教学│k-means聚类算法及应用

    关注我们的公众号哦!获取更多精彩哦! 1.问题导入 假如有这样一种情况,在一天你想去某个城市旅游,这个城市里你想去的有70个地方,现在你只有每一个地方的地址,这个地址列表很长,有70个位置.事先肯定要 ...

  8. 【Python机器学习实战】聚类算法(1)——K-Means聚类

    实战部分主要针对某一具体算法对其原理进行较为详细的介绍,然后进行简单地实现(可能对算法性能考虑欠缺),这一部分主要介绍一些常见的一些聚类算法. K-means聚类算法 0.聚类算法算法简介 聚类算法算 ...

  9. Kmeans聚类算法原理与实现

    Kmeans聚类算法 1 Kmeans聚类算法的基本原理 K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一.K-means算法的基本思想是:以空间中k个点为中心进行聚类,对 ...

随机推荐

  1. T-SQL查询进阶--SQL Server中的事务与锁

    为什么需要锁 在任何多用户的数据库中,必须有一套用于数据修改的一致的规则,当两个不同的进程试图同时修改同一份数据时,数据库管理系统(DBMS)负责解决它们之间潜在的冲突.任何关系数据库必须支持事务的A ...

  2. 二、搭建SpringBoot项目

    与其说是搭建,还不如说去下载...(注意,在此之前要确保你的3000块钱的笔记本上安装了JDK8+已经最新的相对较新的maven:apache-maven-3.6.0,至于JDK以及maven的相关安 ...

  3. NSData 数据

    前言 NSData 和它的可变长子类 NSMutableData 是字节缓冲区的对象化封装.我们可以获得简单缓冲区,并进行一些转换操作. 通常我们并不会直接创建字节数据,而是从其他类型的内容转换成字节 ...

  4. 解决git一直输入用户名和密码的问题

    git config --system --unset credential.helper,在git中输入此命令后,每次拉去代码需要重新输入用户名和密码,可以使用git config --global ...

  5. 前端中onload与ready的区别

    Jquery的ready()与Javascrpit的load() 1 window.onload() $(document).ready() 加载时机 必须等待网页全部加载完毕(包括图片等),然后再执 ...

  6. nginx公网IP无法访问浏览器

    配置服务器时候发现的问题,真的是搜肠刮肚的找答案,找一下午,终于找到了答案. 一.开始找原因 在浏览器输入:http://ip,正常的话,会有页面,welcome to nginx 我这里是浏览器访问 ...

  7. pycharm 2016 注册(pycharm-professional-2016.3.2)

    BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...

  8. nginx关闭默认站点/空主机头(禁止IP直接访问、防止域名恶意解析)

    监控时做了负载均衡,所以只能让nginx指定域名访问,那我们就可以防止因为域名不对跳到默认的页面去. curl  -I   -H  “host:域名”   --include   https://19 ...

  9. IIS 配置 url 重写...

    <?xml version="1.0"?> <configuration> <system.webServer> <rewrite> ...

  10. vue 遇到的一个问题......

    当我用 @tap 或者 @click 触发 ajax事件时,返回的结果会非常慢--- 我也不清楚为啥会这样....(仅仅在chrome下会这样--- 所以 我用 touchend 方法替代了 该方法. ...