(l-onnx-docai-onnx-ml-SVMClassifier)=
# ai.onnx.ml - SVMClassifier
(l-onnx-opai-onnx-ml-svmclassifier-1)=
## SVMClassifier - 1 (ai.onnx.ml)
### Version
- **name**: [SVMClassifier (GitHub)](https://github.com/onnx/onnx/blob/main/docs/Operators-ml.md#ai.onnx.ml.SVMClassifier)
- **domain**: `ai.onnx.ml`
- **since_version**: `1`
- **function**: `False`
- **support_level**: `SupportType.COMMON`
- **shape inference**: `True`
This version of the operator has been available
**since version 1 of domain ai.onnx.ml**.
### Summary
Support Vector Machine classifier
### Attributes
* **classlabels_ints - INTS** :
Class labels if using integer labels.
One and only one of the 'classlabels_*' attributes must be defined.
* **classlabels_strings - STRINGS** :
Class labels if using string labels.
One and only one of the 'classlabels_*' attributes must be defined.
* **coefficients - FLOATS** :
* **kernel_params - FLOATS** :
List of 3 elements containing gamma, coef0, and degree, in that order. Zero if unused for the kernel.
* **kernel_type - STRING** (default is `'LINEAR'`):
The kernel type, one of 'LINEAR,' 'POLY,' 'RBF,' 'SIGMOID'.
* **post_transform - STRING** (default is `'NONE'`):
Indicates the transform to apply to the score.
One of 'NONE,' 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT'
* **prob_a - FLOATS** :
First set of probability coefficients.
* **prob_b - FLOATS** :
Second set of probability coefficients. This array must be same size as prob_a.
If these are provided then output Z are probability estimates, otherwise they are raw scores.
* **rho - FLOATS** :
* **support_vectors - FLOATS** :
* **vectors_per_class - INTS** :
### Inputs
- **X** (heterogeneous) - **T1**:
Data to be classified.
### Outputs
- **Y** (heterogeneous) - **T2**:
Classification outputs (one class per example).
- **Z** (heterogeneous) - **tensor(float)**:
Class scores (one per class per example), if prob_a and prob_b are provided they are probabilities for each class, otherwise they are raw scores.
### Type Constraints
* **T1** in ( `tensor(double)`, `tensor(float)`, `tensor(int32)`, `tensor(int64)` ):
The input must be a tensor of a numeric type, either [C] or [N,C].
* **T2** in ( `tensor(int64)`, `tensor(string)` ):
The output type will be a tensor of strings or integers, depending on which of the classlabels_* attributes is used. Its size will match the bactch size of the input.