我想使用KL散度作为度量来聚类我的数据。
在K-means算法中:
-
选择聚类的数量。
-
随机初始化每个聚类的均值。
-
将每个数据点分配到距离值最小的聚类
c
中。 -
更新每个聚类的均值为分配给它的数据点的均值。
在欧几里得情况下,更新均值很简单,只需对每个向量进行平均即可。
然而,如果我想使用KL散度作为度量,我该如何更新均值呢?
回答:
使用KL散度进行聚类可能不是最好的选择,因为KL散度缺少度量的一个重要属性:对称性。这样得到的聚类可能难以解释。如果你仍然想使用KL散度,你可以使用KL散度的平均值作为距离,即
d(x,y) = KLD(x,y)/2 + KLD(y,x)/2