网络知识 娱乐 为什么在机器学习中使用随机种子?

为什么在机器学习中使用随机种子?


在这篇文章中,您将了解我们在训练机器学习模型时为什么以及何时使用随机种子值。这是初学者数据科学家/机器学习爱好者最有可能提出的问题。

我们在创建训练和测试数据集时使用随机种子值。目标是确保我们获得相同的训练和验证数据集,同时使用不同的超参数或机器学习算法来评估不同模型的性能。这就是随机种子值出现的地方。不同的 Python 库(例如scikit-learn等)有不同的分配随机种子的方式。


在使用 Scikit-learn 训练机器学习模型时,函数 train_test_split从模块sklearn导入。model_selection 使用random_state等参数获取随机种子的输入

这是演示使用 random_state 传递随机种子值的代码。


每次运行上述代码时, 该参数 都会random_state=42随机种子设置为相同的值。这意味着每次执行上述代码时都会得到相同的验证集(X_test,y_test)。以这种方式,如果您通过更改超参数或 ML 算法来更改模型并重新训练它,则可以确保任何差异都是由于模型的更改而发生的,而不是由于具有不同的随机验证集。

从概念上讲,种子值用于生成随机数生成器。而且,每次使用相同的种子值时,都会得到相同的随机值。在 Python 中,方法是random.seed(a, version)。Numpy 提供了类似的方法,例如numpy.random.seed()