Я пытаюсь настроить ParamGrid для использования перекрестной проверки позже.Но я не смог найти объяснения по поводу входных аргументов.
После создания конвейера я пытаюсь создать сетку параметров, но так как я не понимаю, какие записи ожидаются, я получаю ошибки.
//creating my pipeline with indexer, oneHotEncoder, creating the feature vector and applying linear regression on it
val IndexedList = StringList.flatMap{ name =>
val indexer = new StringIndexer().setInputCol(name).setOutputCol(name + "Index")
val encoder = new OneHotEncoderEstimator()
.setInputCols(Array(name+ "Index"))
.setOutputCols(Array(name + "vec"))
Array(indexer,encoder)
}
val features = new VectorAssembler().setInputCols(Array("Modellvec", "KM", "Hubraum", "Fuelvec","Farbevec","Typevec","F1","F2","F3","F4","F5","F6","F7","F8")).setOutputCol("Features2")
val linReg = new LinearRegression()//.setFeaturesCol(features2.getOutputCol).setLabelCol("Preis")
//creates the Array of stages
val IndexedList3 = (IndexedList :+ features :+ linReg).toArray[PipelineStage]
val pipeline2 = new Pipeline()
//This grid should be created in order to apply cross-validation
val <b>pipeline_grid</b> = new ParamGridBuilder()
.baseOn(pipeline2.stages -> IndexedList3)
.addGrid(linReg.regParam, Array(10,15,20,25,30,35,40,45,50,55,60,65,70,75) ).build()
Первая часть работает просто отличнокогда я запускаю его отдельно.
Проблема в том, что я не понимаю, как должен выглядеть массив в "addGrid" (или как я должен выбирать значения) и почему это проблема, что linReg.regParam имеет тип DoubleParam, так как addGrid IS определен для этого типа.
В большинстве примеров, которые я видел, этот массив появляется из ниоткуда.Так может ли кто-нибудь объяснить мне, откуда это?