函数内部的random_state = 7是否比np.random.seed(7)好?

时间:2019-10-13 21:27:32

标签: numpy scikit-learn svm random-seed

以下两个功能是否可以完全重现?

def test_SVC_A():
    svc = LinearSVC(random_state=7)
    svc.fit(X_train, y_train)
    svc.score(X_test, y_test)


def test_SVC_B():
    seed=7
    np.random.seed(seed)
    svc = LinearSVC()
    svc.fit(X_train, y_train)
    svc.score(X_test, y_test)

还是我更希望test_SVC_A发挥test_SVC_B的功能?

我感到困惑,因为在两个过程中我总是得到相同的结果吗?

1 个答案:

答案 0 :(得分:1)

  

Scikit-learn不使用自己的全局随机状态;每当一个   没有提供RandomState实例或整数随机种子作为   参数,它依赖于可以设置的numpy全局随机状态   使用numpy.random.seed


话虽如此,添加 np.random.seed() 之前 导入 LinearSVC 应该会导致相同的结果