public static void evalAUC(Dataset dataset)
	{
		double trainArea = 0, trainPosi = 0, trainRank = dataset.trainCount;
		double testArea = 0, testPosi = 0, testRank = dataset.testCount;
		double quizArea = 0, quizPosi = 0, quizRank = dataset.quizCount;
		Collections.sort(dataset.data, new InstanceComparator());
		for(Instance inst : dataset.data)
		{
			if(inst.type == InstanceType.Train)
			{
				if(inst.target == 1.0)
				{
					trainPosi++;
					trainArea += trainRank;
				}
				trainRank--;	
			}
			else if(inst.type == InstanceType.Test)
			{
				if(inst.target == 1.0)
				{
					testPosi++;
					testArea += testRank;
				}
				testRank--;
			}
			else
			{
				if(inst.target == 1.0)
				{
					quizPosi++;
					quizArea += quizRank;
				}
				quizRank--;
			}
		}
		if(dataset.trainCount > 0)
		{
			double auc = (trainArea - trainPosi * (trainPosi + 1) / 2) / (trainPosi * (dataset.trainCount - trainPosi));
			System.out.print(String.format("Train: %.4f %d\t", auc, dataset.trainCount));	
		}
		if(dataset.testCount > 0)
		{
			double auc = (testArea - testPosi * (testPosi + 1) / 2) / (testPosi * (dataset.testCount - testPosi));
			System.out.print(String.format("Test: %.4f %d\t", auc, dataset.testCount));	
		}
		if(dataset.quizCount > 0)
		{
			double auc = (quizArea - quizPosi * (quizPosi + 1) / 2) / (quizPosi * (dataset.quizCount - quizPosi));
			System.out.print(String.format("Quiz: %.4f %d\t", auc, dataset.quizCount));	
		}
		System.out.println();
	}