package quickml.supervised.classifier.randomForest; /** * Created by alexanderhawk on 4/7/15. */ import quickml.data.*; import quickml.data.instances.ClassifierInstance; import quickml.supervised.*; import quickml.supervised.ensembles.randomForest.randomDecisionForest.*; import quickml.supervised.tree.attributeIgnoringStrategies.*; import quickml.supervised.tree.decisionTree.*; import java.io.*; import java.util.*; public class TestIrisAccuracy { public static void main(String[] args) throws IOException { List<ClassifierInstance> irisDataset = PredictiveAccuracyTests.loadIrisDataset(); final RandomDecisionForest randomForest = new RandomDecisionForestBuilder<>(new DecisionTreeBuilder<>() // The default isn't desirable here because this dataset has so few attributes .attributeIgnoringStrategy(new IgnoreAttributesWithConstantProbability(0.2))) .buildPredictiveModel(irisDataset); AttributesMap attributes = new AttributesMap(); attributes.put("sepal-length", 5.84); attributes.put("sepal-width", 3.05); attributes.put("petal-length", 3.76); attributes.put("petal-width", 1.20); System.out.println("Prediction: " + randomForest.predict(attributes)); for (ClassifierInstance instance : irisDataset) { System.out.println("classification: " + randomForest.getClassificationByMaxProb(instance.getAttributes())); } } }