60/40 に分割してみましょう
ビデオで見たとおり、この章では Sonar データセットを使い、学習用に 60%、テスト用に 40% を使います。確実に身につけるために、もう一度 train/test の分割を練習しましょう。データセットの行インデックスをランダムに並べ替えるには sample() 関数が使えます。train/test 分割の際に利用できます。例:
n_obs <- nrow(my_data)
permuted_rows <- sample(n_obs)
そして、これらの行インデックスを使ってデータセットをランダムな順序に並べ替えます。例:
my_data <- my_data[permuted_rows, ]
データセットをランダムに並べ替えたら、先頭の 60% を学習用、末尾の 40% をテスト用に分割できます。
この演習はコースの一部です
Rで学ぶ caret を使った Machine Learning
演習の手順
Sonarの観測数(行数)を取得し、n_obsに代入します。Sonarの行インデックスをシャッフルして、permuted_rowsに保存します。permuted_rowsを使ってSonarの行をランダムに並べ替え、Sonar_shuffledとして保存します。- 60/40 分割に適切な分割位置の行番号を求め、
splitに保存します。 Sonar_shuffledの先頭 60% を学習用データとして保存します。Sonar_shuffledの末尾 40% をテストデータとして保存します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Get the number of observations
# Shuffle row indices: permuted_rows
# Randomly order data: Sonar
# Identify row to split on: split
split <- round(n_obs * ___)
# Create train
# Create test