r中的朴素贝叶斯分类器错误

时间:2013-06-26 13:56:41

标签: r machine-learning classification

我使用naiveBayes e1071对我的数据集进行分类(Classification class:“V32”0/1)。

以下是我的工作:

    d <- read.table("Modeling_Data.txt",header=FALSE,sep="\t",
                    comment.char="",quote="")
    #divide into training and test data 70:30
    trainingIndex <- createDataPartition(d$V32, p=.7, list=F)
    d.training <- d[trainingIndex,]
    d.testing <- d[-trainingIndex,]
    nb.classifier <- naiveBayes(as.factor(d$V32) ~ ., data = d.training)

但是我收到了这个错误:

    Error in names(dimnames(tables[[i]])) <- c(Yname, colnames(x)[i]) : 
    attempt to set an attribute on NULL
    predict(nb.classifier,d.testing[,-50000])
    Error in predict(nb.classifier, d.testing[, -50000]) : 
    object 'nb.classifier' not found

我尝试使用包含的数据集(虹膜),一切正常。我的方法出了什么问题?

1 个答案:

答案 0 :(得分:0)

似乎构建模型失败(因此未构造分类器)。如果不查看您的数据,我最好的猜测是您的案例不完整。

您可以尝试使用complete.cases删除包含缺失数据的案例,如下所示。

d <- read.table("Modeling_Data.txt",header=FALSE,sep="\t",comment.char="",quote="")

# remove incomplete cases
d[complete.cases(d),]

# divide into training and test data 70:30
trainingIndex <- createDataPartition(d$V32, p=.7, list=F)