使用
max.col
colnames(pred_prob)[max.col(pred_prob)]
#[1] "setosa" "setosa" "setosa"
或者使用循环
output <- vector("double", nrow(pred_prob))
for(row in 1:nrow(pred_prob)) {
output[row] <- which.max(pred_prob[row,])
}
output
#[1] 1 1 1
或者
apply
apply(pred_prob, MARGIN = 1, FUN = which.max)
#1 2 3
#1 1 1
数据
pred_prob <- structure(c(0.979989881, 0.972567961, 0.978668604, 0.011347796,
0.018145783, 0.011973933, 0.008662323, 0.009286256, 0.009357463
), .Dim = c(3L, 3L), .Dimnames = list(c("1", "2", "3"), c("setosa",
"versicolor", "virginica")))