使用spark / scala中的不同预处理交叉验证多个模型

时间:2017-07-09 12:56:12

标签: scala apache-spark apache-spark-mllib

我正在使用Spark和Scala。我想对我的数据进行不同的预处理。有没有办法使CrossValidator采用多个模型(也使用ParamMaps)从这两个模型中获取最佳模型? 例如我想做的是:

val discretizer = new QuantileDiscretizer()
  .setInputCol("column1")
  .setOutputCol("column1disc")
  .setNumbuckets(5)
val normalizer = new Normalizer()
  .setInputCol("column1")
  .setOutputCol("column1norm")

val lr1 = new LinearRegression()
  .setFeaturescol(discretizer.getOutputCol)
  .setMaxIter(10)
val lr2 = new LinearRegression()
  .setFeaturescol(normalizer.getOutputCol)
  .setMaxIter(10)

val pipeline = new Pipeline().setStages(Array(dicretizer,normalizer,lr1,lr2))

现在我希望我的CrossValidator从lr1和lr2中选择最好的两个模型。这只是一个小例子,我想用ParamMaps将它扩展到多个这样的可能性。

1 个答案:

答案 0 :(得分:0)

您应该能够使用How to use CrossValidator to choose between different models中的自定义估算工具相​​互评估这些模型。