## 2 Related Works
### Supervised Classifier  
In the literature there are several classification algorithms, belonging to different approaches. In this section we will address seven of them; these algorithms represent vector support machines, neural networks, distance-based classifiers, decision trees, probabilistic classifiers, rule-based classifiers, and classifier committees.  
Support Vector Machines (SVM) [23] are algorithms which construct a model that linearly separates classes using a hyperplane. The classification performance depends on the separation done by the hyperplane. This algorithm is designed to work with two classes, so in order to use a multiclass dataset, other strategies have been used, such as multi-splitting the classes or constructing more than one model to cover all the classes. Finding the right kernel is not easy, so the results may vary. SVM models suffer from a lack of interpretability. We used the Weka implementation of IMO due to its low computational cost.  
Multilayer perceptron (MLP) [22] is an artificial neural network model which maps a set of inputs to get a defined set of outputs. This model has multiple layers and nodes representing neurons that are connected in each layer. Back propagation is an algorithm used to train multilayer neural networks by changing the weights in each connection using the error of the outputs, which is propagated to each previous layer. Training can become a very expensive process, since it requires a long time and a large amount of data to be trained; in addition, the generated model is not very interpretable.  
The nearest neighbor (NN) [29] algorithm computes the distances between the test pattern and all the training patterns, and chooses the dominant class among the k-nearest patterns. This algorithm is one of the simplest machine learning algorithms; despite this fact, the performance of this algorithm is one of the highest for some datasets. This algorithm suffers from high memory consumption, since the training set is kept in memory at all times.  
Repeated Incremental Pruning to Produce Error Reduction (RIPPER) [30] is an algorithm based on generating association rules for reducing the error when pruning. The generation of rules is made by applying a pruning operator to delete conditions or rules in order to obtain the greatest reduction of error. The output model is easy to understand.  
C4.5 [24] is a decision tree for pattern classification. The information entropy is used to choose the node splits to generate the tree, where each node represents an attribute of the data. This algorithm may become stuck at a local minimum and would need additional processes to avoid this. The output model is easy to understand.  
Naive Bayes [31] is a classifier based on the Bayes theorem and assumes the independency of each attribute. This algorithm requires a small quantity of training data to generate the model used for classification.  
Random forest [25] is a classifier ensemble based on a random combination of tree classifiers, such that each tree depends on the values of an independently tested random classification tree. It is a small modification of bagging that builds a long collection of uncorrelated trees and then averages the results.