【问题标题】:DRF model Predictions using H2O and scoring使用 H2O 和评分的 DRF 模型预测
【发布时间】:2017-06-13 19:33:08
【问题描述】:

我的目标是使用我拥有的 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 建模和预测计算?

【问题讨论】:

    标签: algorithm apache-spark h2o


    【解决方案1】:

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

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

    @编辑:

    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.
    

    【讨论】:

    • 你能简单介绍一下二项式吗?我需要'pred'中的R2 RMSE等((Frame pred = drf.score(testDataFrame); //对测试进行评分))我还需要找到测试帧与模型的偏差。你介意也提供一个代码示例吗?
    • @RejoyMathew 看到编辑,应该可以工作,但我自己没有运行。
    • 非常感谢您提供快速响应。
    • 我还有一个问题:在模型的训练和评分之后,我如何找到特征重要变量(在 JAVA 中)?
    猜你喜欢
    • 2018-12-18
    • 2020-03-18
    • 2019-10-05
    • 2019-10-04
    • 2021-06-08
    • 2017-12-31
    • 2018-11-03
    • 2021-05-26
    • 2019-09-13
    相关资源
    最近更新 更多