Sau*_*abh 2 python numpy machine-learning scikit-learn
我真的是机器学习的新手,我正在研究sklearn上的一些示例
有人可以在以下示例中解释“随机状态”的真正含义吗
import numpy as np
from sklearn.model_selection import train_test_split
X, y = np.arange(10).reshape((5, 2)), range(5)
X
list(y)
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.33, random_state=42)
X_train
y_train
X_test
y_test
Run Code Online (Sandbox Code Playgroud)
为什么将其硬编码为42?
小智 9
如果您没有在代码中指定 random_state,那么每次运行(执行)您的代码时都会生成一个新的随机值,并且每次训练和测试数据集都会有不同的值。
但是,如果分配了一个固定值,如 random_state = 0 或 1 或 42 或任何其他整数,那么无论您执行代码多少次,结果都是相同的,即训练和测试数据集中的值相同。
当每次运行的代码中未定义 Random_state 时,训练数据将发生变化,并且每次运行的准确性可能会发生变化。当定义 Random_state = "constant integer" 时,每次运行的训练数据都将是恒定的,以便于调试。
这不是很明显吗?42是对生命,宇宙和万物的终极问题的解答。
值得一提的是,random_state
只需为随机生成器设置一个种子,这样火车测试的分割始终是确定性的。如果您不设置种子,则每次都不同。
相关文件:
random_state
:int
,RandomState
实例或None
,可选的(默认=None
)
如果int
,random_state
是由随机数发生器使用的种子; 如果是RandomState
instance,random_state
是随机数生成器;如果为None
,则随机数生成器是所RandomState
使用的 实例np.random
。