diff --git a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Booster.java b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Booster.java index f97aa3a39..d8ba6ea8e 100644 --- a/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Booster.java +++ b/jvm-packages/xgboost4j/src/main/java/ml/dmlc/xgboost4j/java/Booster.java @@ -242,7 +242,14 @@ public class Booster implements Serializable, KryoSerializable { String stringFormat = evalSet(evalMatrixs, evalNames, iter); String[] metricPairs = stringFormat.split("\t"); for (int i = 1; i < metricPairs.length; i++) { - metricsOut[i - 1] = Float.valueOf(metricPairs[i].split(":")[1]); + String value = metricPairs[i].split(":")[1]; + if (value.equalsIgnoreCase("nan")) { + metricsOut[i - 1] = Float.NaN; + } else if (value.equalsIgnoreCase("-nan")) { + metricsOut[i - 1] = -Float.NaN; + } else { + metricsOut[i - 1] = Float.valueOf(value); + } } return stringFormat; }