gpt4 book ai didi

apache-spark - 如何在 PySpark 中使用交叉验证提取平均指标

转载 作者:行者123 更新时间:2023-12-04 03:10:45 25 4
gpt4 key购买 nike

我正在尝试在 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 2.x 中,可以使用 model.avgMetrics 获得平均指标。 .这将返回一个包含用于训练交叉验证模型的指标的 double 数组。

对于 MulticlassClassificationEvaluator ,这给出了一个数组:f1、weightedPrecision、weightedRecall、accuracy(如文档所示 here)。可以根据需要使用评估器类中的 setter 覆盖这些指标。

如果您还需要获得交叉验证器选择的最佳模型参数,请参阅我在 here 中的回答。 .

关于apache-spark - 如何在 PySpark 中使用交叉验证提取平均指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45510985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com