gpt4 book ai didi

python - 在 pySpark 中使用 paramGrid 从 CrossValidator 中提取结果

转载 作者:行者123 更新时间:2023-11-28 21:36:18 27 4
gpt4 key购买 nike

我用 pySpark 训练了一个随机森林。我想要一个带有结果的 csv,网格中的每个点。
我的代码是:

estimator = RandomForestRegressor()
evaluator = RegressionEvaluator()
paramGrid = ParamGridBuilder().addGrid(estimator.numTrees, [2,3])\
.addGrid(estimator.maxDepth, [2,3])\
.addGrid(estimator.impurity, ['variance'])\
.addGrid(estimator.featureSubsetStrategy, ['sqrt'])\
.build()
pipeline = Pipeline(stages=[estimator])

crossval = CrossValidator(estimator=pipeline,
estimatorParamMaps=paramGrid,
evaluator=evaluator,
numFolds=3)

cvModel = crossval.fit(result)

所以我想要一个 csv:
numTrees | maxDepth | impurityMeasure 

2 2 0.001

2 3 0.00023

等等

做这个的最好方式是什么?

最佳答案

您必须组合不同的数据位:

  • Estimator ParamMaps 使用 getEstimatorParamMaps 方法提取。
  • 可以使用 avgMetrics 参数检索的训练指标。

  • 首先获取映射中声明的所有参数的名称和值:
    params = [{p.name: v for p, v in m.items()} for m in cvModel.getEstimatorParamMaps()]

    Thane zip 与指标并转换为数据帧
    import pandas as pd

    pd.DataFrame.from_dict([
    {cvModel.getEvaluator().getMetricName(): metric, **ps}
    for ps, metric in zip(params, cvModel.avgMetrics)
    ])

    关于python - 在 pySpark 中使用 paramGrid 从 CrossValidator 中提取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51230726/

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