zoukankan      html  css  js  c++  java
  • 【聚类】 聚类之Kmeans基础

    一、相异度计算
     
     
        基于空间的距离
     
     
        1、欧几里得距离:
     
                
        2、曼哈顿距离:
        
                
        3、闵科夫斯基距离:
        
                
        
        (可见:欧氏距离和曼哈顿距离都是闵科夫斯基距离在P=1,2下的特例)
     
     
        标量规格化
     
        
        由于标量大小不一致导致对空间映射会同质化,所以需要对属性在[0,1]空间上映射,以来规格化。
     
        映射公式为:     (ai 是一个属性)
     
     
    二、二元变量
     
        
        二元变量就是只能取0、1 的变量。
     
        二元相异度计算公式: 取值不同的同位属性个数 所有属性个数
        
        例如:X={1,0,0,0,1,0,1,1},Y={0,0,0,1,1,1,1,1}。 二元相异度为 3/8
     
        非对称二元相异度计算公式:取值不同的同位属性个数 / 所有属性个数 - 值为0的同位属性个数 
     
        非对称二元相似度计算公式: 1 -  非对称二元相异度
     
        jaccard系数:非对称二元相似度
     
     
    三、分类变量
     
        
           是二元变量的扩展 只不过枚举种类个数为多个
     
            分类变量相异度计算公式:取值不同的同为属性个数 /  所有属性个数
     
     
    四、K均值聚类
     
            所谓聚类问题,就是给定一个元素集合D,其中每个元素具有n个可观察属性,使用某种算法将D划分成k个子集,要求每个子集内部的元素之间相异度尽可能低,而不同子集的元素相异度尽可能高。其中每个子集叫做一个簇。
     
     
        K-means聚类算法
     
           1、从D中随机取k个元素,作为k个簇的各自的中心。

          2、分别计算剩下的元素到k个簇中心的相异度,将这些元素分别划归到相异度最低的簇。

          3、根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均数。

          4、将D中全部元素按照新的中心重新聚类。

          5、重复第4步,直到聚类结果不再变化。

          6、将结果输出。

    五、MAHOUT中的分布式Kmeans算法实现

       稍后给出

  • 相关阅读:
    VS2010 自动跳过代码现象
    Reverse Linked List II 【纠结逆序!!!】
    Intersection of Two Linked Lists
    Linked List Cycle II
    Remove Nth Node From End of List 【另一个技巧,指针的指针】
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    Remove Duplicates from Sorted List
    Linked List Cycle
    Dungeon Game
  • 原文地址:https://www.cnblogs.com/lixusign/p/2550239.html
Copyright © 2011-2022 走看看