Если ваш вопрос заключается в том, почему прогнозируемое значение больше 1 для некоторых строк в тестовом наборе, то это связано с тем, что тестовые значения имеют более короткие mean_lengths. Т.е. для их изолирования по сравнению с данными обучения требуется меньше разбиений, чем среднее. Помните, что в изолированном лесу используется ансамбль деревьев (а не одно). Поэтому, если у вас есть записи, более уникальные, чем обучение (аномалии), тогда ваше прогнозируемое значение может быть больше 1 (или mean_length короче обычного).
Вы можете увидеть это, посмотрев на строки в ваших тестовых данных которые имеют predict
больше 1:
scores[scores[,1] > 1, ]
predict mean_length
1 1.232558 3.82
2 1.023256 4.36
3 1.069767 4.24
4 1.286822 3.68
Кроме того, вы можете видеть, что ваши данные обучения имели среднее значение средней_длины для всех строк, равное 4,42 (что больше, чем из ваших тестовых данных, mean_lengths выше)
scores_train <- h2o.predict(model,train)
mean(scores_train[,'mean_length'])
4.42
Прочтите этот пост , чтобы узнать больше об интерпретации изолированных лесов.