private static void ensembleLearningDemo() { System.out.println(Util.ntimes("*", 100)); System.out.println( "\n Ensemble Decision Demo - Weak Learners co operating to give Superior decisions "); System.out.println(Util.ntimes("*", 100)); try { DataSet ds = DataSetFactory.getRestaurantDataSet(); List stumps = DecisionTree.getStumpsFor(ds, "Yes", "No"); List<Learner> learners = new ArrayList<Learner>(); System.out.println("\nStump Learners vote to decide in this algorithm"); for (Object stump : stumps) { DecisionTree sl = (DecisionTree) stump; StumpLearner stumpLearner = new StumpLearner(sl, "No"); learners.add(stumpLearner); } AdaBoostLearner learner = new AdaBoostLearner(learners, ds); learner.train(ds); int[] result = learner.test(ds); System.out.println( "\nThis Ensemble Learner classifies the data set with " + result[0] + " successes" + " and " + result[1] + " failures"); System.out.println("\n"); } catch (Exception e) { } }
private static void decisionListDemo() { try { System.out.println(Util.ntimes("*", 100)); System.out.println( "DecisionList Demo - Inducing a DecisionList from the Restaurant DataSet\n "); System.out.println(Util.ntimes("*", 100)); DataSet ds = DataSetFactory.getRestaurantDataSet(); DecisionListLearner learner = new DecisionListLearner("Yes", "No", new DLTestFactory()); learner.train(ds); System.out.println("The Induced DecisionList is"); System.out.println(learner.getDecisionList()); int[] result = learner.test(ds); System.out.println( "\nThis Decision List classifies the data set with " + result[0] + " successes" + " and " + result[1] + " failures"); System.out.println("\n"); } catch (Exception e) { System.out.println("Decision ListDemo Failed"); } }
private static void backPropogationDemo() { try { System.out.println(Util.ntimes("*", 100)); System.out.println( "\n BackpropagationDemo - Running BackProp on Iris data Set with 10 epochs of learning "); System.out.println(Util.ntimes("*", 100)); DataSet irisDataSet = DataSetFactory.getIrisDataSet(); Numerizer numerizer = new IrisDataSetNumerizer(); NNDataSet innds = new IrisNNDataSet(); innds.createExamplesFromDataSet(irisDataSet, numerizer); NNConfig config = new NNConfig(); config.setConfig(FeedForwardNeuralNetwork.NUMBER_OF_INPUTS, 4); config.setConfig(FeedForwardNeuralNetwork.NUMBER_OF_OUTPUTS, 3); config.setConfig(FeedForwardNeuralNetwork.NUMBER_OF_HIDDEN_NEURONS, 6); config.setConfig(FeedForwardNeuralNetwork.LOWER_LIMIT_WEIGHTS, -2.0); config.setConfig(FeedForwardNeuralNetwork.UPPER_LIMIT_WEIGHTS, 2.0); FeedForwardNeuralNetwork ffnn = new FeedForwardNeuralNetwork(config); ffnn.setTrainingScheme(new BackPropLearning(0.1, 0.9)); ffnn.trainOn(innds, 10); innds.refreshDataset(); int[] result = ffnn.testOnDataSet(innds); System.out.println(result[0] + " right, " + result[1] + " wrong"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
private static void perceptronDemo() { try { System.out.println(Util.ntimes("*", 100)); System.out.println( "\n Perceptron Demo - Running Perceptron on Iris data Set with 10 epochs of learning "); System.out.println(Util.ntimes("*", 100)); DataSet irisDataSet = DataSetFactory.getIrisDataSet(); Numerizer numerizer = new IrisDataSetNumerizer(); NNDataSet innds = new IrisNNDataSet(); innds.createExamplesFromDataSet(irisDataSet, numerizer); Perceptron perc = new Perceptron(3, 4); perc.trainOn(innds, 10); innds.refreshDataset(); int[] result = perc.testOnDataSet(innds); System.out.println(result[0] + " right, " + result[1] + " wrong"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
// function SIMULATED-ANNEALING(problem, schedule) returns a solution state // inputs: problem, a problem // schedule, a mapping from time to "temperature" public List<String> search(Problem p) throws Exception { // local variables: current, a node // next, a node // T, a "temperature" controlling the probability of downward steps clearInstrumentation(); outcome = SearchOutcome.FAILURE; lastState = null; // current <- MAKE-NODE(INITIAL-STATE[problem]) Node current = new Node(p.getInitialState()); Node next = null; List<String> ret = new ArrayList<String>(); // for t <- 1 to INFINITY do int timeStep = 0; while (true) { // temperature <- schedule[t] double temperature = scheduler.getTemp(timeStep); timeStep++; // if temperature = 0 then return current if (temperature == 0.0) { if (p.isGoalState(current.getState())) { outcome = SearchOutcome.SOLUTION_FOUND; } ret = SearchUtils.actionsFromNodes(current.getPathFromRoot()); lastState = current.getState(); break; } List<Node> children = expandNode(current, p); if (children.size() > 0) { // next <- a randomly selected successor of current next = Util.selectRandomlyFromList(children); // /\E <- VALUE[next] - VALUE[current] int deltaE = getValue(p, next) - getValue(p, current); if (shouldAccept(temperature, deltaE)) { current = next; } } } return ret; }