Сохраненная модель: используется модель LinearRegression, но новые данные имеют другой размер вектора

Я использую версию Azure и Spark '2.1.1.2.6.2.3-1

Я сохранил свою модель, используя следующую команду:

def fit_LR(training,testing,adl_root_path,location,modelName):
    training.cache()
    lr = LinearRegression(featuresCol = 'features',labelCol = 'ZZ_TIME',solver="auto",maxIter=100)
    lr_model = lr.fit(training)
    testing.cache()

    lr_outpath = adl_root_path + "Model/Sprint6Results/RUN/" + str(location) + str(modelName)

    lr_model_save = lr_model.write().overwrite().save(lr_outpath)

Когда я попытался использовать модель и перезагрузил ее

saved_model_path = adl_root_path + "Model/Sprint6Results/RUN/" + str(location) + str(modelName)
reloaded_model = LinearRegressionModel.load(saved_model_path)
testing.cache()
reloaded_model.numFeatures()

Исходные объекты данных, сгенерированные с использованием исторических данных, имели векторный размер 1545. Новые объекты данных были сгенерированы с помощью той же методологии с теми же необработанными столбцами, а затем мы просто использовали string_indexer, а кодирование в режиме горячего кодирования сгенерировало только размер 1361. Главное отличие Я видел, так как новые данные имеют меньший набор значений доменов, что исторические они создают меньший размер. Есть ли способ сделать его одинаковым по размеру?

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

Есть ли решение этой проблемы?

Ошибка, которую я получаю, такова:

Caused by java.lang.IllegalArgumentException: requirement failed: BLAS.dot(x:Vector, y:Vector) was given Vectors with non-matching sizes: x-size = 1361 y-size = 1545

0 ответов

Другие вопросы по тегам