## 2 Materials and Methods
### Conditioning of Specimens and Tensile Testing
Another issue that should be addressed is an increase in complexity when large data samples are used. The total number of nodes, total number of leaves, tree depth, and number of attributes are metrics that can be controlled in order to minimize the complexity of decision tree [29]. Since these issues not always can be addressed, ensemble decision trees are used instead and are more robust. **Gradient Boost Regressor** is an ensemble of decision trees. Instead of building one tree, this method predicts the desired outcome based on the additive regression model that uses decision trees as a weak learner [39]. Sequential fitting of a parameterized function (base learner) to current \"pseudo\"-residuals is done at each iteration by optimizing regression loss (e.g., least squares, absolute error) [40]. [PERSON] et al. [40] describe \"pseudo\"-residuals as minimization of the gradient of the loss function with respect to values of the regression model at each training data point for the current step. Introduction of randomization in the process of training data set selection allows to improve accuracy and reduce the possibility of overfitting. This method of compiling a decision tree allows minimizing the errors at each next step, and therefore the boosting regressor is considered as a more reliable and robust method compared to the classic decision tree regressor. **AdaBoost Regressor** (short for Adaptive Boost) is also an ensemble machine learning method. It works similarly to the Gradient Boost regressor, and the only difference is in the way weak learners are created at each iteration. Thus, AdaBoost changes the sample distribution at each iteration by changing the weights of each feature (the ones with the biggest error will have the highest weights). Since all of the described methods need to be trained on the data before they can be used for a prediction task, the data should be divided into training and testing samples, usually with a ratio of 75%/25% or 85%/15% when smaller data sets are used. For this purpose, there is a library _training_testing_split_ in Scikit-Learn [37], which was used by the author in this work. The training data set is used to train the model (define the model), while the testing data set is needed for evaluating the model generalization. By comparing prediction accuracy obtained for training and testing data sets separately, one can understand whether under- or over-fitting are present. Overfitting is present when the model memorizes input data, while underfitting means that the model cannot find any patterns in the data due to a small number of data points. Both phenomena need to be overcome in order to obtain a robust model. In addition, optimization of hyperparameters of the models needs to be done in the future, and this task is out of the scope of this work. The developed GBR and DTR machine learning models in this work have learning rate set as 0.1, the minimum number of samples in the leaf is set to 1, the minimum number of samples in the split is equal to 2, and the random state is set to 42. While the Gradient Boosting Regressor has the maximum depth set to 3 and criterion is chosen to be \"Friedman MSE\", DTR models do not have any limitation of max depth and model criterion is chosen to be the mean square error (MSE). Compared the other two models, the AdaBoost regressor is a more advanced version of the linear model, which has the same learning rate and random state as the two other types of models, but ABR models have a number of estimators equal to 50 with linear loss function. Even though described architectures are standard from the Scikit-Learn modules, the optimization of these models should be done when more variation in data is present, and, as mentioned above, model optimization is out of the scope of this study.