[ top | up ]

Which Column is Maximal

Usage

max.col(m)

Arguments

m a numeric matrix.

Description

For the n * k matrix m, find the index of a maximal element for each row.

In the case of ties (more than one maximum in a row), uses reservoir sampling to break ties at random.

Value

An integer vector, say nc, of length k =nrow(m), where nc[i] == j if m[i,j] == max(m[i,]).

Examples

mm <- cbind(1,1:8,3)
max.col(mm)
apply(mm,1,function(x) order(x)[3])#-- the same [sometimes!]

#- See that ties are broken randomly:
r <- integer(3)
for(i in 1:100) { m <- max.col(mm)[3]; r[m] <- r[m] + 1}
r[2:3] # about 50:50

test.cl <- function(true, pred){
	## Compute (Mis)classification table for "Softmax"
        true <- max.col(true)
        cres <- max.col(pred)
        table(true, cres)
}