package ca.pfv.spmf.test;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import ca.pfv.spmf.algorithms.classifiers.decisiontree.id3.AlgoID3;
import ca.pfv.spmf.algorithms.classifiers.decisiontree.id3.DecisionTree;
/**
* Example of how to use ID3 from the source code.
* @author Philippe Fournier-Viger (Copyright 2011)
*/
public class MainTestID3 {
public static void main(String [] arg) throws IOException{
// Read input file and run algorithm to create a decision tree
AlgoID3 algo = new AlgoID3();
// There is three parameters:
// - a file path
// - the "target attribute that should be used to create the decision tree
// - the separator that was used in the file to separate values (by default it is a space)
DecisionTree tree = algo.runAlgorithm(fileToPath("tennis.txt"), "play", " ");
algo.printStatistics();
// print the decision tree:
tree.print();
// Use the decision tree to make predictions
// For example, we want to predict the class of an instance:
String [] instance = {null, "sunny", "hot", "normal", "weak"};
String prediction = tree.predictTargetAttributeValue(instance);
System.out.println("The class that is predicted is: " + prediction);
}
public static String fileToPath(String filename) throws UnsupportedEncodingException{
URL url = MainTestID3.class.getResource(filename);
return java.net.URLDecoder.decode(url.getPath(),"UTF-8");
}
}