## 4 Discussion  
The ML method used was MLP, given its versatility, speed of training, and the good results it has demonstrated in a large number of areas and previous studies [21]. It was chosen because of its potential for its training to be hardware-accelerated and thus increase the speed of training, as it is a computationally demanding task. This may not be detectable when few users are connected but is very noticeable with large numbers of users working at the same time. As previously shown, the predictive model has shown good performance. Moreover, it has been created and trained from real patient data (i.e., it has not been developed from synthetic data), which is an advantage over those models developed with theoretical values, where the translation to the clinic may be more questionable. Likewise, regarding the data used for its development, these have been obtained from a cross-sectional study, so only a single value was available for each of the patients studied for each clinical or analytical variable (i.e., only a punctual assessment of the richness of the different taxa, glycaemia, HbA1c, etc.). The reason why, among the diverse range of Machine Learning techniques, deep learning was chosen is that it has proven to be extremely versatile and effective in its capacity to generalise on new data, thanks to the learning of patterns in its features. This generalisation capacity was deemed highly important for this particular case. Naturally, other techniques could have been used, but the hyperparameter space explored was vast enough, so exploring even more techniques would not have been worth it, given that the results obtained would be comparable, at best, and the computational and time cost would have been unfeasible. Although, as stated in the previous section, the accuracy of the prediction is very high, the predictive capacity of the model would be improved at many levels if the data had been obtained from longitudinal studies with a follow-up of the patients over time. If they had been extracted from an evolutionary model, it would be possible to study how changes in each of the parameters affect the other variables and all of them as a whole, the development of T2 DM, and the relationship between the different changes. To maximise replicability, the technique used was Bayesian optimisation because it is more advanced than a simple random search (that will explore randomly some combinations) or grid search (that will systematically explore all combinations). Bayesian optimisation is a probabilistic method that uses a \"surrogate model\" (normally a Gaussian process) to approximate (iteratively) the function that relates the hyperparameters with the performance of the model. A Gaussian process is, by definition, a collection of random variables, where every finite subset of them has a joint distribution that is a multivariate normal distribution. It combines exploration and exploitation, which means that, in each iteration, it will try to explore new regions of the hyperparameter space, but also it will try to exploit the regions that have shown to be more promising. Deep learning replicability is not easily achieved, given that the parameters (weights) of the model itself are initialised randomly, and, on top of that, hyperparameter tuning also involves some randomness. This means that even the same code, when run several times, may and will yield results that are slightly different. That is why usually the training process is repeated several times, and then the model with the best performance is chosen. This is standard practice in the field. The hyperparameter tuning is an automatic process: first, we define a hyperparameter space, and then we use a technique to explore it. In reality, the technique used will only affect the speed of the process, but the combination of values chosen with enough time will be the same. A possible weakness of the model is that the number of registers has been limited.