public void loadDataset(File f) {
		log.info("Loading data set");
		String r;
		RecordParser p;
		FileInputStream fis = null;
		BufferedReader reader = null;
		try {
			fis = new FileInputStream(f);
			reader = new BufferedReader(new InputStreamReader(fis));
			// parse header record
			p = new RecordParser(reader.readLine());
			// get attribute names from header
			String[] names = p.values();
			log.info("Attribute names " + Arrays.toString(names));
			// get classifier name from header
			String classifier = p.classifier();
			log.info("Classifier name " + classifier);
			// parse remaining records
			while ((r = reader.readLine()) != null) {
				// parse data record
				p = new RecordParser(r);
				// add the instance attribute names and values
				add(names, p.values(), p.classifier());
			}
		} catch (FileNotFoundException e) {
			System.out.println("FileNotFoundException issued");
		} catch (IOException e) {
			System.out.println("IOException issued");
		} finally {
			try {
				if (reader != null)
					reader.close();
				if (fis != null)
					fis.close();
			} catch (IOException e) {
				System.out.println("IOException when closing file");
			}
		}
	}