## 3 Materials and Methods
### Models Used  
This section gives brief descriptions of the various machine-learning models that were used in predicting the life satisfaction score. Each model was coded in \(R\) and calculated various regression parameters to find the best model. A decision tree was used to build a regression and classification model, as a tree-like graph. It focused on an easily understandable representation form and was one of the most common learning methods. It can be easily visualized in the tree structure format. A decision tree is built by iteratively splitting the dataset on the attribute that separates the data into different existing classes until a certain stop criterion is reached [27]. The result was in the form of a tree with leaf nodes and decision nodes. It was structured like a flow-chart; each inner node was signified by a rectangle and each leaf node by an oval. A neural network (NN) is a supervised machine algorithm. The goal of the algorithm is to assign each input to one of the many predefined output classes based on a prediction value. The processing in a neural network occurs when an input value passes through a series of batches of activation units [28; 29]. These batches are called layers. A layer of activation units uses the output values of the previous layer and input and processes them simultaneously to generate outputs that are passed on to the next layer. This process continues until the last layer generates the final cumulative predictions. A random forest (RF) is also a machine-learning model used for predictive analytics. This is an ensemble learning method that creates numerous regression trees and aggregates their results. It trains every tree independently using a random sample of the data [30; 31]. This randomness makes the model more powerful. The main advantages of the model are its capacity to generalize, its low sensitivity to parameter values and its built-in cross-validation. The random forest model is excellent at managing tabular records with numerical functions or categorical functions. The SVR is a machine-learning model can be applied to both classification and regression problems. Support vector machines have been effectively utilized to tackle nonlinear regression and time arrangement issues. The SVR maps, nonlinearly, the original information into a higher dimensional component space [32]. While fabricating the model, it makes use of the mathematical function to expand the dimensions of the sample until the point where it can directly isolate the classes in the test set. The mathematical function that expands the dimension is called a kernel function. This function changes the data in such a manner that there is more probability of separable classes. To find the optimal separation, it can linearly isolate the classes. Cubist regression modeling uses rules with added instance-based corrections [33]. It is an adjunct of [PERSON]'s M5 model tree. In this model, linear regression models act as leaf nodes in the grown tree along with intermediate linear models at every stage of the tree. The leaf node of the tree representing the linear regression model makes a prediction that is \"smoothed\" using the forecast from the linear model in the earlier node of the tree. The tree is condensed into a group of rules. The rules are eradicated via pruning and/or united for generalization. A generalized linear model (GLM) is an adjunct of a general linear model to families of outcomes that are not normally distributed but have probability density functions related to the normal distribution (called the exponential family). The generalized linear model includes a link method that links the average of the response to the linear grouping of the predictors of the model, function, inverse function etc. [34]. Here, the least square technique is used to calculate the tuning parameters of the model. An elastic net combines L1 norms (lasso) and L2 norms (ridge regression) into a penalized model for generalized linear regression [35]. This gives it sparsity (L1) and robustness (L2) properties.