public void testNGF(int[] noModels) throws FileNotFoundException {
        double[] sumacc = new double[noModels.length];
        int acc;
        double prediction;
        System.out.println("NoFolds: " + noFold);
        for (int i = 0; i < noFold; i++) {
            System.out.println("################ Fold no " + i);
            Set<Integer> trainingSet = new HashSet<Integer>(sampleIndex);
            trainingSet.removeAll(foldList.get(i));
            Set<Integer> testSet = foldList.get(i);

            for (int j = 0; j < noModels.length; j++){
                // create the forest
                OptimalForest forest = new OptimalForest(storeFile, trainingSet, ppiGraph, noModels[j]);

                // test using the forest created
                acc = 0;
                for (Integer s : testSet) {
                    ArrayList<String> sample = sampleInfoStore.get(s);
                    List<String> features = sample.subList(1, sample.size());
                    Integer classLabel = 0;
                    if (storeFile[s][0]) {
                        classLabel = 1;
                    }
                    prediction = forest.classify(features);
                    if (classLabel == 1 && prediction >= 0.5
                            || classLabel == 0 && prediction < 0.5) {
                        acc += 1;
                    }
                }
                sumacc[j] += (double)acc/testSet.size();
                System.err.println("acc: " + (double)acc/testSet.size());
            }            
        }
        for (int j = 0; j < noModels.length; j++){
            sumacc[j] /= noFold;
            System.err.println("NGFForest No models: " + noModels[j] + " Accuracy: " + sumacc[j]);    
        }
    }