@Override public void eval(INDArray labels, INDArray predictions) { eval(labels, predictions, (INDArray) null); }
public static double getScoreFromRegressionEval(RegressionEvaluation eval, RegressionValue regressionValue) { double sum = 0.0; int nColumns = eval.numColumns(); switch (regressionValue) { case MSE: for (int i = 0; i < nColumns; i++) sum += eval.meanSquaredError(i); break; case MAE: for (int i = 0; i < nColumns; i++) sum += eval.meanAbsoluteError(i); break; case RMSE: for (int i = 0; i < nColumns; i++) sum += eval.rootMeanSquaredError(i); break; case RSE: for (int i = 0; i < nColumns; i++) sum += eval.relativeSquaredError(i); break; case CorrCoeff: for (int i = 0; i < nColumns; i++) sum += eval.correlationR2(i); sum /= nColumns; break; } return sum; }
/** * Average MAE across all columns * @return */ public double averageMeanAbsoluteError() { double ret = 0.0; for (int i = 0; i < numColumns(); i++) { ret += meanAbsoluteError(i); } return ret / (double) numColumns(); }
/** * Average RSE across all columns * @return */ public double averagerelativeSquaredError() { double ret = 0.0; for (int i = 0; i < numColumns(); i++) { ret += relativeSquaredError(i); } return ret / (double) numColumns(); }
/** * Average RMSE across all columns * @return */ public double averagerootMeanSquaredError() { double ret = 0.0; for (int i = 0; i < numColumns(); i++) { ret += rootMeanSquaredError(i); } return ret / (double) numColumns(); }
evaluations[i] = new RegressionEvaluation(); for (int i = 0; i < evaluations.length; i++) { if (lMasks != null && lMasks[i] != null) { evaluations[i].evalTimeSeries(labels[i], outputs[i], lMasks[i]); } else { evaluations[i].evalTimeSeries(labels[i], outputs[i]); for (int i = 0; i < evaluations.length; i++) { if (labels[i].rank() == 3) { evaluations[i].evalTimeSeries(labels[i], outputs[i]); } else { evaluations[i].eval(labels[i], outputs[i]); int totalColumns = 0; for (int i = 0; i < evaluations.length; i++) { int nColumns = evaluations[i].numColumns(); totalColumns += nColumns; sum += getScoreFromRegressionEval(evaluations[i], regressionValue);
RegressionEvaluation evaluation = new RegressionEvaluation(1); INDArray features = testData.getFeatures(); INDArray predicted = net.output(features, false); evaluation.evalTimeSeries(lables, predicted); System.out.println(evaluation.stats());
@Override public String evaluate(FederatedDataSet federatedDataSet) { //evaluate the model on the test set DataSet testData = (DataSet) federatedDataSet.getNativeDataSet(); RegressionEvaluation eval = new RegressionEvaluation(12); INDArray output = model.output(testData.getFeatureMatrix()); eval.eval(testData.getLabels(), output); return "MSE: " + eval.meanSquaredError(11) + "\nScore: " + model.score(); }
RegressionEvaluation regressionEvaluation = new RegressionEvaluation(numClasses); while (iterator.hasNext()) { DataSet next; else regressionEvaluation.eval(next.getLabels(), output, next.getLabelsMaskArray()); s += regressionEvaluation.stats() + System.lineSeparator();
/** * Evaluate the (single output layer only) network for regression performance * @param iterator Data to evaluate on * @return Regression evaluation */ public RegressionEvaluation evaluateRegression(MultiDataSetIterator iterator, List<String> columnNames) { return doEvaluation(iterator, new RegressionEvaluation(columnNames))[0]; }
/** * Average MSE across all columns * @return */ public double averageMeanSquaredError() { double ret = 0.0; for (int i = 0; i < numColumns(); i++) { ret += meanSquaredError(i); } return ret / (double) numColumns(); }
/** * Average R2 across all columns * @return */ public double averagecorrelationR2() { double ret = 0.0; for (int i = 0; i < numColumns(); i++) { ret += correlationR2(i); } return ret / (double) numColumns(); } }
if (labels.rank() == 3) { evalTimeSeries(labels, predictions, maskArray); return; initialize(labels.size(1));
LOGGER.info("Epoch " + i + " complete. Time series evaluation:"); RegressionEvaluation evaluation = new RegressionEvaluation(2); INDArray predicted = net.output(features, true); evaluation.evalTimeSeries(lables, predicted); System.out.println(evaluation.stats());
/** * Evaluate the (single output layer only) network for regression performance * @param iterator Data to evaluate on * @param columnNames Column names for the regression evaluation. May be null. * @return Regression evaluation */ public RegressionEvaluation evaluateRegression(DataSetIterator iterator, List<String> columnNames) { return doEvaluation(iterator, new RegressionEvaluation(columnNames))[0]; }
columnNames = createDefaultColumnNames(numColumns()); int maxLabelLength = 0; for (String s : columnNames) double mse = meanSquaredError(i); double mae = meanAbsoluteError(i); double rmse = rootMeanSquaredError(i); double rse = relativeSquaredError(i); double corr = correlationR2(i);
/** * Evaluate the network for regression performance * @param iterator Data to evaluate on * @return */ public RegressionEvaluation evaluateRegression(DataSetIterator iterator) { return doEvaluation(iterator, new RegressionEvaluation(iterator.totalOutcomes()))[0]; }