r - 使用 map 和 map2 映射列表以构造矩阵
问题描述
我试图在列表中映射一个称为TrainTestData
列表的列表是许多其他列表 - 一个称为C Farolillo
. 在这个列表中,我有我的训练和测试数据。
该列表如下所示:
我正在尝试映射列表以创建一种新型矩阵。
dtrain <- map(TrainTestData, ~map2(
X_train, Y_train, ~ xgb.DMatrix(data = .x, label = .y, missing = "NaN")
))
我收到以下错误:
map2(X_train, Y_train, ~xgb.DMatrix(data = .x, label = .y, missing = "NaN")) 中的错误:找不到对象'X_train'
我哪里错了?我已经尝试了上述代码的一些变体,但无法正常工作。
以下给出了相同的错误:
dtrain <- map(TrainTestData$`C Farolillo`, ~map2(
X_train, Y_train, ~ xgb.DMatrix(data = .x, label = .y, missing = "NaN")
))
问题是因为我在列表中有X_train
列表吗?
> class(TrainTestData)
[1] "list"
> class(TrainTestData$`C Farolillo`)
[1] "list"
> class(TrainTestData$`C Farolillo`$X_train)
[1] "list"
> class(TrainTestData$`C Farolillo`$X_train[[1]])
[1] "matrix"
注意:由于数据太大,我无法提供示例代码。
编辑:我可以使用以下方法创建矩阵:
xgb.DMatrix(data = TrainTestData$`C Farolillo`$X_train[[1]], label = TrainTestData$`C Farolillo`$Y_train[[1]], missing = "NaN")
对于 X_train 和 Y_train 中的 3 个矩阵,给出:
> xgb.DMatrix(data = TrainTestData$`C Farolillo`$X_train[[1]], label = TrainTestData$`C Farolillo`$Y_train[[1]], missing = "NaN")
xgb.DMatrix dim: 2190 x 4 info: label colnames: yes
> xgb.DMatrix(data = TrainTestData$`C Farolillo`$X_train[[2]], label = TrainTestData$`C Farolillo`$Y_train[[2]], missing = "NaN")
xgb.DMatrix dim: 2190 x 4 info: label colnames: yes
> xgb.DMatrix(data = TrainTestData$`C Farolillo`$X_train[[3]], label = TrainTestData$`C Farolillo`$Y_train[[3]], missing = "NaN")
xgb.DMatrix dim: 2190 x 4 info: label colnames: yes
编辑:
我有一些数据:
TrainTestData <- list(Recoletos = list(X_train = list(structure(c(NA, NA, 1.3,
NA, NA, 80, NA, NA, 225), .Dim = c(3L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.3, 1.2, 1.5,
80, 76, 76, 225, 202, 276), .Dim = c(3L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.5, 1, 1, 76,
65, 67, 276, 165, 181), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1, 1.3, 1.1, 67, 93,
85, 181, 319, 274), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1.1, 1.5, 1.2, 85, 83,
80, 274, 368, 253), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1.2, 1.4, 2.2, 80, 84,
92, 253, 287, 432), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(2.2, 2, 1.5, 92, 85,
73, 432, 399, 298), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1.5, 1.4, 1.3, 73, 70,
73, 298, 237, 260), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1.3, 1.4, 1.7, 73, 84,
88, 260, 289, 314), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1.7, 2.4, 2.8, 88, 101,
100, 314, 530, 657), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(2.8, 2.3, 1.3, 100,
101, 74, 657, 539, 233), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1.3, 1.1, 1.1, 74, 71,
42, 233, 205, 110), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1.1, 1.3, 1.5, 42, NA,
75, 110, NA, 255), .Dim = c(3L, 3L), .Dimnames = list(NULL, c("CO",
"NO2", "NOx"))), structure(c(1.5, 0.8, 1.2, 75, 55, 77, 255,
140, 238), .Dim = c(3L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(1.2, 2.1, 2.3, 77, 121, 109, 238, 515,
507), .Dim = c(3L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(2.3, 1.8, 2.8, 109, 97, 120, 507, 446,
689), .Dim = c(3L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(2.8, 1.8, 1.2, 120, 96, 68, 689, 396, 250
), .Dim = c(3L, 3L), .Dimnames = list(NULL, c("CO", "NO2", "NOx"
))), structure(c(1.2, 1.4, 1.1, 68, 87, 81, 250, 310, 256), .Dim = c(3L,
3L), .Dimnames = list(NULL, c("CO", "NO2", "NOx"))), structure(c(1.1,
1.1, 1.4, 81, 80, 83, 256, 225, 249), .Dim = c(3L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.4, 1.5, 1.4,
83, 78, 74, 249, 254, 270), .Dim = c(3L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.4, 3.3, 1.9,
74, 107, 110, 270, 662, 424), .Dim = c(3L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.9, 2, 1, 110,
116, 73, 424, 508, 221), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1, 0.9, 1.1, 73, 74,
87, 221, 207, 240), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx"))), structure(c(1.1, 1.3, 1.2, 87, 104,
76, 240, 299, 261), .Dim = c(3L, 3L), .Dimnames = list(NULL,
c("CO", "NO2", "NOx")))), Y_train = list(structure(c(NA,
NA, 94), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(94,
82, 130), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(130,
65, 75), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(75,
147, 123), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(123,
186, 113), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(113,
132, 222), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(222,
205, 147), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(147,
109, 122), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(122,
134, 147), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(147,
280, 364), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(364,
286, 103), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(103,
88, 45), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(45,
NA, 117), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(117,
55, 105), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(105,
257, 260), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(260,
228, 371), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(371,
195, 119), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(119,
145, 115), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(115,
95, 109), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(109,
115, 128), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(128,
362, 205), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(205,
256, 96), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(96,
87, 100), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO")), structure(c(100,
127, 121), .Dim = c(3L, 1L), .Dimnames = list(NULL, "NO"))),
X_test = list(structure(c(1.2, 76, 202), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1, 65, 165
), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(1.3, 93, 319), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.5, 83, 368
), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(1.4, 84, 287), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(2, 85, 399
), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(1.4, 70, 237), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.4, 84, 289
), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(2.4, 101, 530), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(2.3, 101,
539), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(1.1, 71, 205), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.3, NA, NA
), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(0.8, 55, 140), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(2.1, 121,
515), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(1.8, 97, 446), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.8, 96, 396
), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(1.4, 87, 310), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(1.1, 80, 225
), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(1.5, 78, 254), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(3.3, 107,
662), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(2, 116, 508), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(0.9, 74, 207
), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx"))), structure(c(1.3, 104, 299), .Dim = c(1L, 3L), .Dimnames = list(
NULL, c("CO", "NO2", "NOx"))), structure(c(0.9, 76, 194
), .Dim = c(1L, 3L), .Dimnames = list(NULL, c("CO", "NO2",
"NOx")))), Y_test = list(structure(82, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(65, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(147, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(186, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(132, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(205, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(109, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(134, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(280, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(286, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(88, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(NA_real_, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(55, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(257, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(228, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(195, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(145, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(95, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(115, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(362, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(256, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(87, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(127, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")), structure(77, .Dim = c(1L, 1L), .Dimnames = list(
NULL, "NO")))))
当我运行以下代码时:
dtrain <- map(TrainTestData, ~map2(
.$X_train, .$Y_train, ~ xgb.DMatrix(data = .x, label = .y, missing = "NaN")))
dtest <- map(TrainTestData, ~map(
.$X_test, ~ xgb.DMatrix(data = .x, missing = "NaN")))
watchlist <- list("train" = dtrain)
params <- list("eta" = 0.1, "max_depth" = 5, "objective"="reg:squarederror", "eval_metric"= "rmse",
"set.seed" = 176)
xgb.model <- map(
dtrain, ~ xgboost(params = params, data = .x, nrounds = 40, watchlist)
)
我收到此错误:
xgb.get.DMatrix(data, label, missing, weight) 中的错误:xgboost:输入数据无效另外:警告消息:在 xgb.get.DMatrix(data, label, missing, weight) 中:xgboost:标签将被忽略.
Hweover 我提供了label
.
编辑:
解决方案
推荐阅读
- r - R : 在这种情况下如何使用 apply 来加速功能?
- ruby-on-rails - 更新记录时如何防止多次查询?
- android - OkHttp 4.0.0 是否需要 JVM 目标 1.8?
- shell - 批量获取Plink传递的ssh文件中的参数
- reactjs - 动态创建字段的半星评级
- python - 了解如何使用 Google OR 工具设置软约束
- python - Redshift UDF 中 scikit learn 包的导入失败
- r - 跨两个嵌套列表列应用数学函数
- typo3 - 将cropVariants 与 FilesProcessor 一起使用
- linux - 为什么Linux系统时间每6个月加减一小时?