我之前问了K-Means实现mini-batch online learning的原理是什么?
我对其中一个步骤还是有一些疑问
第13步是更新聚类的中心点。但是如果中心点坐标更新之后,它不再是这个聚类中原来一些成员的最近中心了,那么是否应该剔除掉这些成员,然后重新计算中心点。因为那些成员会被分配到其他聚类,是否也要重新计算所有聚类的中心点?
1个回答
不需要剔除cluster里的成员,也不需要计算每个点新的cluster label。只有在第7步里计算当前batch里点的临时culster label$d[x]$,在第10步里用完$d[x]$后就不会再用,真正全局都记录和更新的信息是中心点$c$和每个cluster的点数$v$。
SofaSofa数据科学社区DS面试题库 DS面经
如果不对过去的点进行更新的话,和传统的kmeans应该不完全等价
-
sasa
2018-10-24 01:38
对,和传统kmeans不等价。而且传统kmeans本来就没有唯一最优解,不同起始的中心点就有不同的解。这算法相当于对原数据resample,并使用类似sgd的更新策略。
我认为kmeans最主要特点是把点与集合的距离简化为点与中心点距离;其余比如数据输入顺序,如何更新label等,都是算法细节。
-
Zealing
2018-10-24 02:48
谢谢!明白了,感觉online kmeans这个名字也有点名不符实啊,哈哈
-
lllinnn
2018-10-24 09:06