From d521136adc54bba71e4343e7a42e73d74da3d561 Mon Sep 17 00:00:00 2001 From: Adam Valenta Date: Wed, 26 Jan 2022 18:46:25 +0100 Subject: [PATCH] PUBDEV-8547 - print eif model into console in the long run of the alhorithm --- .../ExtendedIsolationForest.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/h2o-algos/src/main/java/hex/tree/isoforextended/ExtendedIsolationForest.java b/h2o-algos/src/main/java/hex/tree/isoforextended/ExtendedIsolationForest.java index f3f043d07a26..3e55f7682d80 100644 --- a/h2o-algos/src/main/java/hex/tree/isoforextended/ExtendedIsolationForest.java +++ b/h2o-algos/src/main/java/hex/tree/isoforextended/ExtendedIsolationForest.java @@ -148,8 +148,6 @@ public void computeImpl() { new ExtendedIsolationForestModel.ExtendedIsolationForestOutput(ExtendedIsolationForest.this)); _model.delete_and_lock(_job); buildIsolationTreeEnsemble(); - _model._output._model_summary = createModelSummaryTable(); - LOG.info(_model.toString()); } finally { if(_model != null) _model.unlock(_job); @@ -195,18 +193,26 @@ private void buildIsolationTreeEnsemble() { boolean manualInterval = _parms._score_tree_interval > 0 && (tid +1) % _parms._score_tree_interval == 0; boolean finalScoring = _parms._ntrees == (tid + 1); + boolean scored = false; - _model._output._scored_train[tid + 1] = new ScoreKeeper(); if (_parms._score_each_iteration || manualInterval || finalScoring || (timeToScore && _parms._score_tree_interval == 0)) { + _model._output._scored_train[tid + 1] = new ScoreKeeper(); timeLastScoreStart = System.currentTimeMillis(); ModelMetrics.MetricBuilder metricsBuilder = new ScoreExtendedIsolationForestTask(_model).doAll(_train).getMetricsBuilder(); ModelMetrics modelMetrics = metricsBuilder.makeModelMetrics(_model, _parms.train(), null, null); _model._output._training_metrics = modelMetrics; _model._output._scored_train[tid + 1].fillFrom(modelMetrics); + scored = true; timeLastScoreEnd = System.currentTimeMillis(); } + + final boolean printout = (_parms._score_each_iteration || finalScoring || (sinceLastScore > _parms._score_interval && scored)); + if (printout) { + _model._output._model_summary = createModelSummaryTable(); + _model._output._scoring_history = createScoringHistoryTable(); + LOG.info(_model.toString()); + } } - _model._output._scoring_history = createScoringHistoryTable(); } } @@ -287,7 +293,7 @@ protected TwoDimTable createScoringHistoryTable() { int rows = 0; for (int i = 0; i < sks.length; i++) { - if (i != 0 && Double.isNaN(sks[i]._anomaly_score)) continue; + if (i != 0 && sks[i] != null && Double.isNaN(sks[i]._anomaly_score) || sks[i] == null) continue; rows++; } TwoDimTable table = new TwoDimTable( @@ -299,7 +305,7 @@ protected TwoDimTable createScoringHistoryTable() { ""); int row = 0; for( int i = 0; i