Итак, я тренирую xgboost
с настройкой гиперпараметра.Итак, мой фрагмент кода выглядит примерно так:
val paramGrid = new ParamGridBuilder().
addGrid(booster.minChildWeight, Array(0.3,0.6,0.7, 0.8)).
addGrid(booster.eta, Array(0.1,0.2,0.4, 0.6)).
build()
val cv = new CrossValidator().
setEstimator(pipeline).
setEvaluator(evaluator).
setEstimatorParamMaps(paramGrid).
setNumFolds(10)
val cvModel = cv.fit(df)
val bestModel = cvModel.bestModel.asInstanceOf[PipelineModel].stages(1).
asInstanceOf[XGBoostClassificationModel]
Теперь я хочу сохранить карту параметров в текстовом формате и проанализировать ее позже.Однако, когда я пытаюсь экспортировать его в текстовый файл с чем-то вроде этого:
bestModel.extractParamMap()
val file = new File("/home/hadoop/test/hyper_params.txt")
val bw = new BufferedWriter(new FileWriter(file))
bw.write(bestModel.extractParamMap())
bw.close()
я получаю следующую ошибку:
error: overloaded method value write with alternatives:
(x$1: Int)Unit <and>
(x$1: String)Unit <and>
(x$1: Array[Char])Unit
cannot be applied to (org.apache.spark.ml.param.ParamMap)
bw.write(bestModel.extractParamMap())
Я довольно новичок вscala и не удалось найти решение о том, как сохранить карту параметров в файл .txt
.Это первый шаг моей проблемы.
Далее я хочу создать некоторые переменные, в которых я хочу прочитать значение сохраненных параметров из файла .txt
.
Скажите что-то вроде этого:
val min_child_weight=('../param.txt){key value here}
Так как я могу это сделать?Я просмотрел несколько постов, таких как , и , , но не смог выяснить код для моих целей.