k-means简介

来源:互联网 发布:c语言中问号的用法 编辑:程序博客网 时间:2024/04/29 16:16
       

       将物理或抽象对象的集合组成为由类似的对象组成的多个类的过程被成为聚类。

        应用例子:数据挖掘和文本挖掘中对数据的清洗、过滤和分类

       k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。
       流程如下:
             输入:文档集合(数据对象)D、文档(或数据对象)距离(相似度)dist、聚类数目k
             输出:D的一个聚类,其中有k个分类,D中的所有文档(或数据对象)都在k个分类中
             1.从D中随机的选择k个对象作为初始聚类中心
             2.repeat
             3.计算每个对象到聚类中心的距离dist,拥有到某个聚类最近距离的对象被分配到该聚类
             4.重新计算每个聚类的聚类中心(该聚类中所有对象的均值)
             5.until 各个聚类的中心稳定
             6.return 返回每个聚类
      3个要点:
           *选定某种距离度量作为样本空间中对象的相似度量
           *确定某个评价聚类结果质量的准则函数
           *给定某个初始分类,然后用迭代算法找出使准则函数取极值的聚类结果
     两个主要关键:如何计算dist,k值的选取
     1. 计算dist:欧几里得距离、曼哈坦距离、明考斯基距离
     2.准则函数。误差平法和准则函数。

          分析误差平方和准则函数发现K一means算法是一个最优化求解问题,目标函数存在着许多局部极小点,只有一个是全局最小点。目标函数的搜索方向总是沿着误差平方和准则函数减小的方向进行。不同的初始值使得聚类中心向量V沿着不同的路径使目标函数减少。

    算法缺点:

           1.k值难以估计

           2.一旦初始值选择的不好,可能无法得到有效的聚类结果

           3.当数据量非常大时,算法的时间开销巨大

   改进方法之一:遗传算法的并行带来效率,同时可以为k值选取提供方法

          
                  
原创粉丝点击