我正在尝试创建由十个不同模型组成的堆叠模型,以共同预测变量(isDuplicate)。经过一些工作,我现在有了一个包含所有十个概率的数据框以及变量isDuplicate。
尝试我的代码时收到以下错误,但是我不确定这是指什么或如何解决它。
数据:(请注意,这里的数据是前10个值,但我的val_all行= 12443和test_all行= 3160。
test_all <- structure(list(id = 1:10, prob.x = c(0.28596679330115, 0.279735053361815,
0.338603819307375, 0.194599435054571, 0.476363759900297, 0.275238339603548,
0.176972255733405, 0.252946580364815, 2.22044604925031e-16, 0.104812153176591
), prob.posterior.0.x = c(0.738863411672926, 0.699156184679517,
0.694836518606672, 0.82201990638751, 0.512084825115603, 0.752512686129015,
0.833756055709206, 0.77889031399789, 0.85923342860232, 0.897162910496329
), prob.posterior.0.y = c(0.816868907027163, 0.88314882358293,
0.876000590100842, 0.000346099954676674, 0.281801842618581, 0.90774486158684,
0.953466905345594, 0.972941904925762, 1, 0.989038854731561),
prob.y = c(0.102, 0.054, 0.094, 0.046, 0.418, 0.034, 0.004,
0.064, 0.024, 0.002), prob.x.x = c(0.371666666666667, 0.181666666666667,
0.365, 0.115, 0.603333333333333, 0.145, 0.108333333333333,
0.255, 0.065, 0.0283333333333333), prob.y.y = c(0.468571428571429,
0.304285714285714, 0.531428571428571, 0.2, 0.535714285714286,
0.182857142857143, 0.218571428571429, 0.37, 0.0671428571428571,
0.0542857142857143), prob.x.x.x = c(0.4675, 0.30375, 0.505,
0.2575, 0.51625, 0.17375, 0.205, 0.37375, 0.0675, 0.0575),
prob.y.y.y = c(0.483333333333333, 0.33, 0.497777777777778,
0.252222222222222, 0.522222222222222, 0.161111111111111,
0.202222222222222, 0.384444444444444, 0.0666666666666667,
0.0688888888888889), prob.x.x.x.x = c(0.466, 0.339, 0.482,
0.287, 0.483, 0.171, 0.204, 0.377, 0.067, 0.057), prob.y.y.y.y = c(0.488666666666667,
0.353333333333333, 0.456666666666667, 0.227333333333333,
0.496666666666667, 0.151333333333333, 0.226666666666667,
0.384666666666667, 0.082, 0.044), isDuplicate = structure(c(1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 2L), .Label = c("0", "1"), class = "factor")), row.names = c(NA,
10L), class = "data.frame")
val_all <- structure(list(id = 1:10, prob.x = c(0.208369633122333, 0.114718412814818,
0.181164427637408, 0.130043351783162, 0.17371403517561, 0.123186777419808,
0.423583436974847, 0.28277997411165, 0.438471447058347, 0.217345076415978
), prob.posterior.0.x = c(0.808452472441717, 0.890783910030093,
0.833505931776292, 0.879454469034375, 0.840119123146987, 0.883055989550092,
0.573369154998673, 0.745128816335, 0.555665197512509, 0.806449578390117
), prob.posterior.0.y = c(0.933817823925418, 0.981258530888843,
0.951414489947445, 0.983922593291254, 0.953332378642043, 0.983279034686162,
0.856370204189886, 0.843315249141696, 0.839892269098147, 0.962523398598772
), prob.y = c(0.066, 0.004, 0.006, 0.006, 0.008, 0.062, 0.066,
0.206, 0.018, 0.054), prob.x.x = c(0.261666666666667, 0.04, 0.0783333333333333,
0.035, 0.0616666666666667, 0.158333333333333, 0.186666666666667,
0.578333333333333, 0.0433333333333333, 0.246666666666667), prob.y.y = c(0.41,
0.108571428571429, 0.19, 0.102857142857143, 0.128571428571429,
0.184285714285714, 0.331428571428571, 0.704285714285714, 0.0742857142857143,
0.435714285714286), prob.x.x.x = c(0.44, 0.1125, 0.14125, 0.10375,
0.13375, 0.19875, 0.33125, 0.74, 0.06375, 0.4025), prob.y.y.y = c(0.447777777777778,
0.106666666666667, 0.208888888888889, 0.108888888888889, 0.118888888888889,
0.188888888888889, 0.372222222222222, 0.751111111111111, 0.0611111111111111,
0.446666666666667), prob.x.x.x.x = c(0.433, 0.118, 0.205, 0.119,
0.129, 0.178, 0.382, 0.728, 0.048, 0.428), prob.y.y.y.y = c(0.436,
0.112666666666667, 0.218666666666667, 0.111333333333333, 0.142,
0.173333333333333, 0.343333333333333, 0.740666666666667, 0.0573333333333333,
0.447333333333333), isDuplicate = structure(c(1L, 1L, 2L, 1L,
1L, 1L, 1L, 1L, 1L, 1L), .Label = c("0", "1"), class = "factor")), row.names = c(NA,
10L), class = "data.frame")
使用val_all数据集,我想训练我的randomForest。
final_trainer <- randomForest(isDuplicate~.,data =val_all,mtry =1,ntree=600)
final_trainer_pred <- predict(final_trainer,newData=val_all,type = 'prob')[,2] %>%
prediction(labels=val_all$isDuplicate)
performance(final_trainer_pred, "auc")@y.values[[1]]
这一切都可以...但是当我在test_all数据集上运行它时遇到错误时。
final_test <- predict(final_trainer,newData = test_all,type ="prob")[,2] %>% prediction(labels =test_all$isDuplicate)
performance(final_test,"auc")@y.values[[1]]
理想情况下,我希望获得test_all df的AUC的值。另外,鉴于我提供的数据框非常小,希望这不会引起问题。