实现 t-SNE 时如何均衡成对的亲和力困惑?

数据挖掘 降维 特纳
2022-02-15 10:04:43

我正在尝试实现 t-SNE 算法:

在此处输入图像描述

我发现要计算成对的亲和力,我必须遵循这个:

在此处输入图像描述

我的问题是计算σ一世. 在维基百科中我发现:

高斯核的带宽σ一世, 以这样一种方式设置,即条件分布的困惑度等于使用二进制搜索的预定义困惑度。结果,带宽适应了数据的密度:较小的值σ一世用于数据空间的密集部分。

我不明白这到底是什么意思。我该如何计算σ一世?

2个回答

它只是意味着您应该通过二进制搜索设置带宽。它的工作方式是从预设的目标困惑度开始(Mark 的链接建议将 5 到 50 的值作为合理的值),并限制带宽。如果目标困惑度在边界困惑度定义的区间内,则迭代地将搜索空间减半,直到收敛到目标:

2H(p;σ大号)<一种rGe<2H(p;σü)

如果目标不在初始间隔内,则扩大间隔并重试。

您可以在 Laurens van der Maaten 的页面上找到各种实现:

Laurens van der Maaten 的 t-SNE