## 4 EFTs Classification Scheme
### Kohonen Self-Organizing Map (SOM)  
The self-organizing map (SOM) is an unsupervised, non-parametric and competitive neural network model used to reduce data dimensionality in non-linear data processing and which allows identifying groups of observations with similar patterns [37, 73].  
The SOM (Figure 3) is composed of two layers: the input and output layer. The input layer represents the input feature vector and has as many neurons (_n_) as it has variables (_i.e._, functional attributes). The output layer or competitive layer is an array of neurons or nodes (_M_) spatially structured in a regular lattice (_m_\(\times\)_m_), usually in a two-dimensional grid. Each output layer neuron is connected to the \(n\) components of the input layer \(x\) (_i.e._, _x\({}_{1}\)_,..., _x\({}_{n}\)_) by a synaptic weight _w\({}_{i}\)_. An _n_-dimensional vector of synaptic weights (prototype) (_w\({}_{i}\)_) is associated with each neuron \(j\) in the grid, where \(n\) refers to the dimensionality of an input data pattern [74].  
The SOM is trained iteratively, which could be summarized in four basic steps (for more in-depth analysis of the algorithm, refer to [41]):  
Figure 3: Schematic layout of a self-organizing map adapted from [74].  
1. _Initialization:_ the \(M\) weight vectors are initialized to a random value between 0 and 1.
2. _Competition:_ each input vector in the training set, \(x\), is compared with each weight vector, _wy_, to determine the neuron \(j\) which is the closest in terms of distance. This winning output node or neuron _c(j)_,which is called Best-Matching Unit (BMU), is typically computed using the minimum-distance Euclidean through the following rule: \[c(j)\] = \[\underset{15,j\leq M}{\arg\min}\ \left\|\!\left\{x\ -\ w_{j}\right\}\right\|\!\!\right\}\,i=1,\ldots,\,N\] (1)
3. _Cooperation:_ in this stage it is necessary to define a neighborhood function that allows to identify the output nodes close to the BMU, _c(j)_, to be updated in the next step.
4. _Updating:_ the weight vector of neurons close to the BMU, as well as the weight vector of the BMU itself, are updated according to: \[w_{ij}(t+1)=w_{ij}+\alpha(t)h_{ci}(r(t))\Big{|}x(t)-w_{ij}(t)\Big{]}\] (2) where \(t\) denotes time, _a(t)_ is learning rate with an initial value between 0 and 1, _hci(r(t))_ denotes the neighborhood kernel around the winner unit \(c\), with neighborhood radius _r(t)_.  
This update procedure stretches the winning neuron and its topological neighbors towards the sample vector. Neighboring neurons are pulled in the same direction, and thus weight vectors of neighboring neurons resemble each other for adopting competitive learning rules and neighborhood (the topological neighborhood relationships). Neurons with the same properties in the competitive layer would be close to each other, and the others would be far away when the clustering process is finished [41].  
(5) _Repetition_: Repeat steps 2 and 3 until the network convergence, where the learning rate and neighborhood decrease monotonically with time.  
Before applying the SOM algorithm, variables were standardized in order to ensure that all variables had the same _a priori_ relevance for the model. Several parameters in the SOM need to be set up manually, e.g., number of neurons, and thus were evaluated in order to apply the better ones. The quality of the results is measured through quantization (_Qe_) and the topographic error (_Te_) [38]. _Qe_ is the average Euclidean distance between each data vector and its BMU [75]. This error measure evaluates the fitting of the neural map to the data. _Te_ is a measure of the continuity of the mapping [76], which measures the proportion of all data vectors for which first and second BMU are not adjacent vectors.