一、
下面的HIERARCHICALCLUSTERING算法需要输入一个n*n的距离矩阵d,并产生数据的n个不同的分划,以树的形式输出。
HIERARCHICALCLUSTERING(d,n)
形成n个类,每个类含有一个元素
构建图T,为每个类分配一个单独的顶点
while 存在多于一个类
找到最近的2个类C1和C2
将C1和C2合并成一个新的类C,C含有|C1|+|C2|个元素
计算C与其他各类的距离
在图T中增加一个顶点C,且与C1和C2相连
在d中删除与C1和C2相对应的行和列
在d中为新类C增加一行一列
return T
二、
将一个n*m的表达矩阵的n行看成为m维空间中n个点的集合,将其划分成k个子集,并假定类的个数k是已知的。
K均值聚类问题
给定n个数据点,找到k个凝聚点,满足平方误差失真最小。
输入:含有n个点的集合v和参数k
输出:含有k个点(凝聚点)的集合,满足d(x,y)对X所有可能的选择为最小。
我们假设将n个元素的集合分划成k个类的每个分划P都有与之相关联的聚类成本,记为cost(P),以此来衡量分划P的质量:分划的聚类成本越低,聚类的效果就越好。
给定一个分划P、一个该分划下的类C以及类C外一个元素i,Pi->c表示在分划P中将元素i移动到类C中得到的分划。△(i->C)=cost(P)-co