public boolean[] classify(int datapoint) {
		double hypothesis;
		boolean[] class_list = new boolean[classes];
		int c, f, i;
		
		//System.out.println("Classifying:");
		for (c = 0; c < classes; c++) {
			hypothesis = 0;
			//System.out.println("   "+data.classlist[c]+":");
			for (f = 0; f < features; f++) {
				//System.out.print("      "+data.storage[datapoint]+": [");
				for (i = 0; i < iterations; i++) {
					if (classifiers[c][i].classify(data.storage[datapoint])) {
				//System.out.print("true, ");
						hypothesis += classifier_weights[c][i];
					} else {
				//System.out.print("false, ");
						hypothesis -= classifier_weights[c][i];
					}
				}
				//System.out.println("]");
			}
			class_list[c] = hypothesis > 0;
		}
		return class_list;
	}