# MicroForest: Lightweight Bottleneck Prediction for Manufacturing Processes on Edge Devices
## 4 Proposed Method
### Building MicroForest  
In this section, we explain the modules introduced in Section 4.2 in more detail. The first step in constructing MicroForest is to extract only the key information needed to predict bottlenecks from a pretrained large random forest for each task \(n\). Although a random forest contains many decision nodes, not all contribute equally to the final prediction; a considerable portion exhibits low information gain and simply inflates model complexity as discussed in Section 3.2. To reduce this inefficiency, the proposed SplitSelector analyzes each random forest, which is trained for a specific task \(n\), independently. It calculates \(1G\) for every split and retains those in the top \(T\%\). Each selected split is represented by a feature-threshold pair  
Figure 3: Overview of MicroForest. Figure 2: A simple manufacturing process simulation model. Bottlenecks are highlighted in red. (\(f\), \(\theta\)) that partitions the data into two subsets. The resulting set of high-information-gain splits for task \(n\) is denoted \(S_{n}\). SplitSelector does not extract entire high-information-gain nodes or their sub-trees; it retrieves only the split-rule information. The selected rules form the candidate split-rule set \(S_{n}\) used for MicroTree construction. Once the candidate set \(S_{n}\) is assembled, the MicroTree can be generated. MicroTree is a decision tree that spans the feature-threshold pairs extracted by SplitSelector and requires no further fine-tuning before deployment. Its structure resembles that of a conventional decision tree, but at each internal node, branching is restricted to the candidate splits \((f,\theta)\in S_{n}\). The MicroTree construction algorithm, which is executed by \(MTConstructor\), takes as input the training data \(D_{n}\) for task \(n\) and the candidate split-rule set \(S_{n}\), then builds the tree in a recursive manner. Algorithm 1 demonstrates the MicroTree construction flow. At each node \(k\) with data \(D_{k}\) at current depth \(d\), it first evaluates a series of stopping conditions: whether the current depth has reached the predefined maximum \(d_{\max}\); whether the number of samples \(|D_{k}|\) falls below the minimum threshold \(K\); whether the highest information gain among splits in \(S_{n}\) is below a \(\epsilon\); or whether \(S_{i}\) has become empty. If any of these conditions is met, the node is converted into a leaf (line 2-3). Otherwise, the algorithm selects the split \((f^{*},\theta^{*})\in S_{n}\) that maximizes \(IG(D_{k},f,\theta)\) (line 5), partitions \(D_{k}\) into left and right subsets accordingly (line 6-7), and verifies that each child contains at least \(K\) sample (line 8). If this sample-size check fails for either child, the node becomes a leaf (line 9); otherwise, the procedure recurses on each child sub-tree with depth \(d+1\) (line 12-14). Note that the used split-rule \((f^{*},\theta^{*})\) is removed from the candidate set \(S_{n}\) (line 11). The resulting MicroTree is immediately ready for deployment without further fine-tuning. As the constructed MicroTree uses only the highly informative split-rules selected by SplitSelector, it contains very few nodes. This reduces the model's size and shortens the decision paths traversed during inference, resulting in a significant speedup. Consequently, MicroTree becomes a lightweight model well suited for resource-constrained edge environments.