| = 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); |
| ---- |
| |
| |
| |