<aside> 💡 0,6
</aside>
Solution 1 — Using ROCR perfomance()
# required libraries
library(ROCR)
pred_obj_M1 = prediction(data$P_M1, data$Class, label.ordering = c("0","1"))
performance(pred_obj, "tpr")
# επιλέγουμε την τιμή του **y.values** που αντιστοιχεί στο *0.55* του **x.values,**
# καθώς το *0.55* είναι το αμέσως μεγαλύτερο cutoff point απο το *0.5* που θέλουμε εμείς
Solution 2 — Calculating Confusion Matrix
# initialize ypred as factor
ypred = factor(,levels = c(0,1))
# create ypred with given threshold
for (i in 1:length(data[,"P_M1"])){
ypred[i] = ifelse(data$P_M1[i] > 0.5, 1, 0)
}
# calculate confusion matrix
cm = as.matrix(table(Actual = data$Class, Predicted = ypred))
# calculate TPR
TPR = cm[2,2] / rowSums(cm)[2]
# print TPR
print(TPR)
Solution 3 - Using MLmetrics
# required libraries
library(MLmetrics)
# initialize ypred as factor
ypred = factor(,levels = c(0,1))
# create ypred with given threshold
for (i in 1:length(data[,"P_M1"])){
ypred[i] = ifelse(data$P_M1[i] > 0.5, 1, 0)
}
# calculate sensitivity aka TPR
Sensitivity(data$Class, ypred, positive = "1")
<aside> 💡 0,2857
</aside>
# required libraries
library(ROCR)
pred_obj_M2 = prediction(data$P_M2, data$Class, label.ordering = c("0","1"))
performance(pred_obj, "f")
# επιλέγουμε την τιμή του **y.values** που αντιστοιχεί στο *0.61* του **x.values,**
# καθώς το *0.61* είναι το αμέσως μεγαλύτερο cutoff point απο το *0.5* που θέλουμε εμείς
<aside> 💡 0,4
</aside>
# required libraries
library(ROCR)
# create ROC object
ROC1 <- performance(pred_obj_M1, "tpr", "fpr")
ROC2 <- performance(pred_obj_M2, "tpr", "fpr")
# plot ROC for M1 and M2 + threshold line
plot(ROC1, col = "blue")
plot(ROC2, col = "red", add=TRUE)
abline(0,1, col = "grey")
# calculate M2 AUC
performance(pred_obj_M2, "auc")@y.values
<aside> 💡 (a) Το μοντέλο Μ1 M1 AUC > M2 AUC
</aside>