【原创】Kmeans算法 优缺点分析
原理简单(靠近中心点),实现容易(1、2 天),聚类效果中上(依赖K的选择)
缺点:
1. 无法确定K的个数 (根据什么指标确定K)
2. 对离群点敏感 (容易导致中心点偏移)
3. 算法复杂度不易控制 O(NKm), 迭代次数可能较多 (m可能会比较大)
4. 局部最优解而不是全局优 (这个和初始点选谁有关)
5. 结果不稳定 (受输入顺序影响)
6. 无法增量计算 (同5)
etc
各种改进版也是针对不同缺点的回避。
但每个问题又不是特别有普适性,所以我认为根据具体情况做出合适的改进会更好。
由于Kmeans实现简单,通过一定的数理知识回避相应的缺点也不是特别复杂,所以根据已有数据做针对性的修改更合适。
k-modes
k-centroids
etc.
未经博主允许,不能转载任何文章。
【原创】Kmeans算法 优缺点分析的更多相关文章
- 【计算机视觉】背景建模--Vibe 算法优缺点分析
一.Vibe 算法的优点 Vibe背景建模为运动目标检测研究邻域开拓了新思路,是一种新颖.快速及有效的运动目标检测算法.其优点有以下两点: 1.思想简单,易于实现.Vibe通常随机选取邻域20个样本为 ...
- 【原创】数据挖掘案例——ReliefF和K-means算法的医学应用
数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识.数据挖掘 (DataMiriing),指的是从大型数据库或数据仓库中提取人们感兴趣的知识,这些知识是隐含的.事先未知 ...
- 基于ReliefF和K-means算法的医学应用实例
基于ReliefF和K-means算法的医学应用实例 数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识.数据挖掘 (DataMiriing),指的是从大型数据库或数据 ...
- k-means算法之见解(一)
k-menas算法之见解 主要内容: 一.引言 二.k-means聚类算法 一.引言: 先说个K-means算法很高大上的用处,来开始新的算法学习.美国竞选总统,选票由公民投出,总统由大家决定.在20 ...
- 数据挖掘案例:基于 ReliefF和K-means算法的应用
数据挖掘案例:基于 ReliefF和K-means算法的应用 数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识.数据挖掘(DataMiriing),指的是从大型数据库 ...
- K-means算法的优缺点
K-means算法的优缺点 优点:原理简单,实现容易 缺点: 收敛较慢 算法时间复杂度比较高 \(O(nkt)\) 不能发现非凸形状的簇 需要事先确定超参数K 对噪声和离群点敏感 结果不一定是全局最优 ...
- 原创:Kmeans算法实战+改进(java实现)
kmeans算法的流程: EM思想很伟大,在处理含有隐式变量的机器学习算法中很有用.聚类算法包括kmeans,高斯混合聚类,快速迭代聚类等等,都离不开EM思想.在了解kmeans算法之前,有必要详 ...
- K-Means 聚类算法原理分析与代码实现
前言 在前面的文章中,涉及到的机器学习算法均为监督学习算法. 所谓监督学习,就是有训练过程的学习.再确切点,就是有 "分类标签集" 的学习. 现在开始,将进入到非监督学习领域.从经 ...
- 斯坦福机器学习实现与分析之八(kmeans算法)
Kmeans算法简介 作为无监督学习领域的一种简单的算法,Kmeans在实际应用中却是相当广泛的.其过程是通过不断交替迭代求得最优的类中心以及每个样本所属类别,具体步骤如下: 确定类别个数k 随机初始 ...
随机推荐
- Oracle中的IF...THEN...ELSE判断
if...then...else是最常见的一种判断语句,他可以实现判断两种情况. 标准语法如下: if <condition_expression> then plsql_sentence ...
- HotSpot Builder Utility安装指南
系统需求硬件- 一台带有1个以太网卡的电脑(宿主机)- 一个无线路由器 软件- VirtualBox 4.1或更高的版本.下载网址:http://www.virtualbox.org/- 我们提供的最 ...
- JAVA算术运算符、关系运算符和位运算符
算术运算符 1.java的算数运算符包括+(加).-(减).*(乘)./(除).%(取余),在运算过程中出现的隐式转换原则和C语言一样:2. 高位数据向低位数据转化要使用强制转化: 关系运算符 1.j ...
- iOS常见问题(5)
一.注意将之前storyboard中控制器删除之后,拖入一个新的控制器的时候,stroyboard中控制器的class也要重新填入自己想要展示的控制器,告诉stroyboard去加载哪个控制器. 二. ...
- backup site collection
http://stackoverflow.com/questions/5376380/sharepoint-2010-change-sitecollection-urlstsadm -o backup ...
- 日志文件切割服务logrotate配置及crontab定时任务的使用
1.下载logrotate 在Fedora和CentOS安装 yum install logrotate crontabs Debian和Ubuntu上 apt-get install logrota ...
- c#之委托和事件的区别
1.什么是委托,这里就不做介绍了,如果想了解可以查看博客:http://www.cnblogs.com/xiaoxiaogogo/p/3571494.html 下面开始对事件进行介绍 1.定义事件以及 ...
- 面试中问到SpringMVC与struts的区别
1.先简单的介绍一下SpringMVC 废话不多说,其实SpringMVC就是一个MVC的框架,SpringMVC它的annotation式的开发比struts 开发的方便很多,可以直接代替strut ...
- 深入浅出C++引用(Reference)类型
要点1:为反复使用的.冗长的变量名称定义一个简短的.易用的别名,从而简化了代码.通常,冗长的变量名称源于多层嵌套对象,例如类中定义嵌套类,类中定义其它类对象. //------ 未使用引用的程序片段, ...
- Graduate Summer School: Deep Learning, Feature Learning
http://www.ipam.ucla.edu/programs/summer-schools/graduate-summer-school-deep-learning-feature-learni ...