Как обученные модели ML должны быть включены в пакет, в котором ИСПОЛЬЗУЮТСЯ эти обученные модели

#r #package

Вопрос:

Я работал над проектом ML, для которого эта работа (выполненная внутри R-проекта) привела к созданию некоторых моделей ML (построенных с помощью каретки) ВМЕСТЕ С кодом, который использует эти модели для дополнительного анализа.

В качестве следующего этапа я «развертываю» эти модели, создавая R-пакет, который мои сотрудники могут использовать для анализа новых данных, где этот анализ включает ИСПОЛЬЗОВАНИЕ обученных моделей ML. Этот пакет включает функции, которые генерируют отчеты, где в этот отчет встроено применение обученных моделей ML к новым наборам данных.

Я пытаюсь определить «правильный» способ включения этих обученных моделей в пакет. (Обратите внимание, что в настоящее время каждая модель сохраняется в отдельном файле .rds).

Я хочу иметь возможность использовать эти модели внутри функций пакета.

Я также хочу рассмотреть возможность «обновления» моделей до новой версии позже.

Так… должен ли я:

  1. Включите файлы .rda в inst/exdata
  2. Включить как часть sysdata.rda
  3. Поместите их во внешний пакет данных (что кажется разумным, за исключением того, что почти все примеры в учебных пособиях ожидают, что пакет данных будет включать объекты data.frame.)

Что касается этого третьего варианта … Я отмечаю, что эти модели, вероятно, подразумевают наличие некоторых дополнительных проблем с «ПРОСТРАНСТВОМ ИМЕН», поскольку для использования моделей потребуется целая куча материалов, связанных с каретками. Требуется ли изменение пространства ИМЕН в пакете «данные» или в пакете, который я создаю, который будет «использовать» модели?

Ответ №1:

Мое первое намерение-пойти на 1. Нет необходимости переходить к другим форматам, таким как PMML, поскольку вы хотите запускать его только в R. Поэтому я считаю Rda изначально лучшим. До тех пор, пока ваши модели не огромны, было бы неплохо поделиться ими с коллегами (но, возможно, не для пакета CRAN). Я вижу, что 3. звучит удобно, но зачем разделять модели и функции? Затем свежеобученные модели будут поставляться с новой версией пакета, так как вам в любом случае потребуется пакет данных. Я не вижу, чтобы таким образом можно было многое получить, но у меня мало опыта работы с пакетами данных.