我对词嵌入很陌生。我想可视化学习后文档的外观。我读到 t-SNE 是这样做的方法。我有 100K 个文档,其中 250 个维度作为嵌入的大小。也有几个可用的软件包。
但是,对于 t-SNE,我不知道我应该保持多少次迭代或 alpha 的值或 perpexility 的值才能更好地学习。
这些是超参数还是可以由某些属性决定?
我对词嵌入很陌生。我想可视化学习后文档的外观。我读到 t-SNE 是这样做的方法。我有 100K 个文档,其中 250 个维度作为嵌入的大小。也有几个可用的软件包。
但是,对于 t-SNE,我不知道我应该保持多少次迭代或 alpha 的值或 perpexility 的值才能更好地学习。
这些是超参数还是可以由某些属性决定?
我强烈推荐这篇文章如何有效地使用 t-SNE。它具有 tsne 拟合过程的精彩动画情节,并且是第一个真正让我直观地了解 tsne 功能的来源。
在高层次上,困惑是重要的参数。尝试 5、30 和 50 的 perplexity 并查看结果是个好主意。
但请认真阅读如何有效使用 t-SNE。它将使您更有效地使用 TSNE。
对于包,在 R 中使用Rtsne ,或者在 python中使用sklearn.manifold.TSNE
我将引用t-SNE 网站上的常见问题解答。首先是困惑:
我应该如何设置 t-SNE 中的困惑度?
在不同的困惑度设置下,t-SNE 的性能相当稳健。最合适的值取决于数据的密度。粗略地说,可以说更大/更密集的数据集需要更大的困惑度。困惑度的典型值在 5 到 50 之间。
对于所有其他参数,我会考虑阅读以下内容:
如何评估 t-SNE 构建的可视化质量?
最好只是看看他们!请注意,t-SNE 不保留距离而是保留概率,因此测量高 D 和低 D 中欧几里得距离之间的一些误差是没有用的。但是,如果您使用相同的数据和困惑度,您可以比较 t-SNE 报告的 Kullback-Leibler 散度。运行 t-SNE 十次完全没问题,并选择具有最低 KL 散度的解决方案。
换句话说,这意味着:看图,如果可视化良好,请不要更改参数。您还可以为每个固定困惑度选择具有最低 KL 散度的运行。