October 20th, Q&A session: Get you issues solved and questions answered!

GitHub logo
Edit

Linear SVM (Support Vector Machine)

Support Vector Machines (SVMs) are supervised learning models with associated learning algorithms that analyze data used for classification and regression analysis.

Given a set of training examples, each marked as belonging to one or the other of two categories, an SVM training algorithm builds a model that assigns new examples to one category or the other, making it a non-probabilistic binary linear classifier.

Apache Ignite Machine Learning module only supports Linear SVM. For more information look at SVM in Wikipedia.

Model

A Model in the case of SVM is represented by the class SVMLinearClassificationModel. It enables a prediction to be made for a given vector of features, in the following way:

SVMLinearClassificationModel model = ...;

double prediction = model.predict(observation);

Presently Ignite supports a few parameters for SVMLinearClassificationModel:

  • isKeepingRawLabels - controls the output label format: -1 and +1 for false value and raw distances from the separating hyperplane (default value: false)

  • threshold - a threshold to assign +1 label to the observation if the raw value is more than this threshold (default value: 0.0)

SVMLinearClassificationModel model = ...;

double prediction = model
  .withRawLabels(true)
  .withThreshold(5)
  .predict(observation);