## 2 Proposed Framework
### Model Optimization and Selection  
In this research, ten popular and high-performance regression models were hired for comparison. The ten machine learning algorithms consist of a linear-based learner, four tree-based models, two kernel-based learners, a neural network-based learner, an instance-based learner, and a sample consensus algorithm [8]. The training dataset was used for training and validation, adopting the cross-validation method which splits the training set multiple times to obtain different training and validation datasets and avoids overfitting. The lasso algorithm is a linear model using a regularizer of L1, with strength in excluding useless variables [31]. The adaptive boosting (AdaBoost) regression model is a decision tree-based model that uses multiple regressors trained according to the errors of the prior regressors [32]. Two more tree-based boosting models are extreme gradient boosting (XG-Boost) regression and light gradient boosting model (LightGBM) regression. XGBoost uses a gradient boosting mechanism and is well-known for efficient computing [33]. LightGBM is well-known for its speed and leaf-wise expanded growth strategy [34]. The RF regression algorithm uses bagging techniques to build trees using subsamples and random subsets of predictors, and RF aggregates multiple tree models to avoid overfitting [35]. The two kernel-based regression models are the support vector regression (SVR) model and the Gaussian process regression (GPR) model. SVR, or support vector machine-based regression problem solving, employs the kernel trick of mapping input vectors to higher-dimensional feature spaces [36]. GPR is a nonparametric machine learning model based on the Bayesian approach, which is beneficial for measuring uncertainty over prediction [37]. Multilayer perceptron (MLP) is a feedforward artificial neural network algorithm that trains models with the backpropagation technique [38]. By using neighborhood interpolation, K nearest neighbor (KNN) regression predicts the target [39]. Random Sample Consensus (RANSAC) is an algorithm that generates putative solutions with the most points in a consensus set through random sampling iteration and is suitable for datasets with a high number of outliers [40]. In this study, sklearn in Python was used for Lasso, AdaBoost, RF, SVR, GPR, MLP, KNN, and RANSAC modeling. The Python packages xgboost and lightgbm are used for XGBoost and LightGBM modeling.  
The RMSE and mean absolute error (MAE) are the metrics for calculating model performance [7; 12]. The formulas are as follows:  
\[RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_{i}-\hat{y_{i}})^{2}} \tag{1}\]  
\[MAE=\frac{1}{n}\sum_{i=1}^{n}\lvert y_{i}-\hat{y_{i}}\rvert \tag{2}\]  
where \(n\) denotes the total quantity of data points, \(y_{i}\) denotes the empirical yield values in the dataset, and \(\hat{y_{i}}\) denotes the predicted yield values from the model. The grid search with a cross-validation method is used to determine the optimal hyper-parameters for each model. RMSE and MAE values of hyper-parameter tuned models are compared to select the best model. The scores are measured multiple times with N-fold cross-validation method to enhance the robustness of models.