開始使用免費開始

隨機重新排序資料框

要把資料集切成訓練集與測試集,其中一個方法是先隨機排列資料集,然後再分成兩部分。這樣可以確保訓練集與測試集都是隨機樣本,並且不會把資料集原本的排序偏差(例如原本依價格或大小排序)帶進用來訓練與測試模型的樣本中。你可以把這想成在發牌前先把一副新牌洗勻。

首先,設定隨機種子,讓你的結果可重現,每次執行指令都會得到相同的隨機切分:

set.seed(42)

接著,使用 sample() 函式隨機打亂 diamonds 資料集的列索引。之後你可以用這些索引來重新排序資料集。

rows <- sample(nrow(diamonds))

最後,使用這個隨機向量來重新排序 diamonds 資料集:

diamonds <- diamonds[rows, ]

本練習屬於課程

使用 R 的 caret 進行 Machine Learning

檢視課程

練習說明

  • 將隨機種子設為 42。
  • 建立名為 rows 的列索引向量。
  • 隨機重新排序 diamonds 資料框,並指派給 shuffled_diamonds

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# Set seed


# Shuffle row indices: rows


# Randomly order data
編輯並執行程式碼