Scala: как изменить использование значения порога путем перекрестной проверки для определения его прогнозов? - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь использовать gridSearch, чтобы найти лучшие гиперпараметры для модели.

Вот мой код:

var featuresList = Array("Age","Gender","Qualifications")

val assembler = new VectorAssembler().setInputCols(featuresList_RF).setOutputCol("features")    
val randomForest = new RandomForestClassifier().setLabelCol("label").setFeaturesCol("features")

val pipeline_RF = new Pipeline().setStages(Array(assembler, randomForest))

val paramGrid_RF = new ParamGridBuilder().addGrid(randomForest.numTrees, Array(50, 100, 250, 500)).addGrid(randomForest.maxDepth, Array(5, 10, 15)).addGrid(randomForest.maxBins, Array(50, 100, 208)).addGrid(randomForest.minInstancesPerNode, Array(10, 50, 100)).build()

val RF = new CrossValidator().setEstimator(pipeline_RF).setEvaluator(new BinaryClassificationEvaluator).setEstimatorParamMaps(paramGrid_RF)
val model_RF = RF.fit(train) 
var predictions = model_RF.transform(test).select("probability", "prediction)

Я создаю таблицу с 2 столбцами:

  • Вероятность
  • Прогноз

Я понимаю, что:

  • если вероятность <0,05, я получаю прогноз 0 </li>
  • если оно больше 0,05, я получаю 1.

Можно ли использовать перекрестную проверку, чтобы найти наилучшую модель, используя другое пороговое значение, чем 0,05?У меня не очень хорошая особенность для моей модели, моя вероятность часто очень низкая, возможно, 0,05 не лучший в моем случае ...

...