-1

如何获取每个变量的 OA 和 Kappa 值,如下图所示?该研究使用了使用 Caret 的 RFE

在此处输入图像描述

4

1 回答 1

1

如果您rfe对数据集进行分类,您将获得此表。看起来文章已清理并重命名了一些列名,但仅此而已。

library(caret)

data(mdrr)
mdrrDescr <- mdrrDescr[,-nearZeroVar(mdrrDescr)]
mdrrDescr <- mdrrDescr[, -findCorrelation(cor(mdrrDescr), .8)]

set.seed(1)
inTrain <- createDataPartition(mdrrClass, p = .75, list = FALSE)[,1]

train <- mdrrDescr[ inTrain, ]
test  <- mdrrDescr[-inTrain, ]
trainClass <- mdrrClass[ inTrain]
testClass  <- mdrrClass[-inTrain]

set.seed(2)
ctrl <- rfeControl(functions = rfFuncs,method = "cv",number = 5, verbose = FALSE)

rf_profile <- rfe(train, trainClass,
                  ntree = 50,
                  rfeControl = ctrl)

rf_profile$results包含您可以在表中看到的结果。

rf_profile$results
  Variables  Accuracy     Kappa AccuracySD   KappaSD
1         4 0.7355696 0.4599432 0.06290770 0.1274150
2         8 0.7934494 0.5736408 0.08328405 0.1725036
3        16 0.8060759 0.6011138 0.05961418 0.1222687
4        61 0.8260759 0.6411303 0.07101790 0.1483737

如果你想要这些变量的名字,你可以像这样得到它们

rf_profile$optVariables[rf_profile$results$Variables]
[1] "VRA1"     "TI2"      "Xt"       "G.O..Cl."
于 2018-05-18T09:48:42.513 回答