相关疑难解决方法(0)

python vs octave随机生成器

更具体地说,numpy:

In [24]: a=np.random.RandomState(4)
In [25]: a.rand()
Out[25]: 0.9670298390136767
In [26]: a.get_state()
Out[26]: 
('MT19937',
 array([1248735455, ..., 1532921051], dtype=uint32),
 2,0,0.0)
Run Code Online (Sandbox Code Playgroud)

八度:

octave:17> rand('state',4)
octave:18> rand()
ans =  0.23605
octave:19> rand('seed',4)
octave:20> rand()
ans =  0.12852
Run Code Online (Sandbox Code Playgroud)

Octave声称执行相同的算法(Mersenne Twister,周期为2 ^ {19937-1})

谁知道为什么会有区别?

python random numpy octave

8
推荐指数
1
解决办法
1428
查看次数

比较使用随机数生成的Matlab和Numpy代码

有没有办法让numpy中的随机数生成器生成与Matlab相同的随机数,给定相同的种子?

我在Matlab中尝试了以下内容:

>> rng(1);
>> randn(2, 2)

ans =

    0.9794   -0.5484
   -0.2656   -0.0963
Run Code Online (Sandbox Code Playgroud)

以及与Numpy的iPython中的以下内容:

In [21]: import numpy as np
In [22]: np.random.seed(1)
In [23]: np.random.randn(2, 2)
Out[23]: 
array([[ 1.624, -0.612],
       [-0.528, -1.073]])
Run Code Online (Sandbox Code Playgroud)

两个数组中的值都不同.

或者有人建议比较Matlab和Python中使用随机数生成的相同算法的两个实现是个好主意.

谢谢!

python random matlab

6
推荐指数
2
解决办法
3294
查看次数

XGBoost R 与 python - 不同的性能和功能重要性

我在工作中使用的 xgboost 有这个问题。我的任务是将当前在 R 中运行的一段代码移植到 python。

代码的作用: 我的目标是使用 XGBoost 来确定增益最大的特征。我确保 XGBoost 的输入在 R 和 python 中是相同的。XGBoost 运行大约 100 次(在不同的数据上),每次我通过增益提取 30 个最佳特征。

我的问题是:R 和 python 中的输入是相同的。然而,python 和 R 输出了截然不同的特征(无论是每轮的特征总数,还是选择了哪些特征)。它们只共享大约 50% 的功能。我的参数是一样的,我没有使用任何样本,所以没有随机性。

另外,我注意到的另一件事 - 与具有相同参数的 R 相比,XGBoost 在 python 中速度较慢。这是一个已知问题吗?

R参数

Python参数

我一直试图环顾四周,但没有发现任何人有类似的问题。我不能分享数据或代码,因为它是机密的。有人知道为什么功能差异如此之大吗?

R 版本:3.4.3

XGBoost R 版本:0.6.4.1

蟒蛇版本:3.6.5

XGBoost python 版本:0.71

在 Windows 上运行。

python r xgboost

5
推荐指数
1
解决办法
1422
查看次数

标签 统计

python ×3

random ×2

matlab ×1

numpy ×1

octave ×1

r ×1

xgboost ×1