Java implementation of the Adaptive Regression by Mixing algorithm
Adaptive Regression by Mixing (ARM) was introduced in:
Yuhong Yang: Adaptive Regression by Mixing. Journal of American Statistical Association, 96:454, 574-588, 2001.
ARM fuses the predictions of a set of models according to an estimation of their accuracy. The fused model obtained with ARM is a linear combination of the predictions of the original models. This way, it is possible to fuse predictions obtained with different models and algorithms. For instance, one could combine the predictions of a Neural Network with the predictions of CART etc.
For futher details, please check the overview of the ARM algorithm.
Data must be provided in csv format where:
All you need to provide is the path to your prediction matrix in csv format and the number of iterations:
$ java -jar armfusion.jar -csv path_to_preds -iters num_iters
At the end of the run, the fused model is printed. Below, we show a fused model obtained by fusing 5 models:
0.7 * y0
+ 0.0 * y1
+ 0.1 * y2
+ 0.2 * y3
+ 0.0 * y4
In the example, the first model y0 is assigned a weight of 0.7. Models y2 and y3 receive the weights 0.1 and 0.2 respectively while the remaining y1 and y4 have zero weights.
This implementation of ARM has been used in the following publications:
I Arnaldo, K Veeramachaneni, UM O'Reilly: Flash: A GP-GPU Ensemble Learning System for Handling Large Datasets. Genetic Programming. Lecture Notes in Computer Science Volume 8599, 2014, pp 13-24.
Veeramachaneni, K; Arnaldo, I; Derby, O; O’Reilly, UM: FlexGP: Cloud-Based Ensemble Learning with Genetic Programming for Large Regression Problems. Journal of Grid Computing. November, 2014.
This project is developed is by Ignacio Arnaldo (@ignacioarnaldo) of the Any-Scale Learning For All (ALFA) group at MIT. Contact us by email at iarnaldo@mit.edu