/** * Sets the labeler. * * @param l A labeling classifier. **/ public void setLabeler(Classifier l) { super.setLabeler(l); setBase(baseLearner); }
/** * Sets the labeler. * * @param l A labeling classifier. **/ public void setLabeler(Classifier l) { super.setLabeler(l); allowableValues = l == null ? null : l.allowableValues(); }
/** * Sets the labels list. * * @param l A new label producing classifier. **/ public void setLabeler(Classifier l) { super.setLabeler(l); allowableValues = l == null ? null : l.allowableValues(); if (allowableValues == null) allowableValues = new String[0]; }
/** * Sets the labeler. * * @param l A labeling classifier. **/ public void setLabeler(Classifier l) { super.setLabeler(l); allowableValues = l == null ? null : l.allowableValues(); }
/** * Sets the labeler. * * @param l A labeling classifier. **/ public void setLabeler(Classifier l) { if (!l.getOutputType().equals("discrete")) { System.err.println("LBJava WARNING: NaiveBayes will only work with a label classifier " + "that returns discrete."); System.err.println(" The given label classifier, " + l.getClass().getName() + ", returns " + l.getOutputType() + "."); } super.setLabeler(l); }
/** * Sets the labeler. * * @param l A labeling classifier. **/ public void setLabeler(Classifier l) { if (getClass().getName().contains("SparseNetworkLearner") && !l.getOutputType().equals("discrete")) { System.err.println("LBJava WARNING: SparseNetworkLearner will only work with a " + "label classifier that returns discrete."); System.err.println(" The given label classifier, " + l.getClass().getName() + ", returns " + l.getOutputType() + "."); } super.setLabeler(l); }
/** * Sets the labeler. * * @param l A labeling classifier. **/ public void setLabeler(Classifier l) { if (getClass().getName().indexOf("SparseMIRA") != -1 && !l.getOutputType().equals("discrete")) { System.err.println("LBJava WARNING: SparseMIRA will only work with a label classifier " + "that returns discrete."); System.err.println(" The given label classifier, " + l.getClass().getName() + ", returns " + l.getOutputType() + "."); } super.setLabeler(l); }
/** * Trains the learning algorithm given a feature vector as an example. This simply converts the * example object into arrays and passes it to {@link #learn(int[],double[],int[],double[])}. * * @param vector An example of the desired learned classifier's behavior. **/ public void learn(FeatureVector vector) { Classifier saveExtractor = getExtractor(); Classifier saveLabeler = getLabeler(); setExtractor(new FeatureVectorReturner()); setLabeler(new LabelVectorReturner()); learn((Object) vector); setExtractor(saveExtractor); setLabeler(saveLabeler); }
/** * Returns the value of the discrete prediction that this learner would make, given a feature * vector. * * @param vector The example vector. * @return The discrete value. **/ public String discreteValue(FeatureVector vector) { Classifier saveExtractor = getExtractor(); Classifier saveLabeler = getLabeler(); setExtractor(new FeatureVectorReturner()); setLabeler(new LabelVectorReturner()); String result = discreteValue((Object) vector); setExtractor(saveExtractor); setLabeler(saveLabeler); return result; }
/** * This method makes one or more decisions about a single feature vector, returning those * decisions as {@link Feature}s in a vector. * * @param vector The vector to make decisions about. * @return A vector of {@link Feature}s about the input vector. **/ public FeatureVector classify(FeatureVector vector) { Classifier saveExtractor = getExtractor(); Classifier saveLabeler = getLabeler(); setExtractor(new FeatureVectorReturner()); setLabeler(new LabelVectorReturner()); FeatureVector result = classify((Object) vector); setExtractor(saveExtractor); setLabeler(saveLabeler); return result; }
/** * Returns the classification of the given feature vector as a single feature instead of a * {@link FeatureVector}. * * @param vector The vector to classify. * @return The classification of <code>vector</code> as a feature. **/ public Feature featureValue(FeatureVector vector) { Classifier saveExtractor = getExtractor(); Classifier saveLabeler = getLabeler(); setExtractor(new FeatureVectorReturner()); setLabeler(new LabelVectorReturner()); Feature result = featureValue((Object) vector); setExtractor(saveExtractor); setLabeler(saveLabeler); return result; }
/** * Produces a set of scores indicating the degree to which each possible discrete classification * value is associated with the given feature vector. Learners that return a <code>real</code> * feature or more than one feature may implement this method by simply returning * <code>null</code>. * * @param vector The vector to make decisions about. * @return A set of scores indicating the degree to which each possible discrete classification * value is associated with the given example vector. **/ public ScoreSet scores(FeatureVector vector) { Classifier saveExtractor = getExtractor(); Classifier saveLabeler = getLabeler(); setExtractor(new FeatureVectorReturner()); setLabeler(new LabelVectorReturner()); ScoreSet result = scores((Object) vector); setExtractor(saveExtractor); setLabeler(saveLabeler); return result; }
/** * Returns the value of the real prediction that this learner would make, given a feature * vector. * * @param vector The example vector. * @return The real value. **/ public double realValue(FeatureVector vector) { Classifier saveExtractor = getExtractor(); Classifier saveLabeler = getLabeler(); setExtractor(new FeatureVectorReturner()); setLabeler(new LabelVectorReturner()); double result = realValue((Object) vector); setExtractor(saveExtractor); setLabeler(saveLabeler); return result; }
/** * Constructor for supervised learning. * * @param n The name of the classifier. * @param l The labeling classifier. * @param e The feature extracting classifier. **/ protected Learner(String n, Classifier l, Classifier e) { super(n); setLabeler(l); setExtractor(e); lexicon = new Lexicon(); labelLexicon = new Lexicon(); predictions = new FVector(); }
/** * Sets the labeler. * * @param l A labeling classifier. **/ public void setLabeler(Classifier l) { if (l == null || l.allowableValues().length != 2) { System.err.println("Error: " + name + ": An LTU must be given a single binary label classifier."); new Exception().printStackTrace(); System.exit(1); } super.setLabeler(l); allowableValues = l.allowableValues(); labelLexicon.clear(); labelLexicon.lookup(new DiscretePrimitiveStringFeature(l.containingPackage, l.name, "", allowableValues[0], (short) 0, (short) 2), true); labelLexicon.lookup(new DiscretePrimitiveStringFeature(l.containingPackage, l.name, "", allowableValues[1], (short) 1, (short) 2), true); createPrediction(0); createPrediction(1); }
/** * Sets the labels list. * * @param l A new label producing classifier. **/ public void setLabeler(Classifier l) { if (!(l == null || l.allowableValues().length == 2)) { System.err.println("Error: " + name + ": An LTU must be given a single binary label classifier."); new Exception().printStackTrace(); System.exit(1); } super.setLabeler(l); allowableValues = l == null ? null : l.allowableValues(); labelLexicon.clear(); labelLexicon.lookup(new DiscretePrimitiveStringFeature(l.containingPackage, l.name, "", allowableValues[0], (short) 0, (short) 2), true); labelLexicon.lookup(new DiscretePrimitiveStringFeature(l.containingPackage, l.name, "", allowableValues[1], (short) 1, (short) 2), true); predictions = new FVector(2); createPrediction(0); createPrediction(1); }