Я реализовал простой наивный байесовский метод, который в точности совпадает с приведенным примером в уроках spark.Вот как я это реализовал:
public void applyNaiveBayes(String fileWithBinaryLabelsPath){
Dataset<Row> dataFrame =
sparkBase.getSpark().read().format("libsvm").load(fileWithBinaryLabelsPath);
Dataset<Row>[] splits = dataFrame.randomSplit(new double[]{0.8, 0.2}, 1234L);
Dataset<Row> train = splits[0];
Dataset<Row> test = splits[1];
NaiveBayes nb = new NaiveBayes();
NaiveBayesModel model = nb.fit(train);
Dataset<Row> predictions = model.transform(test);
predictions.show();
MulticlassClassificationEvaluator evaluator = new MulticlassClassificationEvaluator()
.setLabelCol("label")
.setPredictionCol("prediction")
.setMetricName("accuracy");
double accuracy = evaluator.evaluate(predictions);
System.out.println("Test set accuracy = " + accuracy);
}
Работает хорошо.Но мне нужна еще одна вещь.Здесь я использую% 20 моих данных в качестве тестовых данных.После расчетов я хочу получить данные результатов, я имею в виду то, что наивный байес предсказал для каждой строки.Как я могу сделать это в Java?