Crossvalidator () завершается с конвейером: «исключение выдается в awaitResult» - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь запустить простой конвейер в Spark, однако при использовании CrossValidator () выдается ошибка awaitResult. Этого не происходит с TrainValidationSplit ().

Я пытался разместить CrossValidator () внутри и снаружи конвейера, оба возвращают одну и ту же ошибку.

\\ Pipeline components
val discretizer = new QuantileDiscretizer()
  .setNumBuckets(7) 
  .setInputCol("rmse")
  .setOutputCol("actual_error_bucket")

val assmbleFeatures: VectorAssembler = new VectorAssembler()
  .setInputCols(featureColumns)
  .setOutputCol("features")

val randomForest = new RandomForestClassifier()
  .setLabelCol("actual_error_bucket")
  .setFeaturesCol("features")
  .setImpurity("entropy")
  .setSubsamplingRate(0.8)

// Pipeline
val pipeline = new Pipeline()
  .setStages(Array(discretizer, assmbleFeatures, randomForest)) 


val paramGrid = new ParamGridBuilder()
  .addGrid(randomForest.maxDepth, (10 to 20 by 10).toArray) 
  .addGrid(randomForest.numTrees, (100 to 130 by 10).toArray)
  .addGrid(randomForest.maxBins, (12 to 22 by 10).toArray)
  .build()

// throws error
val crossValidator = new CrossValidator()
  .setEstimator(pipeline)
  .setEstimatorParamMaps(paramGrid)
  .setEvaluator(new MulticlassClassificationEvaluator)
  .setNumFolds(2)

val Array(training, test) = df.randomSplit(Array(0.75, 0.25), seed = 12345)
val pipeLineModel = tvs.fit(training)

Я ожидал, что обученная модель будет такой же, как и при работе вне конвейера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...