pyspark - 如何在 Pyspark 中进行交叉验证后获得最佳超参数值?
问题描述
我正在对一组超参数的数据集进行交叉验证。
lr = LogisticRegression()
paramGrid = ParamGridBuilder() \
.addGrid(lr.regParam, [0, 0.01, 0.05, 0.1, 0.5, 1]) \
.addGrid(lr.elasticNetParam, [0.0, 0.1, 0.5, 0.8, 1]) \
.build()
evaluator = BinaryClassificationEvaluator()
cv = CrossValidator(estimator=lr, estimatorParamMaps=grid, evaluator=evaluator)
我想知道regParam和elasticNetParam的最佳价值。在 python 中,我们可以选择在交叉验证后获得最佳参数。pyspark 中是否有任何方法可以在交叉验证后获得最佳参数值?
For example : regParam - 0.05
elasticNetParam - 0.1
解决方案
好吧,您必须首先适合您的 CrossValidator:
cv_model = cv.fit(train_data)
完成此操作后,您将拥有一个 best_model:
best_model = cv_model.bestModel
要提取参数,您将不得不做这件丑陋的事情:
best_reg_param = best_model._java_obj.getRegParam()
best_elasticnet_param = best_model._java_obj.getElasticNetParam()
推荐阅读
- python - 如何在 matplotlib 中制作不透明的散点图
- javascript - 如何在 Scheduled Cloud Function 中声明特定时区
- mysql - MySQL 触发器仅部分运行
- php - 如何使用 CPanel 正确上传插件域
- macos - 无法在 mac 上启动 docker - 致命错误 - 操作无法完成。(Docker.VmnetdError 错误 1。)
- javascript - id 没有从 nodejs 中的链接保存
- spring-boot - Get Response When It is Ready In Spring Boot
- windows - 未找到内核驱动程序
- java - 我无法在 Java 中以长数据类型打印出 Math 类的结果?
- yii2 - 在基本项目 yii2 的 dektrium 模块 rbac 中创建规则类