1. Learn
  2. /
  3. Courses
  4. /
  5. R 中使用 sparklyr 的 Spark 入门

Connected

Exercise

按组效应划分数据

在运行任何模型之前,您需要将数据划分为训练集和测试集。这个数据集有一个特殊之处,因此您不能直接调用 sdf_random_split()。问题在于:同一位艺术家的所有曲目应当出现在同一个集合中。如果将某位艺术家的曲目用于训练模型,而同一艺术家的其他曲目又出现在测试集中,模型的准确率会被高估。

解决方法是只对艺术家 ID 进行划分,然后将这些已划分的 ID 与原始数据集做内连接。请注意,用于划分时,artist_id 比 artist_name 更可靠,因为有些艺术家在不同曲目中会使用名字的不同写法。例如,Duke Ellington 有时的艺术家名是 "Duke Ellington",但有时是 "Duke Ellington & His Orchestra",或者其他拼写变体。

Instructions

100 XP

已经为您创建了一个 Spark 连接 spark_conn。一个附着在 Spark 中已合并且过滤后的曲目信息/音色数据上的 tibble 已预定义为 track_data_tbl。

  • 将艺术家 ID 划分为训练集和测试集,并将结果赋给 training_testing_artist_ids。
    • 选择 track_data_tbl 的 artist_id 列。
    • 获取不重复的行。
    • 将其划分为 70% 训练集和 30% 测试集。
  • 将训练数据集按 artist_id 与 track_data_tbl 做内连接,并将结果赋给 track_data_to_model_tbl。
  • 将测试数据集按 artist_id 与 track_data_tbl 做内连接,并将结果赋给 track_data_to_predict_tbl。