Scikit learn scikit学习TSNE中的随机_状态参数是什么?

Scikit learn scikit学习TSNE中的随机_状态参数是什么?,scikit-learn,Scikit Learn,根据随机性,状态为 随机_状态:int或RandomState实例或None(默认)伪 随机数发生器种子控制。如果没有,请使用numpy.random 辛格尔顿。请注意,不同的初始化可能会导致 成本函数的不同局部极小值 哪个州正在播种?这将如何影响tsne的实施?tsne文件中未提及此参数: 更新1: 当然,这有助于解释为什么在sklearn中使用随机状态,但它并没有阐明在sklearn tsne算法实现中如何使用随机状态。我评论的帖子中对随机状态的使用做了很好的解释。 对于TSNE的这种特殊情

根据随机性,状态为

随机_状态:int或RandomState实例或None(默认)伪 随机数发生器种子控制。如果没有,请使用numpy.random 辛格尔顿。请注意,不同的初始化可能会导致 成本函数的不同局部极小值

哪个州正在播种?这将如何影响tsne的实施?tsne文件中未提及此参数:

更新1:


当然,这有助于解释为什么在sklearn中使用随机状态,但它并没有阐明在sklearn tsne算法实现中如何使用随机状态。

我评论的帖子中对随机状态的使用做了很好的解释。 对于TSNE的这种特殊情况,使用随机_状态来播种算法的代价函数

如文件所述:

方法:字符串(默认值:“barnes_hut”)

默认情况下,渐变计算算法使用Barnes Hut 在O(NlogN)时间内运行的近似值

另外,在你引用的论文中搜索“随机”一词。第一行是

通过随机采样贴图点初始化梯度下降 从以中心为中心的具有小方差的各向同性高斯分布 起源

另外,单词“random”的其他位置说明,选择起始地标点时存在随机性,因此会影响函数的局部极小值

这种随机性由伪随机数生成器表示,该生成器由
random\u state
参数进行播种

说明: 一些算法使用随机数初始化某些参数,如优化权重、将数据随机拆分为训练和测试、选择某些特征等

现在,在编程和软件中,没有什么是天生的随机性。为了生成随机数,使用了一个程序。但由于它是一个有固定步骤的程序,所以它不可能是真正随机的。所以它被称为伪随机发生器。现在,为了每次输出不同的数字序列,他们会根据生成的数字进行输入。通常,此输入是以毫秒为单位的当前时间(纪元UTC)。这种输入称为种子。固定种子意味着固定输出编号

random_state
用作scikit中伪随机数生成器的种子,用于在算法中涉及此类随机性时复制行为。当一个固定的随机_状态出现时,它将在程序的不同运行中产生完全相同的结果。因此,调试和识别问题(如果有)更容易。 如果不设置
随机_状态
,每次运行该算法时将使用不同的种子,您将得到不同的结果。你可能会第一次得到很高的分数,以后再也无法达到


现在在机器学习中,我们希望复制与以前完全相同的步骤,以分析结果。因此,
random_state
固定为某个整数。希望有帮助。

它正在PCA上使用(以降低数据维度)并初始化训练数据的嵌入

你可以自己检查代码

您还可以尝试阅读更多有关该方法的信息


编辑1:它可能(或不是)直接影响结果。我建议您设置一个随机种子,并始终使用该种子。

可能的重复。请参阅问题中链接的其他帖子和answer@VivekKumar请参阅问题更新。