Spark:随机取样,使用相同数量的样本替换每个类的DataFrame

时间:2016-07-21 15:27:03

标签: scala apache-spark spark-dataframe resampling apache-spark-ml

尽管存在许多看似相似的问题但没有人回答我的问题。

我已经处理了DataFrame,以便将其投放到DecisionTreeClassifier,并且其中包含一列label,其中包含0.0或{{1} }。

我需要引导我的数据集,方法是为我的1.0列的每个值随机选择替换相同数量的行。

我查看了所有文档,我找到的只有labelDataFrame.sample(...),但问题是保留的样本数量不保证,第二个不保证允许更换!这对于较大的数据集来说不是问题,但在我的大约50%的情况下,我将拥有一个少于一百行的标签值,而且我真的不想要偏斜的数据。

尽管我付出了最大的努力,但我无法找到解决这个问题的干净解决方案,我解决了问题。收集整个DataFrame并在Scala中“手动”进行采样,然后重新创建一个新的DataFrame来训练我的DataFrameStatFunctions.sampleBy(...)。但这看起来非常低效和繁琐,我更愿意继续使用DataFrame并保留来自该结构的所有好处。

以下是我目前的实施情况,以便您准确了解我想要做的事情:

DecisionTreeClassifier

有人知道如何只使用DataFrames来实现这样的采样吗? 我很确定它会大大加快我的代码速度! 谢谢你的时间。

0 个答案:

没有答案