Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ```{r}
- #2.5 ####################################################################################
- library(MASS)
- library(e1071)
- library("tree")
- fit_NB = naiveBayes(as.factor(good_bad) ~., data = train)
- fit_T = tree(formula=as.factor(good_bad)~., data=train, split = "deviance")
- fit_T= prune.tree(fit_T, 4)
- Yfit_NB = predict(fit_NB, newdata = test, type = "raw") # raw ger sannolikheter.
- Yfit_T = predict(fit_T, newdata = test)
- scores_NB = matrix(numeric(((2*length(n)))),ncol =2) #TPR and FPR for Naive Bayes
- colnames(scores_NB) = c("TPR", "FPR")
- scores_T = matrix(numeric(2*length(n)),ncol =2) #TPR and FPR for Tree model
- colnames(scores_T) = c("TPR", "FPR")
- n= seq(0.05,0.95,0.05)
- for (i in n){
- index = match(i,n)
- Y_hat_NB = ifelse(Yfit_NB[,2]>i,"good","bad")
- Y_hat_T = ifelse(Yfit_T[,2]>i,"good","bad")
- CT_NB = table(test$good_bad,Y_hat_NB)
- CT_T = table(test$good_bad,Y_hat_T)
- #TPR (True Positive Rate) = probability target being true and model predicting true.
- #FPR (False Positive Rate) = probability of the target being false while the model predicts it to be true
- scores_NB[index,1] = (CT_NB[1,1]/sum(CT_NB[1,])) # TPR = (true|true)/(true|true+false|true)
- scores_NB[index,2] = (CT_NB[2,1]/sum(CT_NB[2,])) # FPR = (true|false)/(false|false+true|false)
- scores_T[index,1] = (CT_T[1,1]/sum(CT_T[1,])) # TPR = (true|true)/(true|true+false|true)
- scores_T[index,2] = (CT_T[2,1]/sum(CT_T[2,])) # FPR = true|false/(false|false+true|false)
- }
- par( pty = "s")
- plot(scores_NB[,2],scores_NB[,1],type = "l", col = "blue", xlim = c(0,1), ylim = c(0,1),
- xlab = "fpr",
- ylab= "tpr")
- lines(scores_T[,2],scores_T[,1], col = "green")
- ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement