開始使用免費開始

產生隨機的訓練集/測試集切分

接下來幾個練習你會使用套件 ggplot2 中的 mpg 資料。這個資料描述不同年份、不同品牌與車型的一些特性。目標是要從高速公路油耗來預測市區油耗。

在本練習中,你要將 mpg 切分為訓練集 mpg_train(佔資料的 75%)與測試集 mpg_test(佔資料的 25%)。其中一種作法是使用 runif() 函式(文件)產生一欄介於 0 到 1 的均勻隨機數。

如果你有一個大小為 \(N\) 的資料集 dframe,且想要隨機抽取大約佔 \(N\) 的 \(100 * X\)%(其中 \(X\) 介於 0 到 1),那麼:

  1. 產生一個均勻隨機數向量:gp = runif(N)
  2. dframe[gp < X,] 的大小會大致符合需求。
  3. dframe[gp >= X,] 則是其互補集合。

本練習屬於課程

R 中的監督式學習:回歸

檢視課程

練習說明

  • 使用 nrow文件)取得資料框 mpg 的列數。把這個數字指定給變數 N,並印出。
  • 計算 N 的 75% 大約是幾列。指定給變數 target,並印出。
  • 使用 runif() 產生一個長度為 N 的均勻隨機數向量,命名為 gp
  • 使用 gpmpg 分成 mpg_trainmpg_test(其中 mpg_train 約含有 75% 的資料)。
  • 使用 nrow() 檢查 mpg_trainmpg_test 的大小。它們的規模大致正確嗎?

動手互動練習

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

# mpg is available
summary(mpg)
dim(mpg)

# Use nrow to get the number of rows in mpg (N) and print it
(N <- ___)

# Calculate how many rows 75% of N should be and print it
# Hint: use round() to get an integer
(target <- ___)

# Create the vector of N uniform random variables: gp
gp <- ___

# Use gp to create the training set: mpg_train (75% of data) and mpg_test (25% of data)
mpg_train <- ___
mpg_test <- ___

# Use nrow() to examine mpg_train and mpg_test
___
___
編輯並執行程式碼