blob: 812e2dc3f6904dbcc2cd6ca5975f5850f796fa31 [file]
= 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 link:https://en.wikipedia.org/wiki/Support_vector_machine[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:
[source, java]
----
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)
[source, java]
----
SVMLinearClassificationModel model = ...;
double prediction = model
.withRawLabels(true)
.withThreshold(5)
.predict(observation);
----