package water.api.schemas3; import hex.ModelMetricsMultinomial; import static hex.ModelMetricsMultinomial.getHitRatioTable; import water.api.API; import water.api.SchemaServer; import water.util.TwoDimTable; public class ModelMetricsMultinomialV3<I extends ModelMetricsMultinomial, S extends ModelMetricsMultinomialV3<I, S>> extends ModelMetricsBaseV3<I, S> { @API(help="The R^2 for this scoring run.", direction=API.Direction.OUTPUT) public double r2; @API(help="The hit ratio table for this scoring run.", direction=API.Direction.OUTPUT, level= API.Level.expert) public TwoDimTableV3 hit_ratio_table; @API(help="The ConfusionMatrix object for this scoring run.", direction=API.Direction.OUTPUT) public ConfusionMatrixV3 cm; @API(help="The logarithmic loss for this scoring run.", direction=API.Direction.OUTPUT) public double logloss; @API(help="The mean misclassification error per class.", direction=API.Direction.OUTPUT) public double mean_per_class_error; @Override public S fillFromImpl(I modelMetrics) { super.fillFromImpl(modelMetrics); logloss = modelMetrics._logloss; r2 = modelMetrics.r2(); if (modelMetrics._hit_ratios != null) { TwoDimTable table = getHitRatioTable(modelMetrics._hit_ratios); hit_ratio_table = (TwoDimTableV3) SchemaServer.schema(this.getSchemaVersion(), table).fillFromImpl(table); } if (null != modelMetrics._cm) { modelMetrics._cm.table(); // Fill in lazy table, for icing cm = (ConfusionMatrixV3) SchemaServer.schema(this.getSchemaVersion(), modelMetrics._cm).fillFromImpl (modelMetrics._cm); } return (S)this; } }