Сохраненная модель: используется модель 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