r - 我想将数据分成两个数据集:一个训练数据集和一个测试数据集。(R中的时间序列分析)
问题描述
我想将数据分成两个数据集:一个训练数据集和一个测试数据集。目的是使用训练数据集预测 2005 年 1 月每天的 NOx 浓度值。因此,训练数据集应包括前 296 次观测(直到 2004 年的最后一次观测)。测试数据集应包括 2005 年 1 月的 31 次每日观察。
该数据集包含来自嵌入在空气质量化学多传感器设备中的多个金属氧化物化学传感器阵列的 390 个日常响应实例。该设备位于意大利某城市道路一级污染严重的现场。数据记录时间为 2004 年 3 月至 2005 年 4 月(一年)。提供总氮氧化物 (NOx) 和二氧化氮 (NO2) 的 Ground Truth 每日平均浓度,以及有关天气状况的信息。缺失值用值 -200 标记。
包含 391 个观测值的数据集,从 2004 年 11 月 3 日到 2005 年 4 月 4 日几乎一年
解决方案
这是我的建议,我包含了一个可重现的数据集示例(变量的随机值):
set.seed(123)
library(data.table)
N = length(seq(from =
as.Date("2004/03/11"),
to = as.Date("2005/04/04"),
by = "days"))
df <- data.table("Date" = seq(from =
as.Date("2004/03/11"),
to = as.Date("2005/04/04"),
by = "days"),
"NOx" = rnorm(N),
"NO2" = rnorm(N),
"Temp" = rnorm(N),
'RH' = rnorm(N),
'AH' = rnorm(N))
head(df)
这是数据集的样子:
Date NOx NO2 Temp
1: 2004-03-11 -0.1639410 1.48433728 -0.7166330
2: 2004-03-12 0.8985008 1.12176857 0.2304389
3: 2004-03-13 0.6891673 -1.39986065 -0.3868637
4: 2004-03-14 -0.8190232 -1.47609804 0.5087085
5: 2004-03-15 0.3200668 0.05810584 -0.8093966
6: 2004-03-16 -0.4670752 -0.95297664 0.4632159
RH AH
1: -0.2789256 0.93052499
2: -1.2931294 -0.58877664
3: 1.1668008 1.10508756
4: -1.4853740 0.99288191
5: -1.4771204 -0.04978804
6: -0.5826404 1.06793716
然后,我根据日期将数据拆分为训练和测试:
df_train <- df[Date<="2004/12/31"]
df_test <- df[Date>="2005/01/01" &
Date <= "2005/01/31"]
所以我忽略了 2005 年 1 月 31 日之后的所有值。希望它有所帮助
推荐阅读
- python - Camelot:table_area 和 table_regions 不能按预期工作
- sql - PostgreSQL 检查相关表的列
- machine-learning - 3d卷积在实践中是如何进行的?
- google-apps-script - 复制评论以及 Google Apps 脚本中的特定元素
- matlab - 使用逐行求和进行循环优化
- javascript - 如何在画布上制作多个移动方块?
- javascript - 麦克风输入电平的对数函数的倒数
- sql-server - 将数字转换为 0 填充字符串
- python - Bokeh DoubleTap 事件:如何找到被双击的字形
- r - 如何在 R 中进行一些计算?