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"。
结果是否相同不仅取决于种子,还取决于sklearn
和pyspark
是否使用完全相同的随机数生成器实现,OS 它们 运行,处理器架构...
假设我有一个 pandas
数据框并应用 sklearn.model_selection.train_test_split
并将 random_seed
参数设置为 1。
假设我然后采用完全相同的 pandas
数据帧并使用 SQLContext
的实例创建一个 Spark 数据帧。如果我在 seed
参数设置为 1 的情况下应用 PySpark randomSplit
函数,我是否总能保证获得相同的精确拆分?
一般不会。
大多数 "random" 数字生成器实际上是函数,它们接受一些输入值并生成非常长的字节流,这些字节流可以转换为其他类型的值。 "randomness" 源于这样一个事实,即仅给定此流中的值,即使你想要多少,也很难预测下一个值或提取原始输入值。
这个输入值就是我们所说的"seed"。
结果是否相同不仅取决于种子,还取决于sklearn
和pyspark
是否使用完全相同的随机数生成器实现,OS 它们 运行,处理器架构...