【问题标题】:caret: "Some row.names duplicated" warning when using RFE插入符号:使用 RFE 时出现“某些 row.names 重复”警告
【发布时间】:2016-02-11 06:17:31
【问题描述】:

我正在根据paper 的第 5 页中的线性问题构建一个玩具数据集,以便使用带有 rbf 内核的 caret 的 RFE+SVM 测试特征选择。但是,当 RFE 完成时,每次引导迭代都会收到一条警告,其中包含以下消息:“In data.row.names(row.names, rowsi, i) : some row.names duplicated:” 后跟许多行号,直到输出被截断。

这是因为引导程序可能会选择替换样本并因此在引导数据中复制行,还是有其他问题?任何建议表示赞赏(请原谅人工数据集的延迟实现)。

library(caret)

################
# 1. Building dataset
################
set.seed(1)
n.samples <- 500
y <- round(runif(n = n.samples, min=0, max=1))
data <- matrix(nrow=n.samples, ncol=202)

for(i in 1:n.samples){
  toss <- runif(n=1, min=0, max=1)
  if(toss <= 0.7) {
    for(j in 1:3){
      data[i,j] <- y[i]*rnorm(n = 1, mean = i, sd = 1)
    }

    for(j in 4:6){
      data[i,j] <- rnorm(n = 1, mean = 0, sd = 1)
    }
  } else {
    for(j in 1:3){
      data[i,j] <- rnorm(n=1, mean=0, sd=1)
    }

    for(j in 4:6){
      data[i,j] <- y[i]*rnorm(n=1, mean=i-3, sd = 1) 
    }
  }

  for(j in 7:202){
    data[i,j] <- rnorm(n = 1, mean = 0, sd = 20)
  }
}

colnames(data) <- c(paste("s", 1:6, sep = ""), paste('ns', 7:202, sep=''))
rownames(data) <- paste('sample', 1:n.samples, sep='')

################
# 2. Perform SVM - RFE
################
set.seed(1)

rfe.control.settings <- rfeControl(functions = caretFuncs,
                                   method = 'boot',
                                   number = 30,
                                   verbose = TRUE)

svm.fit <- rfe(x=data, 
               y=y,
               sizes=c(1,2,3,4),
               rfeControl = rfe.control.settings,
               method = 'svmRadial') #passing options to train / caretFuncs

【问题讨论】:

  • 我在使用线性支持向量机方法结合引导时遇到了同样的问题。你找到解决办法了吗?

标签: r svm r-caret statistics-bootstrap rfe


【解决方案1】:

我遇到了同样的问题,为我解决的问题是将数据类从 matrix 更改为 data.frame

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 2015-05-14
    • 2022-12-28
    • 2019-06-02
    • 2016-04-26
    • 2012-06-20
    • 2011-12-10
    • 1970-01-01
    相关资源
    最近更新 更多