随机打乱数据框的顺序
对数据集进行训练/测试集划分的一种方法是先随机打乱数据集的顺序,然后再将其分成两部分。这样可以确保训练集和测试集都是随机样本,并且不会保留数据集原有的排序偏差(例如,最初按价格或大小排序),从而避免在训练和测试模型时引入偏差。您可以把这一步理解为在发牌前先把一副新扑克牌洗牌。
首先,设置随机种子,以便结果可复现,并且每次运行脚本都得到相同的随机划分:
set.seed(42)
接着,使用 sample() 函数打乱 diamonds 数据集的行索引。之后可以用这些索引重新排序数据集。
rows <- sample(nrow(diamonds))
最后,使用这个随机向量重新排序 diamonds 数据集:
diamonds <- diamonds[rows, ]
本练习是课程的一部分
在 R 中使用 caret 的机器学习
练习说明
- 将随机种子设为 42。
- 创建名为
rows的行索引向量。 - 随机重排
diamonds数据框,并将结果赋给shuffled_diamonds。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Set seed
# Shuffle row indices: rows
# Randomly order data