Dear all,

I executed svm calculation using e1071 library with a microarray data (http://www.iu.a.u-tokyo.ac.jp/~kadota/R/data_Singh_RMA_3274.txt).
Then, I shuffled the data samples and executed svm calculation again.
The results of 2 calculation were different (in SV, coefs and weights).

I attached the script below. Could please tell me why this happens?
If possible please tell me how to make them equal.

Best regards,

Hiro

### Script start ###

library(e1071)
data <- read.table('http://www.iu.a.u-tokyo.ac.jp/~kadota/R/data_Singh_RMA_3274.txt', header=TRUE, row.names=1, sep="\t", quote="")

data.cl <- rep(NA,ncol(data))
data.cl[grep('Normal',colnames(data))] <- 'Normal'
data.cl[grep('Tumour',colnames(data))] <- 'Tumour'

s <- sample(ncol(data))

m   <- svm(x=t(data    ), y=factor(data.cl   ), scale=T, type="C-classification",kernel="linear")
m.s <- svm(x=t(data[,s]), y=factor(data.cl[s]), scale=T, type="C-classification", kernel="linear")

w   <- t(m  $coefs) %*% m$SV
w.s <- t(m.s$coefs) %*% m.s$SV

# SV and coefs are slightly different
sum(abs(m$SV[order(rownames(m$SV)),] - m.s$SV[order(rownames(m.s$SV)),]))
sum(abs(m$coefs[order(rownames(m$SV))] -m.s$coefs[order(rownames(m.s$SV))]))

# rank of weight are not identical
all(rank(w)==rank(w.s))

### Script end ###


	[[alternative HTML version deleted]]

