public static void main(String[] args) throws Exception { if (args.length != 1) throw new IllegalArgumentException("Required arguments: <dataset>"); System.out.println("Loading data: " + args[0]); Instances data = DataSource.read(args[0]); MLUtils.prepareData(data); System.out.println("Build BR classifier"); BR classifier = new BR(); // further configuration of classifier classifier.buildClassifier(data); } }
public static void main(String[] args) throws Exception { if (args.length != 2) throw new IllegalArgumentException("Required arguments: <train> <test>"); System.out.println("Loading train: " + args[0]); Instances train = DataSource.read(args[0]); MLUtils.prepareData(train); System.out.println("Loading test: " + args[1]); Instances test = DataSource.read(args[1]); MLUtils.prepareData(test); // compatible? String msg = train.equalHeadersMsg(test); if (msg != null) throw new IllegalStateException(msg); System.out.println("Build BR classifier on " + args[0]); BR classifier = new BR(); // further configuration of classifier classifier.buildClassifier(train); System.out.println("Evaluate BR classifier on " + args[1]); String top = "PCut1"; String vop = "3"; Result result = Evaluation.evaluateModel(classifier, train, test, top, vop); System.out.println(result); } }
public static void main(String[] args) throws Exception { if (args.length != 2) throw new IllegalArgumentException("Required arguments: <dataset> <percentage>"); System.out.println("Loading data: " + args[0]); Instances data = DataSource.read(args[0]); MLUtils.prepareData(data); double percentage = Double.parseDouble(args[1]); int trainSize = (int) (data.numInstances() * percentage / 100.0); Instances train = new Instances(data, 0, trainSize); Instances test = new Instances(data, trainSize, data.numInstances() - trainSize); System.out.println("Build BR classifier on " + percentage + "%"); BR classifier = new BR(); // further configuration of classifier classifier.buildClassifier(train); System.out.println("Evaluate BR classifier on " + (100.0 - percentage) + "%"); String top = "PCut1"; String vop = "3"; Result result = Evaluation.evaluateModel(classifier, train, test, top, vop); System.out.println(result); } }
BR classifier = new BR(); classifier.buildClassifier(train);
public static void main(String[] args) throws Exception { if (args.length != 2) throw new IllegalArgumentException("Required arguments: <train> <predict>"); System.out.println("Loading train: " + args[0]); Instances train = DataSource.read(args[0]); MLUtils.prepareData(train); System.out.println("Loading predict: " + args[1]); Instances predict = DataSource.read(args[1]); MLUtils.prepareData(predict); // compatible? String msg = train.equalHeadersMsg(predict); if (msg != null) throw new IllegalStateException(msg); System.out.println("Build BR classifier on " + args[0]); BR classifier = new BR(); // further configuration of classifier classifier.buildClassifier(train); System.out.println("Use BR classifier on " + args[1]); for (int i = 0; i < predict.numInstances(); i++) { double[] dist = classifier.distributionForInstance(predict.instance(i)); System.out.println((i+1) + ": " + Utils.arrayToString(dist)); } } }
@Override public void buildClassifier(Instances data) throws Exception { testCapabilities(data); int c = data.classIndex(); // Base BR if (getDebug()) System.out.println("Build BR Base ("+c+" models)"); m_BASE = (BR)AbstractClassifier.forName(getClassifier().getClass().getName(),((AbstractClassifier)getClassifier()).getOptions()); m_BASE.buildClassifier(data); // Meta BR if (getDebug()) System.out.println("Prepare Meta data "); Instances meta_data = new Instances(data); FastVector BinaryClass = new FastVector(c); BinaryClass.addElement("0"); BinaryClass.addElement("1"); for(int i = 0; i < c; i++) { meta_data.insertAttributeAt(new Attribute("metaclass"+i,BinaryClass),c); } for(int i = 0; i < data.numInstances(); i++) { double cfn[] = m_BASE.distributionForInstance(data.instance(i)); for(int a = 0; a < cfn.length; a++) { meta_data.instance(i).setValue(a+c,cfn[a]); } } meta_data.setClassIndex(c); m_InstancesTemplate = new Instances(meta_data, 0); if (getDebug()) System.out.println("Build BR Meta ("+c+" models)"); m_META = (BR)AbstractClassifier.forName(getClassifier().getClass().getName(),((AbstractClassifier)getClassifier()).getOptions()); m_META.buildClassifier(meta_data); }
@Override public void buildClassifier(Instances data) throws Exception { testCapabilities(data); int c = data.classIndex(); // Base BR if (getDebug()) System.out.println("Build BR Base ("+c+" models)"); m_BASE = (BR)AbstractClassifier.forName(getClassifier().getClass().getName(),((AbstractClassifier)getClassifier()).getOptions()); m_BASE.buildClassifier(data); // Meta BR if (getDebug()) System.out.println("Prepare Meta data "); Instances meta_data = new Instances(data); FastVector BinaryClass = new FastVector(c); BinaryClass.addElement("0"); BinaryClass.addElement("1"); for(int i = 0; i < c; i++) { meta_data.insertAttributeAt(new Attribute("metaclass"+i,BinaryClass),c); } for(int i = 0; i < data.numInstances(); i++) { double cfn[] = m_BASE.distributionForInstance(data.instance(i)); for(int a = 0; a < cfn.length; a++) { meta_data.instance(i).setValue(a+c,cfn[a]); } } meta_data.setClassIndex(c); m_InstancesTemplate = new Instances(meta_data, 0); if (getDebug()) System.out.println("Build BR Meta ("+c+" models)"); m_META = (BR)AbstractClassifier.forName(getClassifier().getClass().getName(),((AbstractClassifier)getClassifier()).getOptions()); m_META.buildClassifier(meta_data); }