I have a dataset (data) with 700 rows and 7000 columns. I am trying to do recursive feature selection with the SVM model. A quick google search helped me get a code for a recursive search with SVM. However, I am unable to understand the first part of the code, How do I introduce my dataset in the code?
If the dataset is a matrix, named data. Please give me an example for recursive feature selection with SVM. Bellow is the code I got for recursive feature search. svmrfeFeatureRanking = function(x,y){ #Checking for the variables stopifnot(!is.null(x) == TRUE, !is.null(y) == TRUE) n = ncol(x) survivingFeaturesIndexes = seq_len(n) featureRankedList = vector(length=n) rankedFeatureIndex = n while(length(survivingFeaturesIndexes)>0){ #train the support vector machine svmModel = svm(x[, survivingFeaturesIndexes], y, cost = 10, cachesize=500, scale=FALSE, type="C-classification", kernel="linear" ) #compute the weight vector w = t(svmModel$coefs)%*%svmModel$SV #compute ranking criteria rankingCriteria = w * w #rank the features ranking = sort(rankingCriteria, index.return = TRUE)$ix #update feature ranked list featureRankedList[rankedFeatureIndex] = survivingFeaturesIndexes[ranking[1]] rankedFeatureIndex = rankedFeatureIndex - 1 #eliminate the feature with smallest ranking criterion (survivingFeaturesIndexes = survivingFeaturesIndexes[-ranking[1]])} return (featureRankedList)} I tried taking an idea from the above code and incorporate the idea in my code as shown below library(e1071) library(caret) data<- read.csv("matrix.csv", header = TRUE) x <- data y <- as.factor(data$Class) svmrfeFeatureRanking = function(x,y){ #Checking for the variables stopifnot(!is.null(x) == TRUE, !is.null(y) == TRUE) n = ncol(x) survivingFeaturesIndexes = seq_len(n) featureRankedList = vector(length=n) rankedFeatureIndex = n while(length(survivingFeaturesIndexes)>0){ #train the support vector machine svmModel = svm(x[, survivingFeaturesIndexes], y, cross=10,cost = 10, type="C-classification", kernel="linear" ) #compute the weight vector w = t(svmModel$coefs)%*%svmModel$SV #compute ranking criteria rankingCriteria = w * w #rank the features ranking = sort(rankingCriteria, index.return = TRUE)$ix #update feature ranked list featureRankedList[rankedFeatureIndex] = survivingFeaturesIndexes[ranking[1]] rankedFeatureIndex = rankedFeatureIndex - 1 #eliminate the feature with smallest ranking criterion (survivingFeaturesIndexes = survivingFeaturesIndexes[-ranking[1]])} return (featureRankedList)} But couldn't do anything at the stage "update feature ranked list" Please guide [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.