现在碰到一个烦心的问题,K-means clustering 是对初值(随机指定的K个中心点)敏感的,为了避免陷入局部最优解必须要多次重复。对于一个m行n列的矩阵,按行进行聚类,以行A,B, C为例子,第一次也许AB聚成一类,第二次也许AC聚成一类,重复100次后如何得到最有代表性的聚类?这里一个具体的困难是,用K-means clustering 算法包算出的聚类结果,即是对每行的标签(如果K=4,标签为1,2,3,4)是随机的,也就是说第一次AB类的标签也许是1,第二次则可能是3。
The reproducibility of K-means clustering for high dimensional data
可以改成不随机,比如第二个初值选离第一个最远的
btw,个人看法clustering就是个数据探索工具,看看即可不比当真,而且高维数据做clustering容易失效,用层次聚类看看,是不是没有明显的聚类
回复 第2楼 的 windwail:初值自己是无法给定的,好像。关于对聚类的看法,我认为很有道理,也许H-clustering 值得看看。谢了!
我一直有个对聚类结果再聚类的想法,源于你描述的这种聚类不稳定的情况,就是多次聚类,收集每次的结果,看两条样本是否经常被归为同一类,越经常被归为同一类,则距离越近。至于类的标签是什么无所谓。不知道这个想法是否有点谱。
那聚类数还不好确定呢。。。
我觉得kmeans聚类是个相当不靠谱的事情,算法演示上都是拿2维数据来做,效果挺好看的,高维数据鬼知道到底聚出了咋样的类
而且高维数据本身就不见得能聚在一起
回复 第4楼 的 谢益辉:这个工作,如果我非要用K-means不可,也就只能用类似你说的这个思路了。
回复 第5楼 的 windwail:Yes, it is really tricky[s:15]