MLeap и Spark ML SQLTransformer - PullRequest
       59

MLeap и Spark ML SQLTransformer

0 голосов
/ 28 июня 2019

У меня есть вопрос.Я пытаюсь сериализовать модель PySpark ML, чтобы mleap.Тем не менее, модель использует SQLTransformer для выполнения некоторых преобразований на основе столбцов, например, добавляя версии некоторых столбцов в масштабе журнала.Как мы все знаем, Mleap не поддерживает SQLTransformer - см. Здесь: https://github.com/combust/mleap/issues/126, поэтому я реализовал первый из этих двух предложений:

  • Для операций, не связанных со строками, переместитеSQL из ML Pipeline, который вы планируете сериализовать
  • Для операций на основе строк используйте доступные преобразователи ML или напишите настраиваемый преобразователь <- здесь поможет документация по настраиваемому преобразователю. </li>

Я вывел преобразование SQL на тренировочные данные, используемые для построения модели, и я делаю то же самое для входных данных, когда запускаю модель для оценки.

Проблема, с которой я столкнулсяв том, что я не могу получить одинаковые результаты для 2 моделей.Модель 1 - модель Pure Spark ML, содержащая

SQLTransformer + later transformations : StringIndexer -> 
OneHotEncoderEstimator -> VectorAssembler -> RandomForestClassifier

Модель 2 - Внешняя версия с запросами SQL, выполняемыми на обучающих данных при построении модели.Преобразования - это все, что после SQLTransformer в модели 1:

 StringIndexer -> OneHotEncoderEstimator -> 
 VectorAssembler -> RandomForestClassifier

Мне интересно, как я мог бы отладить эту проблему.Есть ли способ как-то сравнить результаты после каждого этапа, чтобы увидеть, где проявляются различия?Любые предложения приветствуются.

...