作为我要解决的特定问题(竞赛),我进行了以下设置:21个功能([0,1]上的数字)和二进制输出。我大约有10万行。设置似乎非常嘈杂。
我和其他参与者使用了一段时间的特征生成功能,并且在这种情况下,t分布的随机邻居嵌入非常强大。
我偶然发现了这篇文章“如何有效使用t-SNE”,但我仍然无法真正得出关于如何在我的分类设置中最佳选择超参数的结论。
是否有经验法则(特征数量,嵌入尺寸->困惑选择)?
我现在只是临时应用设置,因为迭代各种设置所需的时间太长。感谢您的任何评论。
作为我要解决的特定问题(竞赛),我进行了以下设置:21个功能([0,1]上的数字)和二进制输出。我大约有10万行。设置似乎非常嘈杂。
我和其他参与者使用了一段时间的特征生成功能,并且在这种情况下,t分布的随机邻居嵌入非常强大。
我偶然发现了这篇文章“如何有效使用t-SNE”,但我仍然无法真正得出关于如何在我的分类设置中最佳选择超参数的结论。
是否有经验法则(特征数量,嵌入尺寸->困惑选择)?
我现在只是临时应用设置,因为迭代各种设置所需的时间太长。感谢您的任何评论。
Answers:
我通常会使用 -SNE(连同聚类技术一起使用-最终会详细介绍)来识别/评估数据中是否存在聚类。不幸的是,据我所知,除了查看生成的降维数据集然后评估其是否有意义之外,没有标准的方法来选择正确的困惑。有一些一般事实,例如。簇之间的距离几乎没有意义,小的困惑度值鼓励形成小的凝块状结构,仅此而已。
一个非常粗略的经验法则是检查与每次重建相关的误差值是多少。θ θ-SNE试图最小化原始域中数据之间的距离分布与降维域中数据之间的距离分布之间的Kullback-Leibler差异之和(实际上,目标分布是一个点将另一个点选为相邻点的概率,但它们与两个点之间的距离成正比)。可以认为,较小的KL散度值显示更好的结果。这个想法在实践中效果不是很好,但是从理论上讲将有助于排除一些困惑度值范围以及算法的某些次优操作。我将解释为什么这种启发式方法远非万能药,但它可能会适度有用:困惑度参数随用于计算距离/概率的高斯方差单调增加。因此,随着整体上增加困惑度参数,您将获得绝对距离和随后的KL散度值的较小距离。但是,如果您有20个具有相同困惑度的跑步,并且您不能(不想)看它们,则始终可以选择变量最小的那个,希望它可以更准确地保留原始距离。同样的 但是,如果您有20个具有相同困惑度的跑步,并且您不能(不想)看它们,则始终可以选择变量最小的那个,希望它可以更准确地保留原始距离。同样的 但是,如果您有20个具有相同困惑度的跑步,并且您不能(不想)看它们,则始终可以选择变量最小的那个,希望它可以更准确地保留原始距离。同样的是Barnes-Hut近似的近似参数,假设困惑度是固定的,则更改然后检查生成的成本应该会提供一些信息。归根结底,更低的成本与更忠实的重建相关。虽然一切都没有丢失...
对于您的特定用例,以下是使选择一个好的困惑度值的过程适度自动化的技巧:在降维数据集上运行一个小的聚类过程(例如 -means或DBSCAN),然后评估该聚类的质量针对您尝试预测的指标使用某种指标(Cohen的,Rand指标,Fowlkes-Mallows等)。这里的想法是,对于您手头的任务,数据的正确表示形式(依赖于困惑度的 -SNE结果)应根据其与属性的对齐方式提供最有用的表示形式(以提及的一种度量标准形式)您尝试预测。这就是为什么ķ吨吨-SNE毕竟是首先使用的,如果所得到的表示形式对我们正在研究的属性没有帮助,那么尽管重建误差低,视觉吸引力等低,它还是根本不好。
让我指出,我描述的是启发式方法。如我的文章开头所述,手动检查结果是评估结果降维/聚类质量的必不可少的方法。
看看曹和王的“ t-SNE困惑的自动选择”可能对您来说很有趣:
t分布随机邻居嵌入(t-SNE)是用于数据可视化的最广泛使用的降维方法之一,但是它具有复杂度超参数,需要手动选择。在实践中,正确调整t-SNE困惑度要求用户了解该方法的内部工作原理并具有实际操作经验。我们提出了一个针对t-SNE困惑的模型选择目标,除了t-SNE本身之外,它需要的额外计算可以忽略不计。我们凭经验验证了我们的方法发现的困惑设置与人类专家在多个数据集中引起的偏好一致。还分析了我们在贝叶斯信息准则(BIC)和最小描述长度(MDL)方面的相似性。