python - 在 TSNE 中选择 random_State 参数(python)

标签 python machine-learning

我有两个问题,我正在尝试用 bh_sne 绘制我的数据库,但是由于该算法的本质是基于每次运行中的随机数,因此我得到了不同的结果。我希望每次运行都能得到相同的结果。看来random_state很有帮助。 但我不知道为 random_state 选择不同的整数到底意味着什么。

例如,random_state=0random_state=1random_state=42 .. 和 random_state= 之间有什么不同无

其次,当我在函数中应用此参数并给出除 None 之外的任何值时,出现以下错误。

AttributeError: 'int' object has no attribute 'randint'

我的 pycharm 中没有任何名为 random 的文件。

这是我的代码:

data = bh_sne(X, random_state =1 )

X 包含我的特征值。

最佳答案

该库使用 numpy 的随机模块,更具体地说:this part .

就这样使用它:

import numpy as np

bh_sne(X, random_state=np.random.RandomState(0))  # init with integer 0

这可以通过简单的随机源搜索来看到(见下图),其中还显示了一些单元测试!

整数(上面的 0)只是某种熵源,它会导致内部随机数生成器的某种状态。如果不分析 PRNG,就无法保证种子数 0 与 1 或 40 相比如何表现。它不需要不同(但通常是不同)!

只有一个保证:决定论!从用数字 seed=my_integer 初始化的 PRNG 中获取随机数,每次使用该精确种子完成此操作时都会返回相同的路径/相同的数字(前 x 个数字每次都相等;x 是任意的) 。

但是intro-page可能会给出一个更重要的通知(当我看到你在 python 中工作时使用的库时,这是我的第一个问题):

注意:Scikit-learn v0.17 包含 TSNE 算法,您可能应该使用它们而不是这个。

enter image description here

关于python - 在 TSNE 中选择 random_State 参数(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47840056/

相关文章:

一旦我导入任何 PyQt5 模块,Python.exe 就会停止工作

Python 多处理重生崩溃进程

machine-learning - 监督机器学习的历史标签

python - 使用二元分类器模型将数据分为 3 类

machine-learning - 已经有了带有二元类的决策树模型,当我测试新实例时如何获得概率?

python - 如何在 django 中使用具有相同模板文件的多个 url?

python - 如何在 Jupyter Notebook 中禁用单元格截断?

python - 有没有内置MSMOTE

statistics - 如何从一组加权样本中估计高斯(混合)密度?

python - 如何在python中的sklearn中获取GridSearchCV中的选定特征