我有一个由多个用户评级组成的数据集。每一项评级看上去都类似于:
| Taste | Flavour | Look | Enjoyed | ..... | Tag |
|-------|---------|------|---------|-------|--------|
| 4 | 2 | 2 | 3 | ..... | Banana |
| 5 | 4 | 1 | 2 | ..... | Apple |
| 3 | 1 | 4 | 1 | ..... | Pasta |
| .... | .... | .... | .... | .... | .... |列包含每一行的级别。任务是对行进行聚类,例如,我想找到类似于:
cluster 1: Banana, Apple
cluster 2: Pasta, Spagetty
....我们使用具有编辑距离度量的HDBSCAN来查找集群,它或多或少地工作。然而,问题是功能太少(总共12个),不可能有“好的”集群。因此,我想以某种方式解释集群中“标记”中的信息。其思想是计算每个标记的嵌入,并将它们作为特性使用。
我不确定的是如何包含这些新特性?我希望聚类主要由原始特性决定。嵌入的维数远大于原始特征的维数,并且这些特征的度量是不同的(例如余弦相似性)。因此,我想回答两个问题:
发布于 2020-04-04 15:15:58
博士
在HDBSCAN中传递数据两次。
tag的聚类使用词嵌入和余弦距离。我建议您分两步完成,而不对tag特性给予权重,因为所使用的距离度量是不同的。对于字嵌入,您需要使用嵌入之间的余弦距离。至于其他12个特性,您目前使用的是另一个距离(欧几里得,我假设)。
第一步应该根据tag的语义特征对数据进行聚类。这应该把水果,肉类,蔬菜,意大利面.
然后,第二步可以将数据与其他12个特性进行子集群。但是,考虑到您的例子
第一组:香蕉,苹果第二组:意大利面,意大利面
我不明白为什么这第二步是必要的。您可以不用第二次聚类,只需使用这12个特性来排序数据点,以便进行练习。例如,在第一步中聚集在一起的“水果”是人们“最喜欢”的。
https://datascience.stackexchange.com/questions/71715
复制相似问题