Spark mllib洗牌数据

时间:2016-01-22 17:04:00

标签: apache-spark apache-spark-mllib

spark mllib包是否会对数据进行洗牌。我一直在对数据使用randomSplit,但是,查看它看起来像它具有相同顺序的分割。

有没有办法在拆分数据之前对数据进行混洗?

1 个答案:

答案 0 :(得分:2)

我认为你在分割时混淆了随机种子的实际数据混乱。如果您将拆分种子设置为常量,让我们说每个示例11L,您将始终获得相同的拆分。

正如@ zero323所述,Mllib只是通过遍历每个分区来获取随机样本。

有没有办法在拆分数据之前对其进行随机播放?

这取决于具体情况。您可以随时重新分区或按随机值排序,但它是

  1. 昂贵
  2. 如果您希望每次都获得不同的结果,则需要一些努力来避免缓存
  3. 如果需要,可以更难获得可重复的样本。
  4. 因此,我的方法是对分裂种子进行迭代和屈服。这是交叉验证的主要原则。这样,您可以根据您正在执行的评估步骤获得最佳种子。而且你有可重复的样本,但这种方法非常昂贵。

    我希望这会有所帮助。