机器学习(9)-- 聚类-cluster

聚类算法

聚类算法是一种非监督学习算法,根据数据集的分布特征,将其聚集为相互比较近的多个集合,集合的数量通常指定。

经典算法 k-means

k-means是经典的聚类算法,其算法流程如下:

  1. 随机或者有区分的选取k个点作为k个种类的中心
  2. 分别计算所有点到每个中心的距离,并将其归入最近的类
  3. 再次计算每个类中所有点的平均中心
  4. 将每个类的中心位置更新,重复2,3直到每个点的所属类不在变化,或者达到设定的条件
    例如下图:
    聚类
    从左到右依次给点编号为1,2,3,4,最开始选取1,2为两类的中心,则计算的
    第一类:1
    第二类:2,3,4
    从新计算第二类的中心,由于其有三个点,其平均位置向右上方移动,第二个点离中心边远。因此第二次计算后分类为
    第一类:1,2
    第二类:3,4
    从新计算中心,每个点的所属类都不在变化,算法结束

从上面可以看出,该算法相对简单,但是容易陷入局部最优,对于初始的每个类的中心的选择具有比较大的依赖

hierarchical cluster算法,层次聚类

算法流程:
共计k个点

  1. 对所有的数据点,每个点当做一个类,依次计算其量量之间的距离
  2. 将相邻最近的类归为一类,总类数减少为k-1
  3. 持续进行上述过程,直到达到结束标准
    算法特点:
  • 对于不知道预先有几个类的情况有比较好的表现
  • 两个类之间的距离的计算有多种方法,
    • 计算两个类中最近两个点的距离,容易让两个近点将离得很远的点聚合到一起
    • 计算两个类中最远两个点的距离,容易让两个本来应该聚合的类因为特殊点很难聚合
    • 两辆求距离获得平均值。

猜你喜欢

转载自blog.csdn.net/qq_38876114/article/details/94720283