我有一个包含 500 个特征的 50K 记录的数据集(所有数字)。我们正在努力寻找指纹。这意味着我们希望对数据进行聚类并将每个集群中的一个节点报告为该集群的代表(这意味着与其他集群中的任何其他节点相比,该集群中的每个节点都与该代表最相似)。所以我们不会有任何噪音(意味着所有节点都应该被表示)。我做过 K-means、Kmedoids、hierarchical、dbscan、hdbscan 等。每个都有自己的问题。
Kmeans 不会将其中一个节点报告为集群的中心,而是报告可能不是我们节点之一的中心点。所以我们切换到 Kmedoids。结果过于依赖初始种子。不知道 K 也是另一个问题。
然后我们用肘法求K。但由于不确定K的上限是多少,所以情节不是很肘,更像是逐渐减小。然后我们尝试了 Sillouette0score 方法,我得到的集群数字太大了(超过 200 个,这对现场专家来说似乎不合适)。由 Affinity Propagation 生成的 K 的数量也存在同样的问题(K 太大)。
由于我们有数以万计的数据,Meanshift 不能正常工作。HDBSCAN 还报告了 264 个标签,这又似乎不合理。
我想为此数据尝试一些降维方法。但不确定什么会运作良好。tSNE 过于专注于可视化,这似乎不适合我们使用。任何建议将不胜感激。