我尝试聚类的数据集由多个异构维度构成 例如
<A, B, C, D>
其中A,B是lat,长。
C是一个数字
D是二进制值。
在这种情况下,解决群集问题的最佳方法是什么? 我应该规范化数据以使其同质化,还是应该针对每个同类维度运行单独的聚类问题?
答案 0 :(得分:1)
k-means不是一个好的选择,因为它不能处理180°环绕,并且除了赤道之外的任何地方都会失真。在美国北部和欧洲大部分地区的IIRC,失真已经超过20%。
类似地,在二进制数据上使用k-means是没有意义的 - 确切地说 mean 没有意义。
使用可以使用任意距离的算法,并在特定数据集上构建专为解决问题而设计的组合距离函数。
然后使用例如PAM或DBSCAN或分层链接聚类任何其他适用于任意距离函数的算法。
答案 1 :(得分:1)
二进制特征的平均值可以看作该特征的频率。在某些情况下,可以通过v- \ bar {v}标准化二进制特征v。
但是,在您的情况下,在我看来,您在三个不同的功能空间中有三个功能。我通过创建三个距离d_v来解决这个问题,d_v适用于V中的每个特征v \。两个实体之间的距离,比如x和y将由d(x,y)\ sum_ {v \ in给出V} w_v d_v(x_ {v},y_ {v})。你可以玩w_v,但我可能会把它限制在\ sum_ {v \ in V} w_v = 1和{v} _ {v \ in V} \ geq 0。
以上只是一些快速的想法,祝你好运! PS:对不起文字,我是新来的,我不知道怎么把乳胶文字放在这里