private double evaluate(Dataset dataset, Filetype filetype) throws IOException {
      int total_labels = 0;
      int correct_labels = 0;

      BufferedReader data = new BufferedReader(new FileReader(DATA_DIRECTORY_PATH + dataset.NAME + "." + filetype.FLAG));
      BufferedReader prediction = new BufferedReader(
            new FileReader(PREDICTIONS_DIRECTORY_PATH + algorithm.FLAG + "." + dataset.NAME + "." + filetype.FLAG + ".prediction"));
      String data_line = null;
      String prediction_line = null;
      while ((data_line = data.readLine()) != null && (prediction_line = prediction.readLine()) != null) {
         ++total_labels;
         if (data_line.split(" ")[0].equals(prediction_line.trim())) {
            ++correct_labels;
         }
      }
      data.close();
      prediction.close();
      return ((double) correct_labels) / total_labels;
   }