使用klaR和ROCR软件包绘制朴素贝叶斯曲线
这里我有一个分类任务,我需要使用klaR和ROCR包。 问题是ROC曲线的性能非常低 这是我的密码:使用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=",")
#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]