public static void main(String[] args) throws Exception {
		Options opts = new Options();
		CmdLineParser parser = new CmdLineParser(Evaluator.class, opts);
		try {
			parser.parse(args);
		} catch (IllegalArgumentException e) {
			parser.printUsage();
			System.exit(1);
		}

		Instances instances = InstancesReader.read(opts.attPath, opts.dataPath);
		mltk.predictor.Predictor predictor = PredictorReader.read(opts.modelPath);

		switch (opts.task) {
			case "a":
				double auc = evalAreaUnderROC((ProbabilisticClassifier) predictor, instances);
				System.out.println("AUC: " + auc);
				break;
			case "c":
				double error = evalError((Classifier) predictor, instances);
				System.out.println("Error: " + error);
				break;
			case "l":
				double logisticLoss = evalLogisticLoss((Regressor) predictor, instances);
				System.out.println("Logistic Loss: " + logisticLoss);
				break;
			case "m":
				double mae = evalMAE((Regressor) predictor, instances);
				System.out.println("MAE: " + mae);
				break;
			case "r":
				double rmse = evalRMSE((Regressor) predictor, instances);
				System.out.println("RMSE: " + rmse);
				break;
			default:
				break;
		}
	}