## 2 Materials and Methods
### Models Based on Decision Trees XGBoost, LightGbmRegression, and FastTreeRegression  
XGBoost is an advanced model with commercial applications working in the Python and R environments. It based on the possible use of XGBoost 1.7.6, which is an intermediate solution between the approaches describes in this paper in terms of both accuracy and calculation time. XGBoost is a scalable end-to-end boosting system, which is widely used to achieve state-of-the-art results in many machine learning challenges. It is characterized by parallelization; that is, it uses a parallel implementation to run a sequential tree-building process. This is possible due to the interchangeable characteristics of the loops used to create the underlying learners. The inner loop counts features, while the outer loop acquires the leaf nodes of the tree. Loop nesting limits parallelization, because it is impossible to run the outer loop without terminating the inner loop. Parallel and distributed computing makes learning faster, which enables quicker model exploration. XGBoost has implemented regularization, i.e., a kind of \"penalty\" imposed on the model if there are too many final observation segments or leaves in the decision tree. The complexity of the model is controlled here using the Ridge and LASSO techniques. The general form of the XGBoost  
Figure 4: Structure of the MLP network developed in research with five inputs, various numbers of neurons in the hidden layer, and one output. algorithm consists of two parts. The first component is responsible for minimizing the error, which is called the loss function or cost function. The second part, regularization, helps prevent overfitting and controls the complexity of the model. The XGBoost machine learning algorithm has a cross-validation method implemented in each iteration. This eliminates the need for extensive programming and determining the exact number of stimulation iterations needed to perform one run. Additionally, it has other improvements, e.g., \"out of core\" calculations, which use disk space and handle data frames that do not fit in the computer's main memory. For the purposes of this paper, the XGBoost model was trained for different values of the maximum depth (in the range of 2-15); it was found that the best results were obtained for a maximum depth equal to 8 (Table 1, Figure 5). The part of the example tree generated by the XGBoost model is shown in Figure 6.  
The next proposed methods are advanced automated self-learning models, based on ML.NET working in the Visual Studio 2022 environment. For the acquired data, solutions can be selected from more than 120 algorithms (learning time: up to 1000 s); these models yield an API (application programming interface) and code in C# for later use in the system. Each of the available ML algorithms has a set of unique parameters, so-called \"hyperparameters\" that allow it to tune its operation to a dedicated application. Focusing on FastTreeRegression, an efficient implementation of the Multiple Additive Regression Trees (MART) gradient boosting algorithm, this research produced the following exemplary hyperparameters:  
* Bias: a value added to the weighted sum of the scores of all trees. * Trees: the i-th RegressionTreeBase (container base class) in Trees. * TreeWeights: the weight of the i-th RegressionTreeBase in Trees. Changing these parameters leads to an increase in the effectiveness or efficiency of the model being built. The ML.NET framework uses the AutoML tool, which supports work with machine learning by automatically selecting the best algorithms and hyperparameters for the examined dataset. This solution is useful for achieving high levels of model effectiveness and for saving time on the manual tuning of the created models. After running the experiment for a given time, AutoML creates models with various combinations of algorithms and hyperparameters to obtain the best possible result for the indicated metric (the proposal for each such combination is a single trial).