我尝试了其他距离度量标准,例如chebychev距离或Manhatten距离等,这些都在Matlab的tsne中实现。它们中的一些实现了与欧几里德距离度量相同的良好性能。所以我有一些 为什么tsne总是使用欧几里得距离来计算距离。与其他距离度量相比,此距离度量有什么优势吗?我希望有人可以帮助我解决我的问题。预先感谢!
答案 0 :(得分:0)
TSNE始终使用欧几里得距离功能来测量距离,因为它是方法定义内的默认参数集。如果您想更改用于特定问题的距离函数,则需要在方法调用中更改“ metric”参数。
Here是一个链接,列出了可以用作参数而不是欧几里得的不同距离函数。
希望这会有所帮助!
答案 1 :(得分:0)
不确定您要讨论的是哪种实现,但是通常tSNE可以在距离矩阵上工作,并且由您根据实际对数据有意义的方式来计算此距离矩阵。
Euclidean
和Jaccard
的距离通常效果很好,通过使用TSVD
将数据缩小到〜50维,然后在{ {1}}距离矩阵。