gpt4 book ai didi

r - 使用 Caret 在 R 中为 k-fold CV 创建折叠

转载 作者:行者123 更新时间:2023-12-04 02:43:37 35 4
gpt4 key购买 nike

我正在尝试使用以下可用数据为几种分类方法/超参数制作 k 折 CV

http://archive.ics.uci.edu/ml/machine-learning-databases/undocumented/connectionist-bench/sonar/sonar.all-data.



该集合由 208 行组成,每行有 60 个属性。我正在使用 read.table 函数将其读入 data.frame。

下一步是将我的数据分成 k 折,假设 k = 5。我的第一次尝试是使用

test <- createFolds(t, k=5)



我有两个问题。第一个是折叠的长度不相邻:

  Length Class  Mode   

Fold1 29 -none- numeric
Fold2 14 -none- numeric
Fold3 7 -none- numeric
Fold4 5 -none- numeric
Fold5 5 -none- numeric



另一个是,这显然根据属性索引拆分了我的数据,但我想拆分数据本身。我认为通过转置我的 data.frame,使用:

test <- t(myDataNumericValues)



但是当我调用 createFolds 函数时,它给了我这样的东西:

  Length Class  Mode   

Fold1 2496 -none- numeric
Fold2 2496 -none- numeric
Fold3 2495 -none- numeric
Fold4 2496 -none- numeric
Fold5 2497 -none- numeric



长度问题已解决,但仍然没有相应地拆分我的 208 数据。

关于我能做什么的任何想法?你认为插入符号包不是最合适的吗?

提前致谢

最佳答案

请阅读 ?createFolds了解函数的作用。它创建的索引定义了哪些数据被保留在单独的折叠中(参见返回相反的选项):

  > library(caret)
> library(mlbench)
> data(Sonar)
>
> folds <- createFolds(Sonar$Class)
> str(folds)
List of 10
$ Fold01: int [1:21] 25 39 58 63 69 73 80 85 90 95 ...
$ Fold02: int [1:21] 19 21 42 48 52 66 72 81 88 89 ...
$ Fold03: int [1:21] 4 5 17 34 35 47 54 68 86 100 ...
$ Fold04: int [1:21] 2 6 22 29 32 40 60 65 67 92 ...
$ Fold05: int [1:20] 3 14 36 41 45 75 78 84 94 104 ...
$ Fold06: int [1:21] 10 11 24 33 43 46 50 55 56 97 ...
$ Fold07: int [1:21] 1 7 8 20 23 28 31 44 71 76 ...
$ Fold08: int [1:20] 16 18 26 27 38 57 77 79 91 99 ...
$ Fold09: int [1:21] 13 15 30 37 49 53 74 83 93 96 ...
$ Fold10: int [1:21] 9 12 51 59 61 62 64 70 82 87 ...

要使用这些来拆分数据:
   > split_up <- lapply(folds, function(ind, dat) dat[ind,], dat = Sonar)
> dim(Sonar)
[1] 208 61
> unlist(lapply(split_up, nrow))
Fold01 Fold02 Fold03 Fold04 Fold05 Fold06 Fold07 Fold08 Fold09 Fold10
21 21 21 21 20 21 21 20 21 21

函数 train用于在这个包中进行实际建模(您通常不需要自己进行拆分。参见 this page )。

最大限度

关于r - 使用 Caret 在 R 中为 k-fold CV 创建折叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22909197/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com