当前位置:   article > 正文

k-modes聚类算法及python代码实现

k-mode

K-modes介绍

k-modes是聚类算法的一种,其主要用于处理离散型的数据,是用来解决k-means处理离散型数据问题的一个优化算法。

算法思想

假设有N个样本,要将其分为三类

  1. 从N个样本中随便选取三个样本作为聚类中心。
  2. 计算N个样本中每个样本到每个聚类中心的汉明距离
    a. 汉明距离:两个样本中相同属性但不同值的个数和,比如a = [1,2,3,4] b = [1,3,6,4] 这里汉明距离为2,因为a[1] !=b[1] a[2] != b[2]
  3. 将每个样本划分到距离最小的聚类中心,组成三个类别
  4. 重新选取聚类中心,每个簇中,每一个属性的众数,将组成新的聚类中心。
  5. 重复2,3,4步骤,直到每个簇中样本到本簇中心的汉明距离总和不在减少,那么聚类结束,得到的三个类别为结构

python代码实现

import numpy as np

if __name__ == '__main__':
    # kmodes思想:
    # 1.随机选取k个初始中心点;
    # 2.针对数据集中的每个样本点,计算样本点与k个中心点的距离(这边计算的是汉明距离,为两个样本点不同的属性取值的个数),将样本点划分到离它最近的中心点所对应的类别中;
    # 3.类别划分完成后,重新确定类别的中心点,将类别中所有样本各特征的众数作为新的中心点对应特征的取值,即该类
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/773354
推荐阅读
相关标签
  

闽ICP备14008679号