## 2 ML Methodologies
### Supervised Learning
#### 2.1.1 Classification  
The primary feature of classification is its ability to aid in the construction of predictive models [17]. Classification can be realized using structured or unstructured datasets. The classification algorithm essentially comprehends a training set and, when presented with new data points, assigns a specific function. This results in a reliable function that predicts the class label for registering new data. Some of the terminologies encountered in classification are as follows:  
* **Classifiers**: They are algorithms that assign input data to specific classes. They can be categorized into three main types: linear classifiers, nearest-neighbor classifiers, and classification trees [18]. * **Linear classifiers:** Through the linear combination of feature values can make classification decisions [19]. * **Nearest-neighbor classifiers:** Tag data objects that do not share the same label by using the nearest objects from the training set [20]. * **\"Brute-force\" method classifier**: While not an algorithm, this method exhaustively processes all data and all possible combinatorics to find the best possible classification solution [17]. This method does not involve the intelligent modeling of data mining; instead, it relies solely on computational combinatorics. * **Classification trees:** A classification tree is a method that offers a descriptive graphical representation of its incremental improvement. To determine the tests, a combination table is utilized, in which class combinations are marked [21]. * **Classification models:** They attempt to make reasonable inferences from the input values provided by the trainer to predict the labels associated with the classes for new data [22]. The types of classification tasks are binary classification, multiclass classification, and multilabel classification. * **Binary classification:** It is a classification that has two possible outcomes [23]. Basically, it is the process of classifying the data using predefined classes. It can be used in drought prediction [24], **hydrological forecasting** (predicting extreme weather events like heavy rainfall leading to flooding) [25], etc. * **Multiclass classification**: We have more than two possible outcomes (classes) [26], e.g., it can help automatically classify water quality based on various parameters like chemical composition, turbidity, and biological indicators [27], water demand forecasting [28], flood risk assessment [29], etc. * **Multilabel classification**: A sample can even be assigned to more than one label [30]. It can be used in **reservoir management**[31], can forecast the streamflow conditions [32], etc. Linear and nonlinear classification are worthy to be included here as specific approaches or methods used for binary/multiclass/multilabel classifiers. More specifically:  
* **Linear classification**: Algorithms assume that the decision boundary separating the classes is a linear function of the input features. In other words, these algorithms try to find a linear equation (a straight line in two dimensions, a plane in three dimensions, or a hyperplane in higher dimensions) that best separates the data points of different classes. Linear classification algorithms include techniques like logistic regression and support vector machines (SVMs) with linear kernels. These algorithms work well when the relationship between the input features and the classes is approximately linear [13]. * **Nonlinear classification:** On the other hand, refers to the decision boundary that separates classes in a classification problem. In linear classification, it is assumed that the decision boundary is a linear function of the input features. This means that the boundary that separates classes is a straight line (in two dimensions), a plane (in three dimensions), or a hyperplane (in higher dimensions). Linear classifiers like logistic regression and linear support vector machines work well when the relationship between input features and classes are approximately linear.