public void run() throws Exception {
      System.out.println("Running " + algorithm.FLAG + " algorithm:");
      for (Dataset dataset : datasets_to_run) {
         System.out.println("\nRunning " + dataset.NAME + " dataset.");
         System.out.println("Training...");
         train(dataset);
         for (Filetype filetype : dataset.FILETYPES) {
            System.out.println("Calculuating predictions for ." + filetype.FLAG + " data.");
            predict(dataset, filetype);
         }
      }

      System.out.println("\n\n\nResults for " + algorithm.FLAG + " algorithm:\n");
      for (Dataset dataset : datasets_to_run) {
         System.out.println("Accuracy on " + dataset.NAME + " dataset:");
         for (Filetype filetype : dataset.FILETYPES) {
            System.out.println(filetype.FLAG + " data: " + String.valueOf(evaluate(dataset, filetype)));
         }
         System.out.println();
      }

   }