优点:
原理简单(靠近中心点),实现容易(1、2 天),聚类效果中上(依赖K的选择)

缺点:
1. 无法确定K的个数 (根据什么指标确定K)
2. 对离群点敏感 (容易导致中心点偏移)
3. 算法复杂度不易控制 O(NKm), 迭代次数可能较多 (m可能会比较大)
4. 局部最优解而不是全局优 (这个和初始点选谁有关)
5. 结果不稳定 (受输入顺序影响)
6. 无法增量计算 (同5)
etc

各种改进版也是针对不同缺点的回避。

但每个问题又不是特别有普适性,所以我认为根据具体情况做出合适的改进会更好。

由于Kmeans实现简单,通过一定的数理知识回避相应的缺点也不是特别复杂,所以根据已有数据做针对性的修改更合适。

 
改进版:
k-modes
k-centroids
etc. 
 
 

未经博主允许,不能转载任何文章。

【原创】Kmeans算法 优缺点分析的更多相关文章

  1. 【计算机视觉】背景建模--Vibe 算法优缺点分析

    一.Vibe 算法的优点 Vibe背景建模为运动目标检测研究邻域开拓了新思路,是一种新颖.快速及有效的运动目标检测算法.其优点有以下两点: 1.思想简单,易于实现.Vibe通常随机选取邻域20个样本为 ...

  2. 【原创】数据挖掘案例——ReliefF和K-means算法的医学应用

    数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识.数据挖掘 (DataMiriing),指的是从大型数据库或数据仓库中提取人们感兴趣的知识,这些知识是隐含的.事先未知 ...

  3. 基于ReliefF和K-means算法的医学应用实例

    基于ReliefF和K-means算法的医学应用实例 数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识.数据挖掘 (DataMiriing),指的是从大型数据库或数据 ...

  4. k-means算法之见解(一)

    k-menas算法之见解 主要内容: 一.引言 二.k-means聚类算法 一.引言: 先说个K-means算法很高大上的用处,来开始新的算法学习.美国竞选总统,选票由公民投出,总统由大家决定.在20 ...

  5. 数据挖掘案例:基于 ReliefF和K-means算法的应用

    数据挖掘案例:基于 ReliefF和K-means算法的应用 数据挖掘方法的提出,让人们有能力最终认识数据的真正价值,即蕴藏在数据中的信息和知识.数据挖掘(DataMiriing),指的是从大型数据库 ...

  6. K-means算法的优缺点

    K-means算法的优缺点 优点:原理简单,实现容易 缺点: 收敛较慢 算法时间复杂度比较高 \(O(nkt)\) 不能发现非凸形状的簇 需要事先确定超参数K 对噪声和离群点敏感 结果不一定是全局最优 ...

  7. 原创:Kmeans算法实战+改进(java实现)

    kmeans算法的流程:   EM思想很伟大,在处理含有隐式变量的机器学习算法中很有用.聚类算法包括kmeans,高斯混合聚类,快速迭代聚类等等,都离不开EM思想.在了解kmeans算法之前,有必要详 ...

  8. K-Means 聚类算法原理分析与代码实现

    前言 在前面的文章中,涉及到的机器学习算法均为监督学习算法. 所谓监督学习,就是有训练过程的学习.再确切点,就是有 "分类标签集" 的学习. 现在开始,将进入到非监督学习领域.从经 ...

  9. 斯坦福机器学习实现与分析之八(kmeans算法)

    Kmeans算法简介 作为无监督学习领域的一种简单的算法,Kmeans在实际应用中却是相当广泛的.其过程是通过不断交替迭代求得最优的类中心以及每个样本所属类别,具体步骤如下: 确定类别个数k 随机初始 ...

随机推荐

  1. linux c 打印彩色字符

    #include <stdio.h> #include <string.h> int main(int argc, char **argv) { , j = , str_len ...

  2. HTTP报文格式

    请求报文 <method><SP><uri><SP><version><CRLF> <head-name><: ...

  3. iOS的动画效果类型及实现方法

    实现iOS漂亮的动画效果主要有两种方法, 一种是UIView层面的, 一种是使用CATransition进行更低层次的控制, 第一种是UIView,UIView方式可能在低层也是使用CATransit ...

  4. yii2怎样写规则可以隐藏url地址里的控制器名字

    yii2怎样写规则可以隐藏url地址里的控制器名字,例如现在的是***.com/site/index.html要变成***.com/index.html '<action:index>.h ...

  5. 在后台直接调用sql

    表:FmCashStatistics EFContext db = new EFContext(); string strsql = "SELECT org_info_id,customer ...

  6. java collections

    http://www.docjar.com/docs/api/java/util/technotes/guides/collections/changes4.html http://www.docja ...

  7. ASP.NET Web – AJAX 回送

    使用UpdatePanel时要一起使用的控件是ScriptManager.ScriptManager类加载了包含几个功能的JavaScript函数.也可以使用这个类加载自己定制脚本.ScriptMan ...

  8. error: format not a string literal and no format arguments [-Werror=format-security]

    You can put this in your Application.mk to disable treating those warnings as errors: APP_CFLAGS += ...

  9. SQL Server 2008导出数据为SQL脚本的操作步骤

    以前我们要将一个表中的数据导出为脚本,那么只有在网上找一个导出数据的Script,然后运行就可以导出数据脚本了.现在在SQL Server 2008的Management Studio中增加了一个新特 ...

  10. 关于表 datatable的条件查询

    关于表 datatable的条件查询 从数据库中获得一个datatable dt .里面有很多的死的数据.然后,我就是要在这个表中来按条件查询,例如 dt中有个列叫"palte", ...