## 2 Materials and Methods
### Machine Learning Methods
#### 2.1.5 Support Vector Regression  
SVR is an extension of the support vector machine classification algorithm [64] and is used for regression problems [65] such as the one considered here. To obtain the estimated continuous-valued multivariate function with this technique, an \(\epsilon\)-insensitive region around the function, called the \(\epsilon\)-tube, is considered. The optimisation problem then involves finding the tube that best approximates it. The estimation function is obtained by mapping the input samples onto a higher-dimensional feature space using a nonlinear mapping \(\phi\) and learning a linear regressor in the feature space [66]. That is, given the training vectors \(x^{(i)}\in\mathbb{R}^{d},\ i=1,2,\ldots,m\), and a vector \(y\in\mathbb{R}^{m}\), it is assumed that the regression estimating t function \(f:\mathbb{R}^{d}\longrightarrow\mathbb{R}\) is defined by \(f(x)=\omega^{t}\phi(x)+b\), where \(\omega\) is a vector in the feature space and \(b\) is a scalar threshold. Then, to determine the values of \(\omega\) and \(b\), SVR solves the following primal problem [64; 67; 68]:  
\[\min_{\omega,b,\xi_{i}^{*}}\frac{1}{2}\omega^{t}\omega+C\sum_{i=1 }^{m}(\xi_{i}+\xi_{i}^{*})\] subject to \[y_{i}-\omega^{t}\phi(x^{(i)})-b\leq\epsilon+\xi_{i},\] \[\omega^{t}\phi(x^{(i)})+b-y_{i}\leq\epsilon+\xi_{i}^{*},\] \[\xi_{i},\xi_{i}^{*}\geq 0,\ i=1,2,\ldots,m,\]  
where \(C,\epsilon\in\mathbb{R}^{+}\) are input parameters and \(\xi,\xi^{*}\) are nonnegative vectors of slack variables. This optimisation problem can be solved in its dual form using the Lagrange multipliers method, as follows:  
\[\min_{\alpha,\alpha^{*}}\frac{1}{2}(\alpha-\alpha^{*})^{t}P( \alpha-\alpha^{*})+\epsilon e^{t}(\alpha+\alpha^{*})-y^{t}(\alpha-\alpha^{*})\] subject to \[e^{t}(\alpha-\alpha^{*})=0,\] \[0\leq\alpha_{i},\alpha_{i}^{*}\leq C,\ i=1,2,\ldots,m,\]  
where \(\alpha,\alpha^{*}\in\mathbb{R}^{m}\) are the Lagrange multipliers, \(\epsilon\) is a vector of all ones and \(P\) is an \(m\times m\) positive semidefinite matrix, with \(P_{ij}=\phi(x^{(i)})^{t}\phi(x^{(j)})\). Then, taking \(K(x^{(i)},\ x^{(j)})=\phi(x^{(i)})^{t}\phi(x^{(j)})\), where \(K\) is a kernel function, the prediction of an input vector \(x\in\mathbb{R}^{d}\) is obtained as \(f(x)=\sum_{i=1}^{m}(\alpha_{i}-\alpha_{i}^{*})K(x^{(i)},x)+b\) (see Figure 5).  
To rewrite and solve the dual problem, various kernel functions can be used depending on the characteristics of the dataset, such as polynomial functions (\(K(x^{(i)},\ x^{(j)})=(\gamma(x^{(i)},x^{(j)})+\tau)^{\delta}\)), sigmoid functions (\(K(x^{(i)},x^{(j)})=\text{tanh}(\gamma(x^{(i)},x^{(j)})+\tau)\)) or radial basis function (RBF) kernels (\(K(x^{(i)},x^{(j)})=e^{-\gamma\|x^{(i)}-x^{(j)}\|^{2}}\)). In the training phase, different parameters (\(C\), \(\epsilon\), \(\gamma\), \(\delta\), \(\tau\)) must be optimised depending on the kernel function, although \(C\) and \(\epsilon\) are common to all SVR kernels.  
We note that SVR solves a convex optimisation problem in which the optimal solution is found analytically rather than heuristically, such that for a predetermined kernel and a given training dataset, the training phase returns a uniquely defined model.