开始使用免费开始使用

训练/测试集划分

在大多数情况下,当您运行预测模型时,需要先在数据的一个子集("训练"集)上拟合模型,然后再用其余数据("测试"集)来检验模型的预测效果。

sdf_random_split() 提供了一种将数据框划分为训练集和测试集的方法。其用法如下所示。

a_tibble %>%
  sdf_random_split(training = 0.7, testing = 0.3)

这里有两点需要注意。首先,如果各分区的取值之和不等于 1,这些数值会被按比例缩放为和为 1。因此,如果传入 training = 0.35testing = 0.15,最终得到的比例会是您请求的两倍。其次,您可以使用任意的集合名称,并且可以将数据划分为两个以上的集合。因此,下面的写法也是有效的。

a_tibble %>%
  sdf_random_split(a = 0.1, b = 0.2, c = 0.3, d = 0.4)

返回值是一个 tibble 列表。您可以使用常见的列表索引运算符访问各个元素。

partitioned$a
partitioned[["b"]]

本练习是课程的一部分

R 中使用 sparklyr 的 Spark 入门

查看课程

练习说明

已为您创建名为 spark_conn 的 Spark 连接。基于存储在 Spark 中的曲目信息,已预先定义 tibble track_metadata_tbl

  • 使用 sdf_random_split() 对曲目信息进行划分。
    • 将 70% 放入名为 training 的集合。
    • 将 30% 放入名为 testing 的集合。
  • 获取训练 tibble 的 sdf_dim() 结果(维度)。
  • 获取测试 tibble 的维度。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# track_metadata_tbl has been pre-defined
track_metadata_tbl

partitioned <- track_metadata_tbl %>%
  # Partition into training and testing sets
  ___

# Get the dimensions of the training set
___

# Get the dimensions of the testing set
___
编辑并运行代码