public List<Graph> getErrorToConfidenceGraph() {
		Map<Double, Integer> timeMap = new HashMap<Double, Integer>();
		Map<Double, Integer> stepsMap = new HashMap<Double, Integer>();
		Map<Double, Integer> timeCount = new HashMap<Double, Integer>();
		Map<Double, Integer> stepsCount = new HashMap<Double, Integer>();
		
		Graph time = new Graph("Time Confidence", "Confidence", "Probability correct", lineLabel);
		Graph steps = new Graph("Steps Confidence", "Confidence", "Probability correct", lineLabel);
		for (Error e : errors) {
			double conf = (int)(e.getConfidence() * 10) / (double)10;
			
			if(e.getUnit() == PredictionUnit.Milliseconds) {
				if(!timeMap.containsKey(conf)) {
					timeMap.put(conf, 0);
					timeCount.put(conf, 0);
				}
				
				if(e.getError() <= timeThreshold) {
					timeMap.put(conf, timeMap.get(conf) + 1);
				}
				timeCount.put(conf, timeCount.get(conf) + 1);
			}
			else {
				if(!stepsMap.containsKey(conf)) {
					stepsMap.put(conf, 0);
					stepsCount.put(conf, 0);
				}
				
				if(e.getError() < stepsThreshold) {
					stepsMap.put(conf, stepsMap.get(conf) + 1);
				}
				stepsCount.put(conf,  stepsCount.get(conf) + 1);
			}
		}

		for(double c : timeMap.keySet()) {
			time.addDataPoint(c, timeMap.get(c) / (double)timeCount.get(c));
		}
		for(double c : stepsMap.keySet()) {
			steps.addDataPoint(c, stepsMap.get(c) / (double)stepsCount.get(c));
		}
		
		List<Graph> result = new ArrayList<Graph>();
		result.add(steps);
		result.add(time);
		return result;
	}