【发布时间】:2016-05-03 00:35:57
【问题描述】:
我试图通过递增地添加每个变量来获得朴素贝叶斯分类器的错误率。例如,我的数据集中有 25 个变量。当我一次添加一个变量时,我想获得模型的错误率。所以你知道它会输出模型的前 2 列的错误率,前 3 列的错误率,然后是前 4 列的错误率,依此类推,直到最后一列。
这是我想要实现的伪代码
START
IMPORT DATASET WITH ALL VARIABLES
num_variables = num_dataset_cols
i= 1
WHILE (i <= num_variables)
{
CREATE NEW DATASET WITH x COLUMNs
BUILD THE MODEL
GET THE ERROR RATE
ADD IN NEXT COLUMN
i = i + 1
}
这是一个可重复的问题。显然你不能用这些数据构建一个 NB 分类器,但这不是我的问题。我的问题是一一添加。到目前为止,我能做到的唯一方法是覆盖每一列。对于 NB 分类器,第一列是类节点,因此必须至少有 2 列开始才能运行。
#REPRODUCIBLE EXAMPLE
col1 <- c("A", "B", "C", "D", "E")
col2 <- c(1,2,3,4,5)
col3 <- c(TRUE, FALSE, FALSE, TRUE, FALSE)
col4 <- c("n","y","y","n","y")
col5 <- c("10", "15", "50", "100", "20")
dataset <- data.frame(col1, col2, col3, col4,col5)
num_variables <- ncol(dataset)
i <- 1
while i <= num_variables
{
data <- dataset[c(1, i+1)]
str(data)
#BUILD MODEL AND GET VALIDATION ERROR
#INCREMENT i TO GET NEXT COLUMN
i <- i + 1
}
您应该能够从str(data) 看到每次该列被覆盖。有谁知道我如何在不覆盖前一列的情况下添加每一列?有人向我建议了一个数组,但我对 R 中的数组不太熟悉。这可行吗?
【问题讨论】:
标签: r loops dataframe naivebayes