在看到 t-SNE 可以很好地分离类别之后,应该使用什么分类算法?

机器算法验证 分类 特纳
2022-02-28 22:07:01

假设我们有一个分类问题,首先我们想从数据中获得一些洞察力,我们做 t-SNE。t-SNE 的结果很好地分离了类。这意味着可以建立分类模型,该模型也可以很好地分离类(如果 t-SNE 不能很好地分离,那么它并不意味着太多)。

知道 t-SNE 专注于局部结构并且它可以很好地分离类:哪些分类算法应该可以很好地解决这个问题?Scikit 建议使用高斯 RBF 内核的 SVM,但其他​​的是什么?

1个回答

首先是一个简短的答案,然后是更长的评论:

回答

SNE 技术在原始数据空间和低维嵌入空间中计算 N ×N 相似度矩阵,使得相似度在对象对上形成概率分布。具体来说,概率通常由根据输入数据或嵌入计算的归一化高斯核给出。在分类方面,这立即让人想起基于实例的学习方法。您列出了其中之一:带 RBF 的 SVM,@amoeba 列出了 kNN。还有径向基函数网络,我不是专家。

评论

话虽如此,我会更加小心地对仅查看 t-SNE 图的数据集进行推断。t-SNE 不一定关注局部结构。但是,您可以通过调整perplexity参数来调整它,该参数(松散地)调节如何在数据的本地和全局方面之间平衡注意力。

在这种情况下,perplexity它本身就是在黑暗中刺探每个观察可能有多少近邻,并且是用户提供的。原始论文指出:“t-SNE 的性能对 perplexity 的变化相当稳健,典型值在 5 到 50 之间。” 然而,我的经验是,充分利用 t-SNE 可能意味着分析具有不同困惑度的多个图。

换句话说,调整learning rateperplexity,对于相同数量的训练步骤并使用相同的数据,可以获得看起来非常不同的二维图。

这篇Distill论文How to Use t-SNE Effectively很好地总结了 t-SNE 分析的常见缺陷。总结要点是:

  1. 那些超参数(例如学习率、困惑度)真的很重要

  2. t-SNE 图中的簇大小没有任何意义

  3. 集群之间的距离可能没有任何意义

  4. 随机噪声并不总是看起来随机的。

  5. 你可以看到一些形状,有时

  6. 对于拓扑,您可能需要多个绘图

特别是从上面的第 2、3 和 6 点来看,我会三思而后行,通过查看单个 t-SNE 图来推断数据的可分离性。在许多情况下,您可以使用正确的参数“制造”显示清晰集群的图。