# Several Tree-Based Solutions for Predicting Flyrock Distance Due to Mine Blasting
## 2 Model's Background
### AdaBoost Model  
In the 1990s, researchers wondered whether a strong learner could be obtained if multiple weak learners were combined. [PERSON] (1990) proposed a solution to this premise 1990 and provided the initial theories for the boosting algorithm. Boosting takes advantage of numerous relatively weak and inaccurate predictors to produce an extremely accurate prediction learner using machine learning concepts. AdaBoost is a boosting algorithm that was introduced by [PERSON] and [PERSON] [77].  
At first, AdaBoost assigns the same weight to every dataset. Then, it repeatedly measures classification errors in iterations and updates the weights of samples. The weights of misclassified samples gradually increase, and the weights of correctly classified samples decrease. Therefore, the subsequent classifier focuses on correctly classifying the previously misclassified sample. Using the new weights in the data set, the lower classifier is trained. Lastly, the final decision classifier is derived by combining the training results of each training session (Figure 4). The general operation flow of the AdaBoost algorithm is listed in Table 1.  
\begin{table}
\begin{tabular}{c c} \hline \hline
1. & Assessing weight coefficient \(\left\{W_{n}=\frac{1}{n}\right\}\) to each dataset. \\ \hline
2. & Choosing weak learner Y (it can be CART, RF, etc) and start to train the weak learner with weight coefficient \\ \hline \hline \end{tabular} For m = 1,..., m: (m = number of trials) while \(f_{m}\
eq 0\)  
Accompanied with minimizing the weight of errors, try to fit hm(x) with training data and redistribute the weights using the below equation:  
\(\overline{D}_{m}(i)=(1-D_{m}(i))\overline{Z}_{m}\)  
where \(\overline{Z}_{m}\) is a normalizing coefficient  
Compute probability values:  
\(p_{m}^{+1}(x)=P_{D_{m}}(y=+1\cap\;\;h_{m}(x))\)  
\(\overline{p}_{m}^{+1}(x)=P_{\overline{D}_{m}}(y=+1\cap\;\;h_{m}(x))\)  
\(p_{m}^{-1}(x)=P_{D_{m}}(y=-1\cap\;\;h_{m}(x))\)  
\(\overline{p}_{m}^{-1}(x)=P_{\overline{D}_{m}}(y=-1\cap\;\;h_{m}(x))\)  
the sign of \(h_{m}(x)\) gives the classification, and \(\left\lfloor\,h_{m}(x)\,\right\rfloor\) a measure of classification “confidence”.  
\(f_{m}(x)=\left(p_{m}^{+1}\Big{(}1-\overline{p}_{m}^{+1}\Big{)}-P_{m}^{-1} \Big{(}1-\overline{p}_{m}^{-1}\Big{)}\right)(x)\)  
Update the distribution  
\(D_{m+1}(i)=\frac{D_{m}(i)\exp(-\frac{y}{Z_{m}}(x))}{Z_{m}}\)  
Generate new classifier:  
\(F(x)=sign\left[\frac{\overline{p}_{m}^{\overline{m}}}{m=1}f_{m}(h_{m}(x))\right]\)  
Figure 4: Process of generation of a strong classifier through a combination of weak classifiers with different weights in an AdaBoost algorithm.  
Furthermore, some unnecessary training data, such as outlier features, would be eliminated by implementing the AdaBoost classifier. Hence, as a result of continuous training, the classification ability would improve by reducing both bias and variance errors. In comparison with XGBoost and RF, AdaBoost has certain benefits and drawbacks. Hyperparameters of AdaBoost are less than XGBoost; therefore, the required time for tuning AdaBoost is less than XGBoost. However, AdaBoost is sensitive to noisy data, which results in poor performance and huge time consumption in irrelevant feature learning in extreme cases, especially in time series analysis [78].