У меня есть вопрос.Я пытаюсь сериализовать модель 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
Мне интересно, как я мог бы отладить эту проблему.Есть ли способ как-то сравнить результаты после каждого этапа, чтобы увидеть, где проявляются различия?Любые предложения приветствуются.