Ich benutze Spark (1.5.2) DataFrames und versuche, ein geschichtetes Dataset zu erhalten. Meine Daten wurden für binäre Klassifizierung vorbereitet und es gibt nur die beiden Werte für class
, 1 und 0.sampleBy liefert sehr verzerrte Ergebnisse
val Array(trainingData, testData) = df.randomSplit(Array(0.7, 0.3))
val fractions: Map[Int, Double] = Map(1 -> 0.5, 0 -> 0.5)
val trainingData3 = trainingData.stat.sampleBy("class", fractions, new Random().nextLong)
println("Training True Class = " + trainingData3.where("class=1").count())
println("Training False Class = " + trainingData3.where("class=0").count())
Auf der Konsole erhalte ich eine Ausgabe ein erheblich falsches Verhältnis der Klasse 1 auf 0 zeigt:
Training True Class = 799845
Training False Class = 32797260
Sie könnten nach dieser http://stackoverflow.com/a/32241887/3415409 suchen – eliasah