始める無料で始める

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

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

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

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

使用時に注意すべき点が2つあります。1つ目は、分割値の合計が1にならない場合、合計が1になるよう自動的にスケーリングされる点です。たとえば training = 0.35testing = 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"]]

この演習はコースの一部です

sparklyr を使った Spark 入門(R)

コースを見る

演習の手順

Spark の接続は spark_conn として作成済みです。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
___
コードを編集して実行