DRF模型使用H2O和评分的预测

时间:2017-06-12 03:14:44

标签: algorithm apache-spark h2o

我的目标是使用我的TRAIN,VALIDATION和TEST数据集在H2O中创建DRF模型,并在TEST模型上预测RMSE,R2,MSE等。

以下是一段代码:

DRFParameters rfParms = (DRFParameters) algParameter;
rfParms._response_column = trainDataFrame._names[responseColumn(trainDataFrame)]; //The response column 

rfParms._train = trainDataFrame._key;
//rfParms._valid = testDataFrame._key;
rfParms._nfolds = 5;
DRF job = new DRF(rfParms);
DRFModel drf = job.trainModel().get(); // Train the model
Frame pred = drf.score(testDataFrame); //Score the test

此处我不知道在得分后如何继续寻找预测(R2,RMSE,MSE,MAE等)。

您能否帮助使用JAVA帮助进行H2O DRF建模和预测计算?

1 个答案:

答案 0 :(得分:0)

根据您的模型是回归模型,二项式还是多项模型,您必须使用ModelMetricsRegression.make()ModelMetricsBinomial.make()ModelMetricsMultinomial.make()之一。它们的签名略有不同 - 您可以在我们的Java文档中找到它们。

对于trainDataFrame您可以从drf模型中获取它们,它位于drf._output._training_metrics中(您可能需要将其转换为合适的类型,因为这是一个通用ModelMetrics)。如果您将测试数据集用作验证框架,则可以从drf._output._validation_metrics获取指标。

@Edit:

DRFModel drf = job.trainModel().get(); // Train the model
Frame pred = drf.score(testDataFrame); //Score the test
ModelMetricsBinomial mm = ModelMetricsBinomial.make(preds.vec(2), trainDataFrame.vec(rfParms._response_column));
double auc = mm.auc();
double rmse = mm.rmse();
double r2 = mm.r2();
// etc.