有人能给我解释一下为什么在测试集中split的值是假的吗?
split = sample.split(dataset$Salary, SplitRatio = 2/3)
training_set = subset(dataset, split == TRUE)
test_set = subset(dataset, split == FALSE)
我假设您从某种caTools
文档中获得了此代码?我建议试着运行第一行代码,它应该开始有意义了。
基本上,caTools::sample.split
所做的是创建一个长度为nrow(x)
的随机向量,具有true和false,在给定的比例。让我们以iris
数据集为例(有150行):
split = sample.split(iris$Sepal.Length, SplitRatio = 2/3)
结果将是一个150项向量,其中2/3为TRUE, 1/3为FALSE。
接下来,您使用subset
函数从iris
中提取所有行i
,其中split[i] == TRUE
用于创建训练集,并使用iris
中i
的所有行split[i] == FALSE
创建测试集。
这就是为什么你在训练集中使用split == TRUE
而在测试集中使用split == FALSE