使用klaR和ROCR软件包绘制朴素贝叶斯曲线

使用klaR和ROCR软件包绘制朴素贝叶斯曲线,r,naivebayes,roc,R,Naivebayes,Roc,这里我有一个分类任务,我需要使用klaR和ROCR包。 问题是ROC曲线的性能非常低 这是我的密码: #install the klaR package for naiveBayes install.packages('klaR') library(klaR) library(ROCR) #create data set train<-read.table(file="train.txt",header=TRUE,sep=",")

这里我有一个分类任务,我需要使用klaR和ROCR包。 问题是ROC曲线的性能非常低

这是我的密码:

    #install the klaR package for naiveBayes
    install.packages('klaR')
    library(klaR)
    library(ROCR)

    #create data set 
    train<-read.table(file="train.txt",header=TRUE,sep=",")
    test<- read.table(file="test.txt",header=TRUE,sep=",")
    train$Type <- as.factor((train$Type))
    test$Type <- as.factor((test$Type))

    #build nb model and make predictions 
    nb <- NaiveBayes(Type ~ ., data = train)
    nbprediction = predict(nb, test, type='raw')

    #Plot Roc Curve
    score = nbprediction$posterior[, 1]
    actual.class = test$Type
    pred = prediction(score, actual.class)
    nb.prff = performance(pred, "tpr", "fpr")
    plot(nb.prff)

AUC<0.5表明你的预测比随机预测更糟糕——基本上你预测的是相反的等级。这是由以下行引起的:

score = nbprediction$posterior[, 1]
它给出了一个观测值属于0类的概率。0级的得分较高,
ROCR
期望较高的值代表1级。使用后验矩阵的第二列:

score = nbprediction$posterior[, 2]

谢谢,我是新来的R,我忘记了最初的索引在R是1而不是0。如果这回答了你的问题,请考虑接受它。
score = nbprediction$posterior[, 2]