Можно ли каким-либо образом делать предсказания с помощью изученной модели, используя только подмножество функций, которые использовались при обучении? Например, изученная функция с f (x1, x2, x3) = y = b1x1 + b2x2 + b3x3 + e; затем сделайте прогноз только с b1x1 + b2x2, отказавшись от функции x3.
Я пробовал:
Для обучения модели:
val featureAssembler = new VectorAssembler().
setInputCols(Array("X1", "X2", "X3")).
setOutputCol("features")
val lr = new LinearRegression().setLabelCol("y").setFeaturesCol("features")
val pipeline = new Pipeline().setStages(Array(featuerAssembler, lr))
val model = pipeline.fit(trainingData)
Для проверки с подмножеством функций:
val featureAssemblerValidation = new VectorAssembler().
setInputCols(Array( "X1", "X2")).
setOutputCol("features")
val pipelineValidation = new Pipeline().setStages(Array(featureAssemblerValidation))
val validationData = pipelineValidation.fit(testData).transform(testData)
val lrModel = model.stages.last.asInstanceOf[LinearRegressionModel]
val validationA = lrModel.transform(validationData)
но есть ошибка:
Caused by: java.lang.IllegalArgumentException: requirement failed: BLAS.dot(x: Vector, y:Vector) was given Vectors with non-matching sizes: x.size = 181, y.size = 587
что понятно; модели по-прежнему нужна та же форма, но после создания подмножества я подгоняю ее под другую форму.