Преобразование файла Rdata размером 10 Мб в PMML с использованием r2PPML дает файл PMML размером 350 Мб. Как я могу уменьшить его размер?

#python #r #random-forest #pmml #rdata

#python #r #случайный лес #pmml #rdata

Вопрос:

У меня есть файл RData, который представляет собой случайную модель леса, размером 10 Мб. Я хочу преобразовать его в PMML, но при использовании библиотеки R2PMML создается файл PMML размером 350 Мб, который слишком велик для работы. Есть идеи, как я могу уменьшить его размер? Я хочу иметь возможность затем использовать PMML в производственной среде python, поэтому файл должен быть значительно меньше.

Ответ №1:

Можно изменить структуру данных дерева решений, указав compact = TRUE параметр преобразования:

 library("r2pmml")
library("randomForest")
iris.rf = randomForest(Species ~ ., data = iris)
r2pmml(iris.rf, "RandomForestIris-compact.pmml", compact = TRUE)
  

Однако размер файла PMML в локальной файловой системе не очень хороший показатель того, сколько памяти он будет потреблять во время выполнения. Ваш файл объемом 350 МБ, вероятно, помещается в 50-75 МБ оперативной памяти при правильной загрузке (например, 100 МБ вашего файла состоят из пробелов).

Комментарии:

1. Благодаря использованию параметра compact = True размер уменьшился более чем наполовину, но все еще составляет около 150 МБ. Есть идеи, как уменьшить размер еще больше?

2. Посмотрите оставшуюся часть моего ответа — размер файла PMML в локальной файловой системе не является хорошей мерой чего-либо. Если вы хотите сравнить размеры файлов RDATA и PMML, то сначала вы должны сжать файл PMML — файл PMML размером 150 МБ также будет иметь размер 5-15 МБ, и ваша проблема будет «решена».