我正在尝试在方形距离矩阵上运行tsne分析。这些是我正在使用的命令。
model = TSNE(n_components = 2,perplexity = 32, verbose = 10,n_iter = 1000, metric = "precomputed")
embeddings = model.fit_transform(D)
这是我收到的输出:output from tsne function
看起来程序正在运行75次迭代,然后调用它并退出。当我绘制来自tsne的数据时,它基本上只是一个密集的blob。为什么程序会提早退出?如何让它运行更长时间?
答案 0 :(得分:1)
它已退出,因为已达到退出条件。
解释日志,退出条件可能是渐变的指标,此处称为 gradient-norm 。如果需要,请查看gradient-descent的基础知识以了解直觉。由于每次迭代都朝向梯度的负值迈出了一步,微小的梯度对目标没有太大作用(并且将被解释为:我们找到了局部/全局最小值)。
看起来像(仅解释您的日志):
if np.linalg.norm(gradient) < 1e-4:
return solution
对于优化问题的参数化,进一步进行更多迭代没有任何优点。解决方案不会变得更好(就最小化而言)。
您只能尝试其他参数(导致其他优化问题)。