class ShotgunEnsembleClassifier extends ASimplifiedTSClassifier<Integer> {

	protected Integer mostFrequentLabelFromWindowLengthPredicitions(final Map<Integer, Integer> windowLengthPredicitions) {
		// Count frequency for labels.
		Map<Integer, Integer> labelFrequencyMap = new HashMap<>();
		for (Integer label : windowLengthPredicitions.values()) {
			if (labelFrequencyMap.containsKey(label)) {
				labelFrequencyMap.put(label, labelFrequencyMap.get(label) + 1);
			} else {
				labelFrequencyMap.put(label, 1);
			}
		}
		// Return most frequent label.
		int topFrequency = -1;
		int mostFrequentLabel = 0;
		for (Entry<Integer, Integer> entry : labelFrequencyMap.entrySet()) {
			int label = entry.getKey();
			int labelFrequency = entry.getValue();
			if (labelFrequency > topFrequency) {
				topFrequency = labelFrequency;
				mostFrequentLabel = label;
			}
		}
		return mostFrequentLabel;
	}

	public  ShotgunEnsembleClassifier(final int minWindowLength, final int maxWindowLength, final boolean meanNormalization, final double factor);

}