通过 pyspark.ml.tuning.TrainValidationSplit 调整后如何获得最佳参数?

2023-11-22

我正在尝试调整 Spark (PySpark) 的超参数ALS模型由TrainValidationSplit.

它运行良好,但我想知道哪种超参数组合是最好的。评估后如何获得最佳参数?

from pyspark.ml.recommendation import ALS
from pyspark.ml.tuning import TrainValidationSplit, ParamGridBuilder
from pyspark.ml.evaluation import RegressionEvaluator

df = sqlCtx.createDataFrame(
    [(0, 0, 4.0), (0, 1, 2.0), (1, 1, 3.0), (1, 2, 4.0), (2, 1, 1.0), (2, 2, 5.0)],
    ["user", "item", "rating"],
)

df_test = sqlCtx.createDataFrame(
    [(0, 0), (0, 1), (1, 1), (1, 2), (2, 1), (2, 2)],
    ["user", "item"],
)

als = ALS()

param_grid = ParamGridBuilder().addGrid(
    als.rank,
    [10, 15],
).addGrid(
    als.maxIter,
    [10, 15],
).build()

evaluator = RegressionEvaluator(
    metricName="rmse",
    labelCol="rating",
)
tvs = TrainValidationSplit(
    estimator=als,
    estimatorParamMaps=param_grid,
    evaluator=evaluator,
)


model = tvs.fit(df)

问题:如何获得最佳排名和 maxIter ?


您可以使用以下方式访问最佳模型bestModel的财产TrainValidationSplitModel:

best_model = model.bestModel

排名可以直接使用rank的财产ALSModel:

best_model.rank
10

获得最大迭代次数需要更多技巧:

(best_model
    ._java_obj     # Get Java object
    .parent()      # Get parent (ALS estimator)
    .getMaxIter()) # Get maxIter
10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 pyspark.ml.tuning.TrainValidationSplit 调整后如何获得最佳参数? 的相关文章

随机推荐

  • Spring Boot - 无限循环服务

    我想构建一个无头应用程序 它将在无限循环中查询数据库 并在某些条件下执行一些操作 例如 获取具有特定值的记录 并在找到时为每条消息启动电子邮件发送过程 我想使用 Spring Boot 作为基础 特别是因为 Actuator 允许公开健康检
  • Java正则表达式运行速度很慢

    我正在尝试使用用于匹配 URL 的大胆火球正则表达式在 Java 中 我发现了一个导致评估永远持续下去的 URL 我修改了原始正则表达式以使用 Java 语法 private final static String pattern b Ca
  • UINavigationController 后退按钮不可见,但可以使用

    我有一个场景 我的 UINavigationController 缺少后退按钮 左按钮 但点击左按钮似乎仍然有效 我发现这里发布了类似的问题 NavigationController后退按钮消失 这是通过不将标题设置为 解决的 但这不是我的
  • 1 字节有符号数的 printf 格式

    假设如下 sizeof char 1 sizeof short 2 sizeof int 4 sizeof long 8 The printf2 字节有符号数的格式是 hd 对于 4 字节有符号数来说是 d 对于 8 字节有符号数来说是 l
  • Scala 中的线性化顺序

    在处理特征时 我很难理解 Scala 中的线性化顺序 class A def foo A trait B extends A override def foo B super foo trait C extends B override d
  • 从 SQL 字段中删除前导零的算法?

    我刚刚遇到一个有趣的问题 试图从 SQL 中的非数字字段中删除前导零 由于它可以包含字符 因此不能只将其转换为数字然后再转换回来 这就是我们最终使用的 SELECT REPLACE LTRIM REPLACE fieldWithLeadin
  • 上传较大文件时发生 CORS 错误

    我正在使用一个带有 c web api 的 Angular Web 项目 并启用了 CORS 我的所有 CORD 在所有调用中都能正常工作 除非我将文件上传到异步任务 这是我参考的方法 HttpPost public async Task
  • 在 Django 中使用基于异步类的视图的正确方法

    我正在尝试使用非常新的Django 3 1异步视图类 基于可用的有限文档 我尝试创建自己的async def call 方法 从文件来看 对于基于类的视图 这意味着使其 call 方法一async def 不是它的 init or as v
  • 默认情况下,缓存控制是公共的还是私有的?

    如果我不指定public or private指令中的Cache Control标头 默认行为是什么 是否可以通过代理服务器缓存 找到了这个问题的答案网站管理员 stackexchange com Quote See http www w3
  • 是否可以链接两个曲面图的轴以进行 3d 旋转?

    假设我有两个大小相等的二维矩阵 并为每个矩阵创建一个曲面图 有没有一种方法可以链接两个图的轴 以便可以沿同一方向同时 3D 旋转它们 和谁玩ActionPostCallback and ActionPreCallback肯定是一种解决方案
  • 为什么 Google Compute Engine 不运行我的容器?

    我可以成功地做到这一点 将我的应用程序捆绑到 Docker 镜像中 Build this image into a container using Google Cloud Build upon push to master 此容器存储在注
  • 将 jiffies 转换为秒

    我有一段用户空间代码正在解析 proc PID task TID stat 以获取 cpu 使用情况 我可以使用 HZ 获取每秒的 jiffies 但此代码可以移动到另一台具有不同配置值的机器 有没有办法在运行时从用户空间获取HZ的值 你把
  • j_security_check 重定向

    我正在Tomcat环境中学习Java servlet 我正在学习如何使用 j security check 使用基于表单的登录身份验证 因此 在我的 servlet 中 我有一个包含 j username 和 j password 的登录页
  • 在 pyspark 中拆分列

    我正在尝试在 pyspark 中拆分数据框 这是我拥有的数据 df sc parallelize 1 Foo 10 2 Bar 11 3 Car 12 toDF Key Value df df withColumn Splitted spl
  • htaccess 设置单个文件的 mimetype

    在 htaccess 文件中 可以为给定的扩展名设置 mimetype 例如 AddType application javascript js 如何为单个文件而不是扩展名设置 mimetype 我有一个 Javascript 需要与同一文
  • PHP中获取调用网页的URL

    我正在为一个班级开发网站统计引擎 这个想法是 您可以简单地在网页中嵌入一些代码 该代码将在每个页面加载时调用统计网站 然后统计网站将跟踪您的点击率等等 没有什么突破性的 我想做的是能够按网页细分网站点击量 例如 一个人可以在每个页面上包含相
  • 如何在 Docker 上运行 Spark?

    无法在 Docker 上运行 Apache Spark 当我尝试从驱动程序与 Spark Master 进行通信时 我收到下一个错误 15 04 03 13 08 28 警告 TaskSchedulerImpl 初始作业尚未接受 任何资源
  • Windows 服务安装程序不读取 App.Config 文件

    我已经在我的项目中添加了 App Config 我有一个安装程序类 ProjectInstaller cs 它需要从 App config 读取值 我正在提供钥匙 以下是示例代码 ConfigurationManager AppSettin
  • Android 谷歌地图片段

    我正在开发一个应用程序 顶部有一个菜单 菜单内有一些按钮 我正在尝试将谷歌地图添加到其中一个按钮 但我不是很成功 我正在关注本教程但不是直接实施谷歌地图MainActivity我将它们添加到按下按钮时启动的片段中 一切都很好 当我按下按钮时
  • 通过 pyspark.ml.tuning.TrainValidationSplit 调整后如何获得最佳参数?

    我正在尝试调整 Spark PySpark 的超参数ALS模型由TrainValidationSplit 它运行良好 但我想知道哪种超参数组合是最好的 评估后如何获得最佳参数 from pyspark ml recommendation i