У меня есть модель xgboost
на двух разных серверах - тестовом сервере и производственном сервере. Каждый сервер имеет абсолютно одинаковые данные и абсолютно одинаковый код, но когда я применяю одну и ту же модель к одинаковым данным в каждой среде, я получаю немного разные результаты. Нам нужно, чтобы результаты были идентичны.
Я обнаружил, что объект разреженной матрицы, который возвращает следующая строка, отличается на каждом сервере:
mm <- sparse.model.matrix(y ~ ., data = df.new)[,-1]
mm
в тесте Сервер имеет @i
и @x
длины 182, тогда как mm
на рабочем сервере имеет @i
и @x
длины 184. Опять же, я сравнил df.new
с обоих серверов, и они идентичны.
Я попытался понизить пакет Matrix
на производственном сервере, чтобы версии совпадали, но он все еще дает другие результаты. Единственная идея, которую я оставил, состоит в том, чтобы соответствовать версиям каждого пакета.
У кого-нибудь есть предложения относительно того, что может происходить? К сожалению, я не могу поделиться данными, но если это поможет, это 227 переменных смешанных типов (775 при преобразовании в разреженную матрицу модели). Большинство переменных в основном 0. 0. 1019 *
Я не знаю, имеет ли это значение или нет, но тестовый сервер - Windows, а рабочий сервер - Linux.