【发布时间】:2018-08-03 03:23:22
【问题描述】:
我正在尝试在 Spark 1.6.0 中对随机森林执行交叉验证,但我发现很难获得评估指标(精度、召回率、f1 ...)。我想要所有折叠的指标的平均值。是否可以通过CrossValidator 和MulticlassClassificationEvaluator 获得它们?
我只找到了稍后在独立测试数据集上执行评估并使用交叉验证中的最佳模型的示例。我不打算使用训练集和测试集,而是使用所有数据帧 (df) 进行交叉验证,让它进行拆分,然后取平均指标。
paramGrid = ParamGridBuilder().build()
evaluator = MulticlassClassificationEvaluator()
crossval = CrossValidator(
estimator=pipeline,
estimatorParamMaps=paramGrid,
evaluator=evaluator,
numFolds=5)
model = crossval.fit(df)
evaluator.evaluate(model.transform(df))
目前,我使用上述代码的最后一行 evaluator.evaluate(model.transform(df)) 获得了最佳模型指标,但我并不完全确定自己做得是否正确。
【问题讨论】:
-
我非常怀疑这是否可能——在 Spark 1.x 中,甚至无法获得最佳模型参数:stackoverflow.com/questions/31749593/…
-
但在这种情况下,我说的是评估指标,而不是参数。真的没有办法吗?或者甚至是最好的模特?
标签: apache-spark pyspark