假设我们有一个分类问题,首先我们要从数据中获取一些见识,然后进行t-SNE。t-SNE的结果很好地分隔了各个类。这意味着可以建立分类模型,该模型也可以很好地分离类(如果t-SNE不能很好地分离,则意味着没有太大的区别)。
知道t-SNE专注于局部结构并且可以很好地分离类:什么是分类算法才能很好地解决此问题?Scikit建议使用具有高斯RBF内核的SVM,但还有哪些呢?
假设我们有一个分类问题,首先我们要从数据中获取一些见识,然后进行t-SNE。t-SNE的结果很好地分隔了各个类。这意味着可以建立分类模型,该模型也可以很好地分离类(如果t-SNE不能很好地分离,则意味着没有太大的区别)。
知道t-SNE专注于局部结构并且可以很好地分离类:什么是分类算法才能很好地解决此问题?Scikit建议使用具有高斯RBF内核的SVM,但还有哪些呢?
Answers:
首先是一个简短的答案,然后是更长的评论:
回答
SNE技术以原始相似空间在对象对上形成概率分布的方式,在原始数据空间和低维嵌入空间中计算N×N相似性矩阵。具体而言,概率通常由根据输入数据或嵌入计算出的归一化高斯核给出。在分类方面,这立即使人想到基于实例的学习方法。您已列出其中之一:具有RBF的SVM,而@amoeba已列出kNN。还有径向基函数网络,我不是专家。
评论
话虽如此,我将仅在查看t-SNE图的情况下对数据集进行推断时会倍加小心。t-SNE不一定专注于本地结构。但是,您可以通过调整perplexity
参数来调整它,以调节(宽松地)如何平衡数据的局部和全局方面之间的注意力。
在这种情况下,perplexity
它本身就是黑暗中的刺探,即每个观测值可能具有多少个并且由用户提供的近邻。的原始论文中指出:“T-SNE的性能是相当稳健在困惑的变化,典型值是在5和50之间” 但是,我的经验是,从t-SNE中获得最大收益可能意味着分析具有不同困惑度的多个图。
换句话说,对于相同数量的训练步骤和使用相同的数据,调整learning rate
和perplexity
,可以获得看起来非常不同的二维绘图。
这蒸馏纸如何使用T-SNE有效地使T-SNE分析常见的陷阱的大汇总。总结点是:
这些超参数(例如学习率,困惑)确实很重要
t-SNE图中的簇大小没有任何意义
群集之间的距离可能没有任何意义
随机噪声并不总是看起来随机。
有时您会看到一些形状
对于拓扑,您可能需要多个图
特别是从上面的第2、3和6点开始,我将三思而后行,通过查看各个t-SNE图来推断数据的可分离性。在许多情况下,您可以使用正确的参数“制造”显示清晰聚类的图。