Large Random Forests: Optimisation for Rapid Evaluation

2019·Arxiv

Abstract

Abstract

Random Forests are one of the most popular classifiers in machine learning. The larger they are, the more precise is the outcome of their predictions. However, this comes at a cost: their running time for classification grows linearly with the number of trees, i.e. the size of the forest. In this paper, we propose a method to aggregate large Random Forests into a single, semantically equivalent decision diagram. Our experiments on various popular datasets show speed-ups of several orders of magnitude, while, at the same time, also significantly reducing the size of the required data structure.

Keywords: Random Forest, Algebraic Decision Diagram, Aggregation, Running time optimisation, Memory optimisation.

1 Introduction

Random Forests are one of the most widely known classifiers in machine learning [13,3]. The method is easy to understand, implement, and at the same time achieves impressive classification accuracies in many applications. Compared to other methods such as neural networks, Random Forests are fast to train and they are clearly more suitable for smaller datasets. In contrast to a single decision tree, Random Forests, a collection of many trees, do not overfit as easily on a dataset and their variance decreases with their size. On the other hand, their running time for classification linearly grows with this size, which is critical as forests may well consist of thousands of trees – a problem especially for applications with a high throughput [6].

In this paper, we present an optimisation method that is based on radical aggregation: Forests are transformed into a single decision diagram in a semantics-preserving fashion, which, in particular, also preserves the learner’s variance and accuracy. Being a post-process, also the ease of Random Forest training is maintained. The great advantage of these decision diagrams is their absence of redundancy: during classification every predicate is considered at most once.

Our experiments with popular data sets from the UCI Machine Learning Repository [5] showed performance gains of several order of magnitude (cf. Fig. 6 and Table 1). A potential problem is only an explosion in size which can, in principle, be exponential for decision diagrams. However, this problem did not arise in our experiments. On the contrary, we even observed drastic size reductions (cf. Fig. 7 and Table 2).

Key to our approach are Algebraic Decision Diagrams (ADDs) [22]. Their algebraic structure supports aggregation, abstraction, and reduction operations that we utilise to optimise both, the running time needed for classification and the size of the final data structure. When combined with a reduction that exploits the unfeasibility of paths in decision diagrams, this leads to impressive performance gains in our experiments:

– Using basic algebraic operations, such as concatenation and addition, allows to aggregate a Random Forest into a single ADD.

– Abstracting results to the essence, in this case the outcome of a majority vote, leads to quite dramatic reductions, both of classification times, as well as of size requirements.

– Subsequent elimination of unfeasible paths (path with contradicting predicates) finally achieves our goal: high performance gains (cf. Fig. 6 and Table 1) and, additionally, significant reductions of space requirements (cf. Fig. 7 and Table 2).

Please note that these results are achieved for a widely used classifier and for utterly standard datasets. This indicates the generality of our approach to aggregate Random Forests with thousands of trees into a compact decision diagram for rapid classification – faster by multiple orders of magnitude.

Related work: Runtime performance of Random Forests has been addressed, e.g., via optimising code generation with moderate success [26,27,6,14], and, with a greater performance impact, via model simplification which, however, changed the semantics [12]. Others applied semantic aggregation [16,12,20,2] to Random Forests, however, without explicitly addressing the runtime performance, while the authors in [19,18] were focusing solely on the memory footprint, all with moderate success.

The only paper on Random Forests we know of that uses decision diagrams similar our ADDs is [17]. However, they use these diagrams only to compact the individual tree and not to aggregate an entire forest. In fact, the reported speedup by a factor of up to 61 seems more to rely on technical and even hardware details than on the use of decision diagrams. In contrast, our approach focuses on the decision diagram-based holistic aggregation of entire Random Forests, which, due to its globality, has a much greater impact. In fact, we obtain speed-ups already at the hardware-independent level that are orders of magnitude higher than in [17].

After a short introduction to Random Forests in Section 2, we present our approach to their aggregation in Section 3, which is subsequently refined in two steps: by compositional and non-compositional abstraction in Section 4, and by the elimination of redundant predicates from the decision diagrams in Section 5. The impact on the classification time and size of the new decision diagrams is evaluated in Section 6. The paper closes with conclusions and direction to future work in Section 7.

Fig. 1. Random Forest learned from the Iris dataset [8].

2 Random Forests

Random Forests is one of the most widely known classifiers in machine learning. The algorithm is relatively simple and yields good results for many real-world applications. Its decision model generalises a training dataset that holds examples of input data labelled with the desired output, also called class. As its name suggests, a Random Forest consists of some number of decision trees. Each of these trees is itself a classifier that was learned from a random sample of the training dataset. Consequently, all trees are different in structure, they represent different decision functions, and can yield different decisions for the very same input data.

To apply a Random Forest to previously unseen input data, every decision tree is evaluated separately: Tracing the trees from their root down to one of the leaves yields one decision per tree, i.e. the predicted class. The overall decision of the Random Forest is then derived as the most frequently chosen class, an aggregation commonly referred to as majority vote. Key advantage of this approach is the, compared to single decision trees, reduced variance. A detailed introduction to Random Forests, decision trees, and their learning procedures can be found in [13,3,21].

In this paper, we use Weka [27] as our reference implementation of Random Forests. However, our approach does not depend on implementation details and can be easily adapted to other implementations.

Figure 1 shows a small Random Forests that was learned from the popular Iris dataset [8]. The dataset lists dimensions of Iris flowers’ sepals and petals for three different species. Using this forest to decide the species on the basis of given measurements requires to first evaluate the three trees individually and to subsequently determine the majority vote. This effort clearly grows linearly with the size of the forest. In the following we use this example to illustrate our approach of forest aggregation and its great effect on the required evaluation effort.

3 Rapid Evaluation of Random Forests

To evaluate a Random Forest, we are forced to evaluate every single tree separately. While our illustrative example consists of only three trees there is essentially no limit to the number of trees in a forest. In fact, increasing its size can only improve the classifier and will, in contrast to other classifiers, not lead to overfitting [3]. However, with a growing number of trees comes increasing computational cost for its construction and, more importantly, for its classification process. In this paper we focus on the costs associated with the model’s classifica-tion process (the classification time), while accepting additional effort for their construction. This focus reflects the fact that constructed decision structures, once deployed, are often meant to be used by millions of users in parallel.

Key idea behind our approach is to partially evaluate the Random Forests at construction time which, we will see, has an enormous impact on the classifi-cation performance and the corresponding space requirements. This is, not the least, due to the fact that the individual trees of a Random Forest typically share some similarities. E.g., in our accompanying Iris flower example (cf. Fig. 1) the predicate petalwidth < 1.65 is used in all three trees. This can easily lead to cases where the same predicate is evaluated many times in the classification process. The partial evaluation proposed in this paper transforms Random Forests into decision structures where such redundancies are totally eliminated.

An adequate data structure to achieve this goal for binary decisions are Binary Decision Diagrams [4,1,15] (BDDs): For a given predicate ordering, they constitute a normal form where each predicate is evaluated at most once, and only if required to determine the final outcome.

Algebraic Decision Diagrams (ADDs) [22] generalise BDDs to capture functions of the type which are exactly what we need to specify the semantics of Random Forests for a classification domain C. Moreover, in analogy to BDDs, which inherit the algebraic structure of their co-domain B, ADDs also inherit the algebraic structure of their co-domains if available.

We exploit this property during the partial evaluation of Random Forest by considering two algebraic co-domains, the class word co-domain (cf. Sec. 3.1) and the class vector co-domain (cf. Sec. 4.1). The aggregation to achieve the corresponding optimised decision structures is then a straightforward consequence of the used ADD technology.

3.1 Algebraic Structure for Random Forest Results

Let us put aside the evaluation procedure for now and focus only on its outcome, i.e. the final result. The unprocessed result of a Random Forest evaluation is an ordered sequence with one decision per tree. This sequence preserves all information and remains independent of any particular aggregation method, e.g. majority vote.

To formalise this, let C be the set of classes, e.g. the three Iris flower species. An individual tree’s decision is one class , a Random Forest’s decision is a word over these classes . Note that we can describe the results of any Random Forests this way, no matter its size. In particular, we can represent the decision made by the empty Random Forest with the empty word and the results of a single decision tree with a word of length one. Moreover, this representation naturally allows for composition: we can simply concatenate the results of two distinct Random Forests, maintaining a one-to-one association between the word’s symbols, i.e. the classes, and the corresponding tree in the forest.

With that in mind, we can define the algebraic structure class words as a string monoid to represent the results of any Random Forest:

The classes C form its alphabet, concatenation is its associative join operation, and the empty word serves as a neutral element of the monoid.

3.2 Semantics-preserving Transformation

With class words, we have discussed a means to represent only the outcome of a Random Forest classification. To transform the entire Random Forest to an Algebraic Decision Diagram (ADD), however, we need to transform not only the results but also the decision structure. To this aim, we must guarantee the unique properties of decision diagrams:

– they enforce an order of predicates along all paths, and – they are directed acyclic graphs that share common substructures where possible.

With the compositionality of the algebraic structure W and the corresponding ADDs , we can transform any Random Forest incrementally. Starting with the empty Random Forest, we consider one tree after the other, aggregating a growing sequence of decision trees until the entire forest is entailed in the new decision diagram. We will first find a semantically equivalent decision diagram for the empty Random Forest, the neutral element of this aggregation procedure. Subsequently, we will describe a semantics-preserving transformation for single decision trees and a join operation to incorporate these decision diagrams into the overall aggregation.

No matter the input it was given, the empty Random Forest with 0 trees can only result in one outcome: the empty word . Hence, it resembles the constant function, also denoted for brevity, that is semantically equivalent to the constant decision diagram with as its only terminal node. This diagram forms the neutral element of our aggregation procedure. To transform a single decision tree, we can build upon the well-known ADD construction operation ite. For a predicate p and two decision diagrams f and g, ite(p, f, g) constructs the diagram that evaluates to f if p holds and to g otherwise. We derive the decision diagram recursively along the tree structure, effectively delegating the entire model transformation to well-known and efficient algorithms in a service-oriented fashion.

Fig. 2. Partially evaluated Random Forest.

The algorithm implementing ite ensures a strict predicate order and automatically shares substructures where possible. In fact, the resulting decision diagram is a canonical representation of the function for a given predicate order. Formally, this defines a function mapping decision trees to decision diagrams over class words:

Having transformed every decision tree individually leaves us with the task to compose the resulting sequence of decision diagrams. This is where the abovementioned characteristic properties of ADDs come into play: they inherit the algebraic structure of their co-domains, and they even come with efficient algorithms for computing the required operations. In this case, this concerns only the concatenation of words over the carrier set . To ease readability, we denote also this terminal-wise concatenation of decision diagrams with the same symbol .

The desired decision diagram, aggregating an entire sequence of decision trees , can now simply be defined as follows:

Figure 2 shows the aggregation of our exemplary Random Forest (cf. Fig. 1). Already, for this extremely small example, the average running time for classifica-tion is reduced. Its true impact, however, becomes apparent only with increasing forest size (cf. Sec. 6).

4 Partial Evaluation through Abstraction

Class words faithfully represent the information about the decisions of each individual tree in the forest. This is far more than necessary for determining the final decision of the forest, the majority vote. In this section we exploit this leeway as follows:

– We first abstract from the information which tree was responsible for which decision by moving from the domain of class words to the domain of class

vectors which simply record the frequency with which each class has been proposed. (, where addition + is defined component-wise, is again a monoid. The structure can again be lifted to the ADD-level in order to guarantee the compositional aggregation of forest as illustrated in the previous section for the class word monoid.

– Subsequently, we abstract the aggregated result to a decision diagram which only reflects the majority vote. This abstraction is not compositional and can therefore only be applied at the very end of the aggregation process as an additional optimisation.

The following subsections are devoted to these two steps, respectively.

4.1 From Class Words to Class Frequencies

As mentioned above, the precise knowledge about the individual decisions of the trees in a Random Forest is unnecessary for determining the final decision of a Random Forest. The knowledge about the frequency with which each class has been proposed suffices. This information can elegantly be represented as class vectors, where each component represents one class and its value the frequency with with the class was chosen. Formally, the domain of class vectors forms a monoid

where addition + is defined component-wise and 0 is the neutral element.

Based on this structure we can replay the development of the previous section by replacing W by by +, and by 0. Indexing the class vectors directly with the class labels rather than integers this reads as follows:

The required representation of the empty decision is again provided by the neutral element, here the 0 vector, and a single class can be represented naturally by a vector i(c) that is 0 everywhere except for position c, where it is 1. Also the construction of the ADDs with class vectors as their terminal values can simply be transcribed, as can the new transformation function , which differs only in its mapping from the tree’s leaves to the new carrier set:

Having adopted the underlying algebraic structure, all operations are seamlessly applicable to the corresponding decision diagrams as well. In this case, vector summation + is lifted to the new decision diagrams over vectors and we can again easily aggregate the Random Forest incrementally:

Fig. 3. Class vector abstraction of aggregated Random Forest.

The new transformation abstracts from the order of class labels but maintains all the information required to construct and aggregate decision diagrams incrementally.

Abstracting from the order of class labels has two important advantages:

1. Memory is saved as many leaf nodes that differed only in the order of class labels are now unified. In fact, this effect can ripple up the entire decision diagram, i.e. the structure can partially collapse. Moreover, the vector representation itself also becomes more compact.

2. Classification time of the decision diagram is reduced as a result of the partial collapse of the structure: Where a predicate was previously needed to differentiate between two class words that differed only in the order of their class labels, this evaluation step becomes redundant. Moreover, the final aggregation step reduces to finding the maximal component of a single class vector.

Figure 3 shows the result of the class frequency abstraction for our running example.

4.2 Majority Vote at Compile Time

As mentioned before, just maintaining the information about the result of the majority votes is not compositional. In fact, knowing the result of the majority votes for two Random Forest gives no clue about the majority vote of the combined forest. Thus the most frequent class abstraction can only be applied at the very end, after the entire aggregation has been computed compositionally. In fact, the class frequency abstraction provides the most concise compositional abstraction. Any further reduction directly leads to potential compositionality violations, or as we say, the class frequency abstraction is fully abstract for this

Fig. 4. Most frequent label abstraction of aggregated Random Forest (majority vote).

scenario. Thus taking the formerly defined model transformation to iteratively aggregate the trees of a Random Forest is provably the best one can do.

The result is a decision diagram with class vectors in its terminal nodes. Only the subsequent monadic transformation remains to be defined. With ADDs we can simply define this on the carrier set, i.e. on the class vectors. For any class vector the majority vote is defined as

Just like binary operations of the algebraic structure V are lifted to Algebraic Decision Diagrams, so can monadic operations [22]. Note that mv does not project into the same carrier set but rather from one algebraic structure V into another C. However, these transformations can be applied to the corresponding decision diagrams in the very same way. We can therefore define the final transformations as

Post-processing vector decision diagrams in this way has again quite some effect: Both memory and classification time are reduced for the same reasons as for the class frequency abstraction. However, the coarser abstraction leads to stronger reductions. Moreover, the aggregation step for determining the final decision of the Random Forest, the majority vote, is no longer necessary.

Fig. 4 shows the result of the most frequent class abstraction for our running example.

Our evaluation in Sec. 6 shows that all the abstractions proposed so far are insufficient to guarantee true scalability, and this despite the fact that they are

Fig. 5. Most frequent label abstraction of aggregated Random Forest (majority vote) without semantically redundant nodes.

optimal. This is due to the fact that they all are symbolic and do not take the semantics of predicates into account. The following section sketches how this shortcoming can be overcome and finally provides us with the scalability results we desired. Please note, however, that the preceding abstractions are necessary to enable the potential of unfeasible path elimination (cf. Sec. 6).

5 Unsatisﬁable Path Elimination

When aggregating the trees of a Random Forest they all use varying sets of predicates. In contrast to simple Boolean variables, predicates are not independent on one another, i.e. evaluation of one predicate may yield some degree of knowledge about other predicates. E.g., the predicate petallength < 2.45 induces knowledge about other predicates that reason about petallength: When the petal length is smaller than 2.45 it cannot possibly be greater or equal to 2.7 at the same time. This is not taken care of by the symbolic treatment of predicates we followed until now.

Unsatisfiable path elimination, as illustrated by the difference between Figure 4 and Figure 5 for our running example, leverages the potential of a semantic treatment of predicates with significant effect:

– The size of decision diagrams is drastically reduced (cf. the cases marked with ’*’ in Fig. 7), and even

– the classification times further improve because semantically redundant decisions are eliminated (cf. the cases marked with ’*’ in Fig. 6).

Please note that unfeasible path elimination

– depends on previous powerful abstraction: The trees in the original Random Forest have no unfeasible paths by construction. They are introduced

Fig. 6. Average running time for classification over all examples in the Iris dataset [7].

in the course of our symbolic aggregation, which is insensitive to semantic properties.

– is compositional and can therefore be applied during the stepwise transformation and before the final most frequent label abstraction and at the very end. This avoids that intermediate decision diagrams grow too large which would inhibit the scalability. As can be seen in Figure 7, without this effect, our approach would hardly scale to forests beyond the size of 100 trees.

– does not support normal forms. Thus our approach may yield different decision diagrams depending on the order of tree aggregation. It is guaranteed, however, that the resulting decision diagrams are minimal.

Unsatisfiable path elimination is a hard problem in general.Our corresponding implementation uses SMT-solving to eliminate all unsatisfiable paths. An in-depth discussion of unsatisfiable path elimination is a topic in its own and beyond the scope of this paper.

6 Evaluation

Our three tree accompanying example is useful to explain the concepts but inadequate to illustrate the impact of our radical aggregation technology. This section therefore provides a careful quantitative analysis on the basis of a number

Table 1. Running time improvements for classification with Random Forests of size 10.000 for other datasets [5].

of popular data sets that illustrates the performance differences between the semantically equivalent representations of the original Random Forest.

The diagrams in this section show the results concerning quantitative extensions of the Iris flower set which, in the small, also served for our running example. The tables summarise the results for other popular data sets to indicate the generality of our approach. All the reported classification time and size results were determined as the average over the entire corresponding data sets. For the Iris flower example these are 150 records, a number also explaining the quite smooth result graphs.

Our implementation relies on the standard Random Forest implementation in Weka [27] and on the ADD implementation of the ADD-Lib [11,25,10]. Please note that the considered data sets have been developed with evaluations of this kind in mind, by independent parties, and that we are not using any additional data for our transformation. Thus our analysis can be considered unbiased.

Optimising the classification time is the primary goal of our approach. As wall clock time measurements are very sensitive to implementation details and machine profiles, we decided for the, in our eyes more objective measure of step count for our performance analysis. As steps we consider here the steps through the corresponding data structures, and in cases where the most frequent class must be computed at runtime, we account one additional step per read. For both, the original Random Forest and the word-based decision diagram these are n additional steps and the class vector variant needs |C| additional steps.

Figure 6 shows the average evaluation times of the decision models for Random Forests of up to 10,000 trees. The evaluation time of the original Random Forest grows linearly as expected: every new tree contributes approximately the same running time. Due to the large number of trees relative to their individual sizes our measurements appear as an almost straight line.

Already, the word-based diagrams (cf. Class word DD in Fig. 6) reduce the classification time significantly in comparison to the original Random Forest. This is due to the suppression of redundant predicate evaluations. In fact, the overall classification time is dominated by the linearly growing time to compute the most frequent class in each terminal word.

The reduction to just |C| terminal nodes of the class vector-based variants has two effects:

Fig. 7. Sizes of the Random Forest and its semantically equivalent decision diagrams.

– A partial collapse of the decision diagram: it is no longer essential which tree proposes which class, unifying all cases where the various classes are equally often proposed.

– Reduction to a constant overhead for the final aggregation step, in this case |C|.

The evaluation time reductions are again quite significant, only the space requirement got, like for the word-based variant, out of hand very soon (cf. Fig. 7), explaining the cut-off in Fig. 6.

Whereas the previous two model structures can directly be computed compositionally, the most frequent label abstraction, i.e. the evaluation of the majority vote at compile time, can only be applied at the very end. Thus its construction has the same limitation as the class vector variant, and its impact on the size of the corresponding decision model is moderate (cf. Fig. 7). Its impact on the evaluation time is, however, quite substantial (cf. Fig. 6): Many of the internal decision nodes have become redundant by just focusing on the results of the majority vote.

Breathing semantics into the decision diagrams by unsatisfiable path elimination overcomes the scalability problems that are due to the enormous space requirements. In fact, it avoids the exponential blow-up in size in all three variants, with DD* even becoming significantly smaller than the original Random Forest (cf. Fig. 7). Moreover, also the classification times are drastically reduced in all three cases (cf. Fig. 1). In fact, the classification times eventually stabilise for DD*, illustrating the key feature of Random Forests, the reduction of the

Table 2. Decision diagram sizes for Random Forests of size 10.000 for other datasets [5].

learner’s variance. As sketched in Tables 1 and 2 these observations carry over to other popular data sets in the UCI Machine Learning Repository [5].

7 Conclusion

In this paper, we have presented an approach to aggregate large Random Forests into a single and compact decision diagram using the machinery of Algebraic Decision Diagrams. This radical transformation allows for rapid classification and decision-making while, at the same time, preserving the original semantics. We have refined our method in multiple steps: by compositional abstraction, preevaluation at compile time, and the elimination of redundant predicates. As a result, we could achieve running time reductions by factors of thousands on multiple popular datasets, proving the method’s relevance for real world problems. At the same time, and beyond our original expectations, also the size requirements could be reduced by orders of magnitude.

The results reported in this paper concern a widely used classifier and standard datasets and were achieved with clean aggregation, abstraction, and reduction criteria:

– ADD-based aggregation is canonical as soon as an order of predicates has been fixed. Thus the freedom of choice here reduces to the choice of an adequate variable ordering, a task heuristically taken care of by the corresponding frameworks [24].

– Class frequency abstraction is the coarsest, compositional abstraction that still allows one to faithfully represent the classification function of the original Random Forest.

– Unfeasible path elimination does not support normal forms, but the results are minimal, meaning that the resulting structures cannot be reduced further without changing the semantics of the classification function. In essence, the variability here is a consequence of the freedom of choice where to root unfeasible paths. It can be seen as a generalisation of the classical problem of minimising Boolean functions with .

– Most frequent class abstraction reduces the final compositionally reduced decision diagrams to the smallest diagram that still represents the original classification function.

Thus our approach is optimal relative to two well-known conceptual hurdles, the choice of variable ordering for decision diagrams and the treatment of cares. In particular, our approach does not exploit any peculiarities of certain classifiers or data sets.

Of corse, its impact may still strongly depend on the structure of the concrete considered scenario. We are therefore currently investigating how easily these results can be adopted to other data sets and classifiers. While we expect the transfer of these ideas to be relatively straight forward for some discrete clas-sifiers, e.g. Decision Jungles [23], this will be more difficult for others. For more complex classifiers such as neural networks, compromises may be unavoidable. In these cases, rapid classification may come at the cost of semantic approximation.

With this approach being so successful for the very specific domain of Random Forests, we are also interested in its generalisation ability. Rather than the optimisation of what can be considered a domain-specific program, it will be interesting to see its potential in the context of general-purpose programming languages. First results have shown that we can indeed use very similar techniques to optimise more general programs [9].

References

1. Akers, S.B.: Binary decision diagrams. IEEE Trans. Comput. 27(6), 509–516 (1978)

2. Bonfietti, A., Lombardi, M., Milano, M.: Embedding decision trees and random forests in constraint programming. In: Michel, L. (ed.) Integration of AI and OR Techniques in Constraint Programming. pp. 74–90. Springer International Publishing, Cham (2015)

3. Breiman, L.: Random forests. Machine Learning 45(1) (2001)

4. Bryant, R.E.: Graph-based algorithms for boolean function manipulation (1986)

5. Dua, D., Graff, C.: UCI machine learning repository. http://archive.ics.uci. edu/ml (2017)

6. Facebook: Evaluating boosted decision trees for billions of users. https://code.fb.com/ml-applications/ evaluating-boosted-decision-trees-for-billions-of-users (2017), accessed: 2019-06-11

7. Fisher, R.A.: The use of multiple measurements in taxonomic problems. Annals of Eugenics 7(7), 179–188 (1936)

8. Fisher, R.A.: The use of multiple measurements in taxonomic problems. Annals of eugenics 7(2) (1936)

9. Gossen, F., Jasper, M., Murtovi, A., Steffen, B.: Aggressive aggregation: a new paradigm for program optimization, under Submission

10. Gossen, F., Margaria, T., Murtovi, A., Naujokat, S., Steffen, B.: Dsls for decision services: A tutorial introduction to language-driven engineering. In: Margaria, T., Steffen, B. (eds.) Leveraging Applications of Formal Methods, Verification and Validation. Modeling. pp. 546–564. Springer International Publishing, Cham (2018)

11. Gossen, F., Murtovi, A., Linden, J., Steffen, B.: The java library for algebraic decision diagrams. https://add-lib.scce.info, accessed: 2019-04-01

12. H. Kargupta, B.P.: A fourier spectrum-based approach to represent decision trees for mining data streams in mobile environments. IEEE Transactions on Knowledge and Data Engineering 16 (2004)

13. Ho, T.K.: Random decision forests. In: Proceedings of the Third International Conference on Document Analysis and Recognition (Volume 1) - Volume 1. ICDAR ’95, IEEE Computer Society, Washington, DC, USA (1995)

14. James Browne, Disa Mhembere, T.M.T.J.T.V.R.B.: Forest packing: Fast parallel, decision forests (2019)

15. Lee, C.Y.: Representation of switching circuits by binary-decision programs. Bell System Technical Journal 38(4), 985–999 (1959)

16. Mulvaney R., P.D.: A method to merge ensembles of bagged or boosted forced-split decision trees. IEEE Transaction on PAM (2003)

17. Nakahara, H., Jinguji, A., Sato, S., Sasao, T.: A random forest using a multi- valued decision diagram on an fpga. In: 2017 IEEE 47th International Symposium on Multiple-Valued Logic (ISMVL). pp. 266–271 (2017)

18. Painsky, A., Rosset, S.: Lossless compression of random forests. Journal of Com- puter Science and Technology 34(2), 494–506 (Mar 2019)

19. Peterson, A.H., Martinez, T.R.: Reducing decision tree ensemble size using parallel decision dags. International Journal on Artificial Intelligence Tools 18(04), 613–620 (2009)

20. Philippe J. Giabbanelli, J.G.P.: An algebra to merge heterogeneous classifiers. CoRR (2015)

21. Quinlan, J.R.: Induction of decision trees. Mach. Learn. 1(1), 81–106 (1986)

22. R. Iris Bahar, Erica A. Frohm, C.M.G.G.D.H.E.M.A.P.F.S.: Algebraic decision dia- grams and their applications. In: Proceedings of the 1993 IEEE/ACM International Conference on Computer-aided Design. IEEE Computer Society Press (1993)

23. Shotton, J., Nowozin, S., Sharp, T., Winn, J., Kohli, P., Criminisi, A.: Decision jungles: Compact and rich models for classification. In: Proceedings of the 26th International Conference on Neural Information Processing Systems - Volume 1 (2013)

24. Somenzi, F.: Efficient manipulation of decision diagrams. International Journal on Software Tools for Technology Transfer 3(2) (2001)

25. Steffen, B., Gossen, F., Naujokat, S., Margaria, T.: Language-Driven Engineer- ing: From General-Purpose to Purpose-Specific Languages, pp. 311–344. Springer International Publishing, Cham (2019)

26. Treelite: Treelite: model compiler for decision tree ensembles. https://treelite. readthedocs.io (2017), accessed: 2019-06-07

27. Witten, I.H., Frank, E., Hall, M.A., Pal, C.J.: Data Mining, Fourth Edition: Prac- tical Machine Learning Tools and Techniques. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 4th edn. (2016)