PySpark randomSplit 与 SkLearn 火车测试拆分 - 随机种子问题

PySpark randomSplit vs SkLearn Train Test Split - Random Seed Question

假设我有一个 pandas 数据框并应用 sklearn.model_selection.train_test_split 并将 random_seed 参数设置为 1。

假设我然后采用完全相同的 pandas 数据帧并使用 SQLContext 的实例创建一个 Spark 数据帧。如果我在 seed 参数设置为 1 的情况下应用 PySpark randomSplit 函数,我是否总能保证获得相同的精确拆分?

一般不会。

大多数 "random" 数字生成器实际上是函数,它们接受一些输入值并生成非常长的字节流,这些字节流可以转换为其他类型的值。 "randomness" 源于这样一个事实,即仅给定此流中的值,即使你想要多少,也很难预测下一个值或提取原始输入值。

这个输入值就是我们所说的"seed"。

结果是否相同不仅取决于种子,还取决于sklearnpyspark是否使用完全相同的随机数生成器实现,OS 它们 运行,处理器架构...