测试数据与训练数据不同

时间:2019-07-26 11:29:13

标签: r regression average weather

我有一个大的数据框(54160个观测值),需要分成训练和测试集。这应该不成问题,但是在数据框中有几个历史天气变量(每天,2013-2018年)。这些可以用于训练,但不能用于预测,因为人们无法提前知道天气。因此,我将这些变量替换为每月的历史平均值(例如,一月份的平均温度约为5摄氏度)。

现在,我想在R中进行回归,并使用75%的数据(使用原始天气变量)来训练我的模型。然后,我要对剩余的25%的数据进行预测(但要替换掉天气变量)。如何在R中执行此操作?因为本质上我要处理两个不同的数据集,一个原始数据集,一个修改数据集。因此:从最初的一个我需要75%的训练,而从修改的一个我需要25%的测试(但当然,数据点不应重叠)。

如何确保数据不重叠?还是应该在修改后的数据框上进行训练?

1 个答案:

答案 0 :(得分:0)

您正确地想要分离您的训练和测试数据。为此,您需要随机选择75%,然后选择其他25%。该解决方案首先将数据的顺序随机化,然后获取数据的第一个.75和最后一个.25。

weather_data <- data.frame(day = 1:50000,temp = sample(1:100,50000,replace = TRUE))

random.order <- sample(1:50000,50000)

weather_data <- weather_data[order(random.order),]

training_data <- weather_data[1:37500,]
test_data <- weather_data[37501:50000,]