Я хочу создать веб-страницу с помощью Spring Boot и показать результат набора данных, используя там apache spark ml.
Скажите, пожалуйста, как решить эту проблему. Мой код ниже. Тип результата: Dataset<Row>
Какой тип мне следует изменить для печати в Интернете? Я попытался вызвать метод execute
в приложении Spring Boot
В заключение я пытаюсь отобразить результаты вычислений в IDE в Интернете.
public class BLR_class {
static train_test_split_Binary_Classification set = new train_test_split_Binary_Classification();
static Dataset<Row> train_set = set.split()[0];
static Dataset<Row> test_set = set.split()[1];
public static void main(String[] args) {
}
public static double execute() {
Dataset<Row> pred_result = predict();
pred_result.select("OX", "prediction", "features").show();
System.out.println("=========================================");
Dataset<Row> pred_best = tuning();
pred_best.select("OX", "prediction", "features").show();
double UnderROC_rate = under_ROC_rate();
System.out.println("UnderROC_rate = " + UnderROC_rate);
Dataset<Row> result = pred_best.select("OX", "prediction", "features");
return result
}
public static LogisticRegression LR() {
LogisticRegression lr = new LogisticRegression()
.setMaxIter(100)
.setRegParam(0.03)
.setLabelCol("OX")
.setFeaturesCol("features");
return lr;
}
public static LogisticRegressionModel fit() {
LogisticRegression lr = LR();
// Fit the model
LogisticRegressionModel lr_Model = lr.fit(train_set);
return lr_Model;
}
public static Dataset<Row> predict() {
LogisticRegressionModel lr_Model = fit();
Dataset<Row> predicted = lr_Model.transform(test_set);
return predicted;
}
public static Dataset<Row> tuning() {
LogisticRegression lr = LR();
BinaryClassificationEvaluator evaluator = new BinaryClassificationEvaluator()
.setLabelCol("OX")
.setRawPredictionCol("rawPrediction")
.setMetricName("areaUnderROC");
CrossValidator crossval = new CrossValidator().setEstimator(lr).setEvaluator(evaluator);
ParamMap[] paramgrid = new ParamGridBuilder()
// .addGrid(lr.regParam(), new double[] {0.01, 0.03, 0.05, 0.3, 0.5})
.addGrid(lr.regParam(), new double[] {0.01})
// .addGrid(lr.maxIter(), new int[] {100, 200, 300, 500})
.addGrid(lr.maxIter(), new int[] {100})
.build();
crossval.setEstimatorParamMaps(paramgrid);
crossval.setNumFolds(5);
CrossValidatorModel CV_model = crossval.fit(train_set);
Model lr_model_best = CV_model.bestModel();
Dataset<Row> predicted_best = lr_model_best.transform(test_set);
return predicted_best;
}
public static double under_ROC_rate() {
Dataset<Row> predicted_best = tuning();
BinaryClassificationEvaluator evaluator = new BinaryClassificationEvaluator()
.setLabelCol("OX")
.setRawPredictionCol("rawPrediction")
.setMetricName("areaUnderROC");
double areaUnderROC_best = evaluator.evaluate(predicted_best);
return areaUnderROC_best;
}
}