title: Make predictions on new data using a SVM in matlab
body: <p>I trained a SVM classifcation model using "fitcsvm" function and tested with the test data set. Now I want to use this model to predict the classes of new (previously unseen) data. What should be done ?</p>
  
  <p>Following is the code I used.</p>
  
  <pre><code>load FeatureLabelsNum.csv
  load FeatureOne.csv
  
  X = FeatureOne(1:42,:);
  y = FeatureLabelsNum(1:42,:);
  
  %dividing the dataset into training and testing 
  rand_num = randperm(42);
  
  %training Set
  X_train = X(rand_num(1:34),:);
  y_train = y(rand_num(1:34),:);
  
  %testing Set
  X_test = X(rand_num(34:end),:);
  y_test = y(rand_num(34:end),:);
  
  %preparing validation set out of training set
  
  c = cvpartition(y_train,'k',5);
  
  SVMModel = 
  fitcsvm(X_train,y_train,'Standardize',true,'KernelFunction','RBF',...
  'KernelScale','auto','OutlierFraction',0.05);
  
  CVSVMModel = crossval(SVMModel);
  
  classLoss = kfoldLoss(CVSVMModel)
  classOrder = SVMModel.ClassNames
  sv = SVMModel.SupportVectors;
  
  figure
  gscatter(X_train(:,1),X_train(:,2),y_train)
  hold on
  plot(sv(:,1),sv(:,2),'ko','MarkerSize',10)
  legend('Resampled','Non','Support Vector')
  hold off
  
  
  X_test_w_best_feature =X_test(:,:);
  bp = (predict(SVMModel,X_test)== y_test);
  </code></pre>