【算法】K-Means聚类算法(k-平均或k-均值)
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-均值)的更多相关文章
- 数据挖掘十大算法--K-均值聚类算法
一.相异度计算 在正式讨论聚类前,我们要先弄清楚一个问题:怎样定量计算两个可比較元素间的相异度.用通俗的话说.相异度就是两个东西区别有多大.比如人类与章鱼的相异度明显大于人类与黑猩猩的相异度,这是能 ...
- 机器学习算法总结(五)——聚类算法(K-means,密度聚类,层次聚类)
本文介绍无监督学习算法,无监督学习是在样本的标签未知的情况下,根据样本的内在规律对样本进行分类,常见的无监督学习就是聚类算法. 在监督学习中我们常根据模型的误差来衡量模型的好坏,通过优化损失函数来改善 ...
- [聚类算法] K-means 算法
聚类 和 k-means简单概括. 聚类是一种 无监督学习 问题,它的目标就是基于 相似度 将相似的子集聚合在一起. k-means算法是聚类分析中使用最广泛的算法之一.它把n个对象根据它们的属性分为 ...
- mahout in Action2.2-聚类介绍-K-means聚类算法
聚类介绍 本章包含 1 实战操作了解聚类 2.了解相似性概念 3 使用mahout执行一个简单的聚类实例 4.用于聚类的各种不同的距离測算方法 作为人类,我们倾向于与志同道合的人合作-"鸟的 ...
- ISODATA聚类算法的matlab程序
ISODATA聚类算法的matlab程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 参考:Kmeans及ISODATA算法的matlab实现 算法 ...
- mean shift聚类算法的MATLAB程序
mean shift聚类算法的MATLAB程序 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. mean shift 简介 mean shift, 写的 ...
- 转载 | Python AI 教学│k-means聚类算法及应用
关注我们的公众号哦!获取更多精彩哦! 1.问题导入 假如有这样一种情况,在一天你想去某个城市旅游,这个城市里你想去的有70个地方,现在你只有每一个地方的地址,这个地址列表很长,有70个位置.事先肯定要 ...
- 【Python机器学习实战】聚类算法(1)——K-Means聚类
实战部分主要针对某一具体算法对其原理进行较为详细的介绍,然后进行简单地实现(可能对算法性能考虑欠缺),这一部分主要介绍一些常见的一些聚类算法. K-means聚类算法 0.聚类算法算法简介 聚类算法算 ...
- Kmeans聚类算法原理与实现
Kmeans聚类算法 1 Kmeans聚类算法的基本原理 K-means算法是最为经典的基于划分的聚类方法,是十大经典数据挖掘算法之一.K-means算法的基本思想是:以空间中k个点为中心进行聚类,对 ...
随机推荐
- T-SQL查询进阶--SQL Server中的事务与锁
为什么需要锁 在任何多用户的数据库中,必须有一套用于数据修改的一致的规则,当两个不同的进程试图同时修改同一份数据时,数据库管理系统(DBMS)负责解决它们之间潜在的冲突.任何关系数据库必须支持事务的A ...
- 二、搭建SpringBoot项目
与其说是搭建,还不如说去下载...(注意,在此之前要确保你的3000块钱的笔记本上安装了JDK8+已经最新的相对较新的maven:apache-maven-3.6.0,至于JDK以及maven的相关安 ...
- NSData 数据
前言 NSData 和它的可变长子类 NSMutableData 是字节缓冲区的对象化封装.我们可以获得简单缓冲区,并进行一些转换操作. 通常我们并不会直接创建字节数据,而是从其他类型的内容转换成字节 ...
- 解决git一直输入用户名和密码的问题
git config --system --unset credential.helper,在git中输入此命令后,每次拉去代码需要重新输入用户名和密码,可以使用git config --global ...
- 前端中onload与ready的区别
Jquery的ready()与Javascrpit的load() 1 window.onload() $(document).ready() 加载时机 必须等待网页全部加载完毕(包括图片等),然后再执 ...
- nginx公网IP无法访问浏览器
配置服务器时候发现的问题,真的是搜肠刮肚的找答案,找一下午,终于找到了答案. 一.开始找原因 在浏览器输入:http://ip,正常的话,会有页面,welcome to nginx 我这里是浏览器访问 ...
- pycharm 2016 注册(pycharm-professional-2016.3.2)
BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...
- nginx关闭默认站点/空主机头(禁止IP直接访问、防止域名恶意解析)
监控时做了负载均衡,所以只能让nginx指定域名访问,那我们就可以防止因为域名不对跳到默认的页面去. curl -I -H “host:域名” --include https://19 ...
- IIS 配置 url 重写...
<?xml version="1.0"?> <configuration> <system.webServer> <rewrite> ...
- vue 遇到的一个问题......
当我用 @tap 或者 @click 触发 ajax事件时,返回的结果会非常慢--- 我也不清楚为啥会这样....(仅仅在chrome下会这样--- 所以 我用 touchend 方法替代了 该方法. ...