五、半监督聚类

  1. 聚类是一种典型的无监督学习任务,然而在现实聚类任务中,往往能够获取一些额外的监督信息。

    于是可以通过半监督聚类semi-supervised clustering来利用监督信息以获取更好的聚类效果。

  2. 聚类任务中获得的监督信息大致有两种类型:

    • 第一类是必连must-link与勿连cannot-link约束:

      • 必连:指样本必属于同一个簇。
      • 勿连:指样本必不属于同一个簇。
    • 第二类是:少量的有标记样本。

5.1 约束 k 均值算法

  1. 约束 五、半监督聚类 - 图1 均值算法Constrained-k-means 是利用第一类监督信息的代表。

  2. 给定样本集 五、半监督聚类 - 图2, 以及必连关系集合 五、半监督聚类 - 图3 和勿连关系集合 五、半监督聚类 - 图4 ,则:

    • 五、半监督聚类 - 图5 , 表示 五、半监督聚类 - 图6五、半监督聚类 - 图7 必属于同簇。
    • 五、半监督聚类 - 图8 , 表示 五、半监督聚类 - 图9五、半监督聚类 - 图10 必不属于同簇。

    约束 五、半监督聚类 - 图11 均值算法是 五、半监督聚类 - 图12 均值算法的扩展,它在聚类过程中要确保 五、半监督聚类 - 图13五、半监督聚类 - 图14 中的约束得以满足,否则将返回错误提示。

  3. 约束 五、半监督聚类 - 图15 均值算法:

    • 输入:

      • 五、半监督聚类 - 图16
      • 必连关系集合 五、半监督聚类 - 图17
      • 勿连关系集合 五、半监督聚类 - 图18
      • 聚类簇数 五、半监督聚类 - 图19
    • 输出:聚类簇划分 五、半监督聚类 - 图20

    • 算法步骤:

      • 五、半监督聚类 - 图21 中随机选取 五、半监督聚类 - 图22 个样本作为初始均值向量 五、半监督聚类 - 图23

      • 迭代:

        • 初始化每个簇 :五、半监督聚类 - 图24

        • 对每个样本 五、半监督聚类 - 图25, 执行下列操作:

          • 初始化可选的簇的集合为 五、半监督聚类 - 图26

          • 计算 五、半监督聚类 - 图27 与各均值向量的距离 五、半监督聚类 - 图28

          • 找出 五、半监督聚类 - 图29五、半监督聚类 - 图30 最小的 五、半监督聚类 - 图31,设此时 五、半监督聚类 - 图32,即 五、半监督聚类 - 图33 最小,则考察将 五、半监督聚类 - 图34 划入簇 五、半监督聚类 - 图35 是否会违背 五、半监督聚类 - 图36五、半监督聚类 - 图37 中的约束:

            • 若不违背,则 五、半监督聚类 - 图38 划入簇 五、半监督聚类 - 图39五、半监督聚类 - 图40

            • 若违背,则从 五、半监督聚类 - 图41 中移除 五、半监督聚类 - 图42, 继续找出 五、半监督聚类 - 图43五、半监督聚类 - 图44 最小的 五、半监督聚类 - 图45

            • 重复上述考察,直到 五、半监督聚类 - 图46 或者 五、半监督聚类 - 图47 划入簇 五、半监督聚类 - 图48 不会违背 五、半监督聚类 - 图49五、半监督聚类 - 图50 中的约束。

              如果 五、半监督聚类 - 图51 ,则返回错误提示。这意味着 五、半监督聚类 - 图52 与所有的簇都发生冲突。

        • 更新均值向量:

        五、半监督聚类 - 图53

        • 若更新均值向量前后,均值向量变化很小,则迭代结束。
      • 根据最新的均值向量划分 五、半监督聚类 - 图54, 获得聚类簇划分 五、半监督聚类 - 图55

5.2 约束种子 k 均值算法

  1. 约束种子 k 均值Constrained Seed k-means算法是利用第二类监督的代表。

  2. 给定样本集 五、半监督聚类 - 图56 。 假定少量的有标记样本为 五、半监督聚类 - 图57五、半监督聚类 - 图58 为隶属于第 五、半监督聚类 - 图59 个聚簇的样本。

    直接将 五、半监督聚类 - 图60 中的样本作为种子,用它们初始化 五、半监督聚类 - 图61 均值算法的 五、半监督聚类 - 图62 个聚类中心,并且在聚类簇迭代更新过程中不改变种子样本的簇隶属关系,这样就得到了约束种子 五、半监督聚类 - 图63 均值算法。

  3. 约束种子 五、半监督聚类 - 图64 均值算法:

    • 输入:

      • 五、半监督聚类 - 图65
      • 少量有标记样本 五、半监督聚类 - 图66
      • 聚类簇数 五、半监督聚类 - 图67
    • 输出:聚类簇划分 五、半监督聚类 - 图68

    • 算法步骤:

      • 利用有标记样本集合 五、半监督聚类 - 图69 初始化均值向量:

      五、半监督聚类 - 图70

      • 迭代:

        • 初始化每个簇:五、半监督聚类 - 图71
        • 将有标记样本集合 五、半监督聚类 - 图72 中的每个样本 五、半监督聚类 - 图73 分别添加到对应的簇中 五、半监督聚类 - 图74
        • 对未标记样本集合 五、半监督聚类 - 图75 中的每个样本 五、半监督聚类 - 图76,将它划分为距离该样本最近的簇中。其中的距离是样本和簇均值向量的距离。
        • 更新簇均值向量:

        五、半监督聚类 - 图77

        • 若更新均值向量前后,均值向量变化很小,则迭代结束。
      • 根据最新的均值向量划分 五、半监督聚类 - 图78, 获得聚类簇划分 五、半监督聚类 - 图79