1. 学ぶ
  2. /
  3. コース
  4. /
  5. sparklyr を使った Spark 入門(R)

Connected

演習

学習用/テスト用データの分割

予測モデルを実行する際は、通常、データの一部(「学習用」セット)でモデルを学習させ、残りのデータ(「テスト用」セット)でモデルの予測を検証します。

sdf_random_split() を使うと、データフレームを学習用セットとテスト用セットに分割できます。基本的な使い方は次のとおりです。

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

使用時に注意すべき点が2つあります。1つ目は、分割値の合計が1にならない場合、合計が1になるよう自動的にスケーリングされる点です。たとえば training = 0.35、testing = 0.15 を指定すると、実際には2倍の割合が適用されます。2つ目は、セット名は自由に設定でき、3つ以上に分割することも可能な点です。たとえば次のような書き方も有効です。

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

戻り値は tibble のリストです。各要素へのアクセスには、通常のリストインデックス演算子を使います。

partitioned$a
partitioned[["b"]]

指示

100 XP

Spark の接続は spark_conn として作成済みです。Spark に格納されたトラックのメタデータに紐付けられた tibble は track_metadata_tbl として定義済みです。

  • sdf_random_split() を使ってトラックのメタデータを分割しましょう。
    • 70% を training という名前のセットに割り当ててください。
    • 30% を testing という名前のセットに割り当ててください。
  • 学習用 tibble の sdf_dim()(次元数)を取得しましょう。
  • テスト用 tibble の次元数を取得しましょう。