尝试 60/40 切分
正如视频所示,您将在本章使用 Sonar 数据集,并采用 60% 训练集和 40% 测试集。我们再练习一次训练/测试集切分,确保您已经掌握。回顾一下,您可以使用 sample() 函数获取数据集中行索引的随机排列,用于进行训练/测试切分,例如:
n_obs <- nrow(my_data)
permuted_rows <- sample(n_obs)
然后使用这些行索引随机重排数据集,例如:
my_data <- my_data[permuted_rows, ]
当数据集被随机排序后,您可以将前 60% 作为训练集,最后 40% 作为测试集。
本练习是课程的一部分
在 R 中使用 caret 的机器学习
练习说明
- 获取
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