gpt4 book ai didi

apache-spark - SparkR - 为数据挖掘创建测试和训练数据帧

转载 作者:行者123 更新时间:2023-12-04 03:56:40 25 4
gpt4 key购买 nike

我希望将 SparkR DataFrame 分成两个子集,一个用于训练,另一个用于测试 glim。

我在 R 中执行此操作的常规方法是创建行的数组索引,将数组采样到新数组中,然后根据行在子集中或不在子集中对数据进行子集化。例如

seed=42 # of course
index <- 1:nrow(df) # sample works on vectors
trainindex <- sample(index, trunc(length(index)/2)) # split data set into two
train <- df[trainindex, ] # training data set
test <- df[-trainindex, ] # all the records not in the training data set

这种方法似乎不适用于 SparkR 数据帧,因为行不像在 R 中那样是唯一可寻址的。

由于数据集的分区是数据挖掘的基本技术,有没有人开发出一种方法来随机分区 DataFrame 的行?

基于这个想法,我似乎在工作时不断在 R data.frames 和 Spark DataFrames 之间来回切换。用相似数据帧的多个副本填充内存似乎是不可取的。有没有人对在数据挖掘项目中使用 SparkR DataFrames 的一般方法有好的建议?例如,使用 R data.frames 执行直到阶段 X 的所有任务,然后切换到 Spark DataFrames?

最佳答案

我找到了问题第一部分的答案(第二部分需要更长的时间)。对于那些跟随...
sdfData <- createDataFrame(sqlContext, index)train <- sample(sdfData, withReplacement=FALSE, fraction=0.5, seed=42)test <- except(sdfData, train)

关于apache-spark - SparkR - 为数据挖掘创建测试和训练数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37635963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com