首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何克服"ValueError:解决estimatorParamMaps失败中的param“PySpark错误?

如何克服"ValueError:解决estimatorParamMaps失败中的param“PySpark错误?
EN

Stack Overflow用户
提问于 2022-08-21 02:57:14
回答 1查看 26关注 0票数 0

我试图保存一个网格搜索的PySpark TrainValidationSplitModel对象,在调整逻辑回归的正则化时,我得到了以下奇怪的错误:

代码语言:javascript
复制
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-104-8e6b86f1e92c> in <module>
      1 # Save model, or upload if already saved
      2 if not os.path.isdir(drive_path + 'lr_2_model'):
----> 3     lr_2_model.save(drive_path + 'lr_2_model')
      4 else:
      5     lr_2_model = TrainValidationSplitModel.load(drive_path + 'lr_2_model')

5 frames
/content/spark-3.3.0-bin-hadoop3/python/pyspark/ml/tuning.py in meta_estimator_transfer_param_maps_to_java(pyEstimator, pyParamMaps)
    324                         break
    325                 if javaParam is None:
--> 326                     raise ValueError("Resolve param in estimatorParamMaps failed: " + str(pyParam))
    327                 if isinstance(pyValue, Params) and hasattr(pyValue, "_to_java"):
    328                     javaValue = cast(JavaParams, pyValue)._to_java()

ValueError: Resolve param in estimatorParamMaps failed: LogisticRegression_87f4bc317e0b__regParam

这是导致错误的代码。这段代码与以前的LogisticRegression PySpark模型一起工作,我在模型中调优了maxIter参数。

代码语言:javascript
复制
# Save model, or upload if already saved
if not os.path.isdir(drive_path + 'lr_2_model'):
    lr_2_model.save(drive_path + 'lr_2_model')
else:
    lr_2_model = TrainValidationSplitModel.load(drive_path + 'lr_2_model')

这是我定义lr_2_model的代码(grid_search是我编写的一个自定义函数。错误不能与其他模型一起使用):

代码语言:javascript
复制
# Run grid search
%%time
if not os.path.isdir(drive_path + 'lr_2_model'):
    lr_2_model = grid_search(stages_with_classifier=lr_2_stages, 
                             train_df=train_df_preprocessed, 
                             model_grid=lr_2_grid, 
                             parallelism=5)

这是我定义lr_2_gridlr_2_stageslr_2的代码。

代码语言:javascript
复制
lr_2 = LogisticRegression(
    featuresCol='scaled_features',
    labelCol='Anomalous',
    weightCol='Weight',
    standardization=False)

lr_2_stages = stages + [lr_2]

# Specify parameter grid
lr_2_grid = ParamGridBuilder()\
            .addGrid(lr_1.regParam, list(np.linspace(0.001, 0.1, 5)))\
            .build()
EN

回答 1

Stack Overflow用户

发布于 2022-08-21 03:45:07

我解决了。我在我的ParamGridBuilder.addGrid(**lr_1**.regParam, list(np.linspace(0.001, 0.1, 5)))\中调用了以前的一个.addGrid(**lr_1**.regParam, list(np.linspace(0.001, 0.1, 5)))\模型

面膜

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73431344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档