java - 如何在 Apache Spark Pipeline 中打印最佳模型参数?

标签 java apache-spark machine-learning apache-spark-mllib

我正在使用 Apache Spark 的管道 API 来验证参数。 我正在像这样构建 TrainValidationSplitModel :

Pipeline pipeline = ...
ParamMap[] paramGrid = ...

TrainValidationSplit trainValidationSplit = new TrainValidationSplit().setEstimator(pipeline).setEvaluator(new MulticlassClassificationEvaluator()).setEstimatorParamMaps(paramGrid).setTrainRatio(0.8);
TrainValidationSplitModel model = trainValidationSplit.fit(training);

我的问题是:如何提取和打印经过最佳训练的模型的参数?

最佳答案

我终于做到了。 Spark 在训练后打印这些指标。我有 spark 的错误日志级别,所以我没有看到这个:

2015-10-21 12:57:33,828 [INFO  org.apache.spark.ml.tuning.TrainValidationSplit]
Train validation split metrics: WrappedArray(0.7141940371838821, 0.7358721053749735)

2015-10-21 12:57:33,831 [INFO  org.apache.spark.ml.tuning.TrainValidationSplit]
Best set of parameters:
{
    hashingTF_79cf758f5ab1-numFeatures: 2000000,
    nb_67d55ce4e1fc-smoothing: 1.0
}

2015-10-21 12:57:33,831 [INFO  org.apache.spark.ml.tuning.TrainValidationSplit]
Best train validation split metric: 0.7358721053749735.

现在我在我的 log4j.properties 文件中为类 TrainValidationSplit 添加了级别信息:

log4j.logger.org.apache.spark.ml.tuning.TrainValidationSplit=INFO
log4j.additivity.org.apache.spark.ml.tuning.TrainValidationSplit=false

关于java - 如何在 Apache Spark Pipeline 中打印最佳模型参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32565594/

相关文章:

scala - 在spark.sql中使用group by选择多个元素

scala - Spark Scala 注册 UDF - 为什么我需要在函数末尾传递下划线 (_)

python - 稀疏张量以减少训练时间

python - 寻找返回黑盒模型最大输出的最佳输入组合

machine-learning - 如何学习语言模型?

java - 使用 jar 文件和资源创​​建 exe

scala - 将scala列表转换为DataFrame或DataSet

java - 通过Java Spring注解替换字符串

Java/数据库查询 : null or Excpetion?

Java Swing 强制 UI 线程上的光标外观发生变化