## Appendix A  
To help readers understand the model, the formulas involved in the random forest algorithm are explained below:  
Exhaustive search is used to select the split variable and split point when training the CART decision tree. It involves iterating through each feature and its values to find the optimal feature combination. The evaluation criterion for the split variable and split point is represented by the impurity of the resulting nodes, which is the weighted sum of impurities \(G\big{(}x_{i},v_{ij}\big{)}\) in each child node. The equation is as follows:  
\[G\big{(}x_{i},v_{ij}\big{)}=\frac{n_{left}}{N_{s}}H\Big{(}X_{left}\right)+ \frac{n_{right}}{N_{s}}H\Big{(}X_{right}\Big{)} \tag{1}\]  
where \(x_{i}\) is the variable to be split, and \(v_{ij}\) is the corresponding split value. \(n_{left}\), \(n_{right}\), and \(N_{s}\) represent the number of training samples in the left, right, and current child nodes after the split, respectively. \(X_{left}\) and \(X_{right}\) are the training sample sets for the left and right child nodes, respectively. \(H(X)\) denotes a function to measure the impurity of a node.  
Different impurity functions are generally used for classification and regression tasks. In this study, the mean squared error (MSE) was used as the impurity function for ROP regression prediction. The calculation formula is as follows:  
\[H(X_{m})=\frac{1}{N_{m}}\sum_{i\in N_{m}}(y_{i}-\overline{y}_{m})^{2} \tag{2}\]  
where \(\overline{y}_{m}\) is the average value of the target variable for the current node's samples; and \(y_{i}\) is the predicted value for the current node's samples.  
Tree models can also quantify feature importance, which indicates the extent to which a feature influences the prediction results. In a random forest, the importance of a feature is the average importance across all decision trees. In this study, the Gini index was used as the evaluation metric to measure feature importance. The calculation formula is as follows:  
\[G{I_{m}}=\sum_{k=-1,k^{\prime}\
eq k}^{|K|}p_{mk}p_{mk^{\prime}}=1-\sum_{k=1} ^{|K|}p_{mk}^{2} \tag{3}\]  
where \(G{I_{m}}\) represents the Gini index of node m, \(k\) represents the number of classes, and \(p_{mk}\) represents the proportion of class \(k\) in the node.  
The importance of the feature \(Xj\) at node m, as the change in the Gini index before and after branching, is expressed by:  
\[VIM_{jm}^{(Gini)}=G{I_{m}}-G{I_{l}}-G{I_{r}} \tag{4}\]  
where \(VIM_{jm}^{(Gini)}\) represents the change in the Gini index before and after branching; and \(G{I_{l}}\) and \(G{I_{r}}\) represent the Gini indices of the two new nodes after branching.  
Assuming the random forest model has n trees, then:  
\[VIM_{j}^{(Gini)}=\sum_{i=1}^{m}VIM_{ij}^{(Gini)} \tag{5}\]  
where \(VIM_{ij}^{(Gini)}\) represents the importance of the feature \(Xj\) in the \(i\) tree; and \(VIM_{j}^{(Gini)}\) represents the sum of importance of feature \(Xj\) over all trees.  
After normalizing, the feature importance score can be obtained as shown in the following formula:  
\[VIM_{j}=\frac{VIM_{j}}{\sum_{i=1}^{n}VIM_{i}} \tag{10}\]  
where \(VIM_{j}\) represents the normalized importance score of feature \(Xj\) across all trees in the random forest model.