是K-means算法的一个变种
与K-means不一样的地方在于中心店的选取:k-means 中,我们将中心点取为当前 cluster 中所有数据点的平均值,在 k-medoids 算法中,我们将从当前 cluster 中选取这样一个点——它到其他所有(当前 cluster 中的)点的距离之和最小——作为中心点。k-means 和 k-medoids 之间的差异就类似于一个数据样本的均值 (mean) 和中位数 (median) 之间的差异
另外,k-medoids可以处理k-means没法处理的标称型数据,最常见的做法是构建dissimilarity matrix。
除此之外,由于中心点是在已有的数据点里面选取的,因此相对于 k-means 来说,不容易受到那些由于误差之类的原因产生的Outlier的影响,更加 robust 一些。
因为需要枚举每个点,求出它到其他点的距离之和,复杂度为O(N^2)> K-means的O(N)
文档聚类的例子:
1.采用字符级的N-GRAM,从一个文档中得到频率最高的300个N-GRAM,称为一个Profile
2.定义两个Profile的dissimilarity为对应的N-gram的序号之差的绝对值
3.聚类