Browse code

Remaining classifiers which don't name predictions have been made to name them.

Dario Strbenac authored on 20/10/2022 11:00:04
Showing 3 changed files

... ...
@@ -10,6 +10,6 @@ kNNinterface <- function(measurementsTrain, classesTrain, measurementsTest, ...,
10 10
   if(verbose == 3)
11 11
     message("Fitting k Nearest Neighbours classifier to data and predicting classes.")
12 12
   
13
-  class::knn(as.matrix(measurementsTrain), as.matrix(measurementsTest), classesTrain, ...)
13
+  setNames(class::knn(as.matrix(measurementsTrain), as.matrix(measurementsTest), classesTrain, ...), rownames(measurementsTest))
14 14
 }
15 15
 attr(kNNinterface, "name") <- "kNNinterface"
... ...
@@ -149,12 +149,14 @@ mixModelsPredict <- function(models, measurementsTest, difference = c("unweighte
149 149
       classScores <- classScores / sum(classScores) # Make different feature selection sizes comparable.
150 150
       classPredicted <- names(classScores)[which.max(classScores)]
151 151
     }
152
-
153 152
     data.frame(class = factor(classPredicted, levels = classesNames), t(classScores), check.names = FALSE)
154 153
   }))
155 154
 
156
-  switch(returnType, class = predictions[, "class"],
157
-         score = predictions[, colnames(predictions) %in% classesNames],
155
+  classPredictions <- predictions[, "class"]
156
+  classScores <- predictions[, colnames(predictions) %in% classesNames]
157
+  rownames(classScores) <- names(classPredictions) <- rownames(measurementsTest)
158
+  switch(returnType, class = classPredictions,
159
+         score = classScores,
158 160
          both = data.frame(class = predictions[, "class"], predictions[, colnames(predictions) %in% classesNames, drop = FALSE], check.names = FALSE)
159 161
   )
160 162
 }
... ...
@@ -115,9 +115,12 @@ naiveBayesKernel <- function(measurementsTrain, classesTrain, measurementsTest,
115 115
 
116 116
     data.frame(class = factor(classPredicted, levels = levels(classesTrain)), t(classScores), check.names = FALSE)
117 117
   }))
118
-
119
-  switch(returnType, class = predictions[, "class"],
120
-         score = predictions[, 2:ncol(predictions)],
118
+  
119
+  classPredictions <- predictions[, "class"]
120
+  classScores <- predictions[, 2:ncol(predictions)]
121
+  rownames(classScores) <- names(classPredictions) <- rownames(measurementsTest)
122
+  switch(returnType, class = classPredictions,
123
+         score = classScores,
121 124
          both = predictions)
122 125
 }
123 126
 attr(naiveBayesKernel, "name") <- "naiveBayesKernel"
124 127
\ No newline at end of file