# Complex and Hypercomplex-Valued Support Vector Machines: A Survey
## 2 Complex and Hypercomplex Support Vector Machines Extensions
### Geometric or Clifford Support Vector Machines
CSVM presented the entire design of a multivector-optimization problem, the derivation of the primal and dual multivector-valued problems and the definition of the Gramm matrix as a matrix with multivectors as elements, as well as the introduction of a multivector-valued kernel design. The key feature of CSVM design is the use of the Clifford product involved in the multivector-valued kernels to keep separated the different grade components of each input multivector and at the end, to represent those components as the direct sum of linear spaces in multivector-valued outputs. All the above allow the CSVM to solve optimization problems in complex and hypercomplex vector spaces, so that the original and the feature (or RKHS) spaces can preserve the topology and geometry of the complex and hypercomplex input data. It is demonstrated that when this machine learning algorithm is used to process this type of data, the accuracy and convergence speed can be improved with respect to the obtained accuracy and convergence speed with real SVMs. The CSVM was presented to solve multi-classification and multi-regression, and using it in conjunction with a long short-term memory neural network [20] can deal with dynamic systems or recurrence. Two multivector-valued kernels are designed: a complex kernel using the GA \(G_{0,1,0}\) and a quaternion-valued kernel embedded in the GA \(G_{0,2,0}\). The design methodology can be extended to any Clifford algebra (so it can be applied to solve any hypercomplex SVM problem). This approach was used to solve multi-classification for object recognition, multi-interpolation, time-series forecasting, and path-planning problems. In [15] a Quaternion Support Vector Machine (QSVM) was presented as an special case of the CSVM of [9]. The quaternion algebra framework was used to design a QSVM that processes multiple multivectors as input and returns multiple multivectors as output data to achieve multi-class classification. Two quaternion kernels that involve the quaternion product in their definition were designed: polynomial quaternion-valued kernel and Gaussian quaternion Gabor kernel. In addition quaternion \(sign()\) function is defined to allow the QSVM to classify up to sixteen classes using one QSVM. Diamond colour classification and object recognition experiments were conducted to demonstrate the algorithm efficiency. The article [21] the methodology to implement a parallel CSVM using the Gaussian kernel was presented. As the Gaussian kernel returns a real number even when it is used with multivectors as input data, and in addition it has the commutative property (as the Gaussian kernel does not involves the Clifford product computation) the multivector input data can be separated into its different grade elements that belong to independent subspaces and therefore a quadratic optimization problem for each element can be solved using parallelism. Experiments of classification were conducted using benchmark problems such as the concentric 2D spirals and a five-class problem described with three overlapped circles.