zoukankan      html  css  js  c++  java
  • [论文]Coordination of Cluster Ensembles via Exact Methods

    作者:Ioannis T. Christou, Member, IEEE

    IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, VOL. 33, NO. 2, FEBRUARY 2011

    Index Terms—Clustering, machine learning, constrained optimization, combinatorial algorithms

      

      一遍关于聚类集成的论文,作者提出了一种新方法:EXAMCE,适用于类内部准则(intracluster criteria),例如Minimum-Sum-of-Squares-Clustering (MSSC)。什么意思,就是通过计算类内部的关系、距离等进行类划分的方法,例如MSSC,类间距离不考虑。

      算法的优点:

    1. 关注全局最优解,不是局部最优解(kmeans)
    2. 算法的迭代与扩展都是基于最终结果(应该指当前迭代的最终结果)
    3. 在类标号比较多的时候效果好

    算法描述前需要理解两个定义:

    Intracluster criterion-based clustering (IC3):

      简单点的描述是,如果一个数据集S,划分成k 个类,分别为C1 C2 ...Ck,使用一个成本函数c(.)来衡量各个类,那么样本的划分最优解便是使成本函数之和最小。

    Monotone Clustering Property (MCP) 

      

      一个聚类结果Ci,如果其包含的样本越多,那么其成本函数的值将越大。

      论文中选用了两种例子,一个是MSSC,minimum-entropy clustering criterion,

    MSSC:

      MSSC 其实描述的是这样一个问题:如果将数据集划分成多个类,那么怎样的划分可以使得类内部样本到内中心的欧式距离之和最小。公式的描述如下:

      第一条公式是目标函数,对于每个类,内中的样本到类中心的距离之和,使和最小;第二条公式是求类中心;第三条表示数据集S 中的样本都有有类标号,第四条表示样本不会有两个或以上的类标号。

      容易知道MSSC 是符合上面的两个定义的,目标函数的第二个累加号其实就是cost function,同时很容知道其满足MCP。

    minimum-entropy clustering criterion

      最小信息熵聚类也符合,其目标函数是:

    理想情况:

      对于瞒住IC3 及MCP 的聚类,最理想的解决过程如下:

      我们的样本数一共有n 个,那么由这n 个样本组成的子集数目则为2^n -1,我们记这个数为N,使用一个n-by-N 矩阵A,来表示这全部的子集,矩阵A 的一列n-by-1表示一个子集,样本属于这个子集的对应位为1,否则为0,其实就是穷举,那么我们有目标函数:

      这里需要解释的如下:

    ci:i-th 子集需要的cost

    x:一个N-by-1向量,取值为0,1,表示选取那个子集为最终划分的结果。

    k: 最终划分类的个数,其实就是选了多少个子集,x 向量的叠加。

    e:单位向量。

      理想情况的问题在于我们需要列出样本集的全部非空子集,这是不现实的,作者提出的方法,便是在知道部分子集的情况下,选出最优划分

    论文方法:

      既然只知道部分子集,那么A 矩阵便被约束为AB,其中有为 n-by-q 矩阵,q为子集个数,x同样表示最优选择。论文的思路:知道了部分子集,那么选取出当前的最优结果x,去掉重复分类的部分Rm_Dup(有可能一个样本属于了两个子集),进行局部查找Local(C),对选出的子集进行部分替换Expand(C),将新的子集添加到AB,计算新的目标函数值,迭代到收敛。

      上面的是论文算法的流程,解释一下:

    Rm_Dup:

      我们知道当前迭代步的x 的取值,即选取了哪些子集作为最终划分,那么如果一个样本属于两个或以上的类,求这个样本对于这么多个类中的cost function,然后选取cost 最小的保留这个样本,其他的删除,对于MSSC,即样本离类中心最近,那么久保留,其他的便剔除,这样我们便得到了一个样本划分(结果)记为C'。

    Local(C):

      Rm_Dup我们获得了一个样本划分(C'),那么便调用知道初始化的一个局部最优的算法,对于MSSC,用的是kmeans,对于信息熵,作者调用的是另外一篇论文的方法。这样获得的聚类结果记为C''。

    Expand(C):

       这一步是局部扩展,前两步获得的子集C'''=C' U C",对每个子集都进行一下操作,设定一个变量γ(论文中为10),一个子集中,离中心最远的γ个样本,从远到近逐步剔除,这样便获得γ个新子集;子集外,离中心最近的γ个样本,逐步加入到子集中,便获得γ个新的子集。作者称这一步对结果的提升有0.5 percent。

      这样将这2γ个子集 与C''' 一同并入AB ,作为新的已知子集。结束循环的条件是没有新的子集加入。

      论文方法的介绍结束。

  • 相关阅读:
    数据结构实现时的注意事项
    用编程解决生活中的问题
    用编程解决生活中的问题
    中英文对照 —— 生物学基本概念
    中英文对照 —— 生物学基本概念
    面向对象 —— 对类(class)的理解
    面向对象 —— 对类(class)的理解
    百家姓 —— 特别的姓氏与姓氏的由来
    百家姓 —— 特别的姓氏与姓氏的由来
    英文段子
  • 原文地址:https://www.cnblogs.com/Azhu/p/4173048.html
Copyright © 2011-2022 走看看