我如何平均不同长度的向量?

时间:2017-09-11 15:00:53

标签: r prediction roc

我试图对randomForest模型的许多运行进行平均以产生平均ROC曲线。我正在使用pROC和randomForest包。基本上在这一点上,我想运行模型一千次,平均特异性和灵敏度,并绘制平均曲线。

问题在于,每次运行模型时,我都会获得不同的长度向量,以获得特异性和灵敏度。

所以我可以在第一次运行它并提取sens和spec矢量,然后会收到一个48个数字的矢量。然后下次我运行它时,我可能会收到44个号码。我不能说,run1 + run2,因为:

longer object length is not a multiple of shorter object length

我目前的做法是:

sens1 = get_cur_sens()
sens1
 [1] 2.00000000 1.88558559 1.82522523 1.79189189 1.75855856 1.75855856 1.72522523 1.69819820 1.69819820 1.63783784 1.63783784 1.63783784 1.61081081
[14] 1.55045045 1.52342342 1.52342342 1.46306306 1.40270270 1.37567568 1.37567568 1.34864865 1.31531532 1.31531532 1.28828829 1.26126126 1.23423423
[27] 1.17387387 1.14684685 1.11981982 1.05945946 0.99909910 0.93873874 0.87837838 0.81801802 0.75765766 0.69729730 0.63693694 0.57657658 0.51621622
[40] 0.45585586 0.39549550 0.33513514 0.27477477 0.18738739 0.12702703 0.06666667 1.03333333 0.91891892

length(sens1)
48

#rerun model
sens2 = get_cur_sens()
sens2
  [1] 1.00000 0.96875 0.90625 0.90625 0.90625 0.90625 0.90625 0.90625 0.90625 0.90625 0.90625 0.90625 0.90625 0.87500 0.84375 0.81250 0.81250 0.78125 0.75000
[20] 0.71875 0.71875 0.68750 0.65625 0.62500 0.59375 0.59375 0.59375 0.56250 0.53125 0.50000 0.46875 0.43750 0.40625 0.37500 0.34375 0.31250 0.28125 0.25000
[39] 0.21875 0.18750 0.15625 0.12500 0.09375 0.00000

length(sens2)
44

#I want to do this:
sens = sens1 + sens2
...loop


#After all the runs, just average the vector based on the number of runs.
sens = sens / numRuns

所以我认为为每个载体设置相同数量的项目会很棒,但我不认为我可以指定它。有没有办法,例如,使用向量转换来计算具有100个值的新向量?我需要以某种方式保持每个向量的完整性,但也得到平均值。

我感谢任何人都可以提供的任何建议。

0 个答案:

没有答案
相关问题