使用TSNE可视化集群

时间:2018-01-31 20:13:29

标签: cluster-analysis data-science

我有一个数据集,我需要以一种方式进行聚类和显示,其中同一群集中的元素应该更加靠近。该数据集基于一项研究,包含大约16行(条目)和约50个特征。我同意它不是一个理想的数据集,但不幸的是,这就是现有的情况。

以下是我采取的方法:

我在规范化数据集后首先在数据集上应用了KMeans。

与此同时,我还尝试使用TSNE将数据映射到2维,并将它们绘制在散点图上。根据我对TSNE的理解,该技术应该已经将物品放置在彼此更接近的相同簇中。然而,当我查看散点图时,群集真的到处都是。

散点图的结果可以在这里找到:https://imgur.com/ZPhPjHB

这是因为TSNE和KMeans本质上的工作方式不同吗?我应该只做TSNE并尝试标记群集(如果是这样,如何?)或者我应该使用TSNE输出以某种方式提供给KMeans?

我在这个领域真的很新,建议将不胜感激!

再次提前致谢

编辑:如果我首先使用TSNE将尺寸减小到2然后使用这些缩小的尺寸使用KMeans进行聚类,则会发生相同的重叠

2 个答案:

答案 0 :(得分:0)

TSNE和KMeans之间存在差异。 TSNE主要用于可视化,它试图在2D / 3D空间(从更大的空间)投影点以保持距离(如果在更大的空间中2个点远离TSNE将尝试显示它。)

所以TSNE不是一个真正的集群。这就是为什么你会得到那个奇怪的散点图。

对于TSNE,有时您需要先申请PCA,但如果您的功能数量很大,则需要这样做。只是为了加快计算速度。

正如已经建议的那样,尝试使用层次聚类或只生成更多行。

答案 1 :(得分:0)

应用tSNE并拟合k均值是您可以开始的基本操作之一。 我会说考虑使用不同的f散度。

f散度https://arxiv.org/pdf/1811.01247.pdf下的随机邻居嵌入

本文尝试了五种不同的f-散度函数:KL,RKL,JS,CH(卡方),HL(赫林格)。

本文探讨了哪些差异突出了准确性和召回率。