question about svm(e1071)
Looking at your results suggests that differences are probably based on expected minor numerical inaccuracies and the possibly alternating sign of the support vectors. Best, Uwe Ligges
On 13.01.2011 01:28, mutohrn at chugai-pharm.co.jp wrote:
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]]
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.