public double[][] test(DataFrame data) {
        DataFrame x = formula.x(data);

        int n = x.nrow();
        int ntrees = models.length;
        double[][] prediction = new double[ntrees][n];

        for (int j = 0; j < n; j++) {
            Tuple xj = x.get(j);
            double base = 0;
            for (int i = 0; i < ntrees; i++) {
                base = base + models[i].tree.predict(xj);
                prediction[i][j] = base / (i+1);
            }
        }

        return prediction;
    }
@Test
    public void testAbalone() {
        test("abalone", Abalone.formula, Abalone.train, 2.1889);
    }