我的LabeledPoint
中有一些不平衡的数据。我想要做的是选择所有阳性和n
次阴性(随机)。例如,如果我有100
个肯定和30000
个否定关键字,我想创建包含所有LabeledPoint
个正面和100
个底片300
的新n=3
})。
在实际情况中,我不知道我在开始时有多少正面和负面。
答案 0 :(得分:7)
据推测,您的数据是RDD[LabeledPoint]
。您可以执行以下操作:
val pos = rdd.filter(_.label==1)
val numPos=pos.count()
val neg = rdd.filter(_.label==0).takeSample(false, numPos*3)
val undersample = pos.union(neg)
您可以找到takeSample
,filter
和union
here的文档。