当对象由不同大小的向量表示时,如何执行聚类分析(例如kmeans,完整链接等)?例如,对象1由4维向量,对象2乘6维向量,对象3乘3维向量等表示......
有没有办法规范化对象的表示?你有什么建议?
谢谢!
答案 0 :(得分:0)
简而言之,不,这是不可能的。可以将对象的向量表示为相同(更高维度空间)的成员。只有在对象的特征中存在一些重叠时,这才有效。请考虑以下向量:
object1: a, b, c, d
object2: b, d, e
object2: a, d
所有要素的集合是{a, b, c, d, e}
,这三个对象可以表示如下:
object1: a, b, c, d, 0
object2: 0, b, 0, d, e
object2: a, 0, 0, d, 0
0
是占位符,表示此对象没有特定功能。您的对象现在位于相同的5维空间中,可以进行聚类。
注意:任何理智的矢量库实际上都会以稀疏格式存储矢量,例如我的第一个例子中的矢量。如果只有少数功能非零,这会为您提供非常小的内存占用。我的第二个例子的格式是密集的。有些库需要密集输入,有些库可以自动从一个库转换为另一个库。在任何情况下,我认为你不太可能手动完成我上面做的转换。
编辑:要素向量最终需要作为整数列表。列表中的每个位置对应于特定的信息。您可以从以下功能开始:
cat- weight 4 kg, is very cute
whale- weight 3000kg, not very cute, lives in ocean
rat- weight 0.3 kg, not cute at all, lives in sewers
因此cat
由2个要素或维度向量2表示。此信息转换为下表:
weight(kg) cuteness(%) lives_in_sewers? lives_in_ocean?
cat 4 8 0 0
whale 3000 3 0 1
rat 0.2 2 1 0
特征向量是:
cat = [4, 8, 0, 0]
whale = [3000m 3, 0, 1]
rat = [0.2, 2, 1, 0]