我使用以下代码。我希望得到相同随机种子的相同结果。我使用相同的随机种子(在这种情况下为1)并得到不同的结果。 这是代码:
<?php
$holidayDates = [
'10-10-2017',
'11-10-2017',
];
$foundCounter = 0;
$theDate = strtotime("9-10-2017");
while ($foundCounter < 1) {
$theDate = strtotime('+1 weekday', $theDate);
if (!in_array(date('d-m-Y', $theDate), $holidayDates)) {
$foundCounter++;
}
}
$newDater = date("d-m-Y", $theDate);
var_dump($newDater);
// string(10) "12-10-2017"
答案 0 :(得分:3)
您的代码:
import numpy as np
from random import seed
seed(1) ### <-----
设置python&#39; s random-class的随机种子。
但sklearn完全基于numpy&#39; random class,explained here:
对于测试和可复制性,对于具有随机化组件的算法中使用的伪随机数生成器,通过单个种子控制整个执行通常很重要。 Scikit-learn不使用自己的全局随机状态;只要没有提供RandomState实例或整数随机种子作为参数,它就依赖于numpy全局随机状态,可以使用numpy.random.seed进行设置。例如,要将执行的numpy全局随机状态设置为42,可以在他或她的脚本中执行以下操作:
import numpy as np
np.random.seed(42)
所以一般来说你应该这样做:
np.random.seed(1)
但这只是事实的一部分,因为在小心使用所有sklearn组件时,通常不需要这些组件,明确地用一些种子调用它们!
与 ShreyasG 一样,这也适用于train_test_split