public ConditionalClusterer train (AbstractPipeInputIterator instanceIterator, boolean useFeatureInduction) { InstanceList trainingList = new InstanceList (p); trainingList.add (instanceIterator); System.err.println ("Training on " + trainingList.size() + " instances with distribution " + trainingList.targetLabelDistribution() + " and " + trainingList.getPipe().getDataAlphabet().size() + " features");; InfoGain ig = new InfoGain (trainingList); for (int i=0; i < ig.numLocations(); i++) System.err.println ("InfoGain["+ig.getObjectAtRank(i)+"]="+ig.getValueAtRank(i)); if (useFeatureInduction) { System.err.println ("Beginning Feature Induction"); RankedFeatureVector.Factory gainFactory = new InfoGain.Factory(); FeatureInducer fi = new FeatureInducer (gainFactory, trainingList, 20); fi.induceFeaturesFor(trainingList, false, false); } classifier = classifierTrainer.train (trainingList); classifier.getInstancePipe().getDataAlphabet().stopGrowth(); return new ConditionalClusterer(p, classifier, threshold); }
/** This method is deprecated. */ public void evaluate (TransducerEvaluator eval, InstanceList testing) { testing.setFeatureSelection(this.globalFeatureSelection); for (int i = 0; i < featureInducers.size(); i++) { FeatureInducer klfi = (FeatureInducer)featureInducers.get(i); klfi.induceFeaturesFor (testing, false, false); } eval.evaluate (this, true, 0, true, 0.0, null, null, testing); }
/** This method is deprecated. */ public void evaluate (TransducerEvaluator eval, InstanceList testing) { testing.setFeatureSelection(this.globalFeatureSelection); for (int i = 0; i < featureInducers.size(); i++) { FeatureInducer klfi = (FeatureInducer)featureInducers.get(i); klfi.induceFeaturesFor (testing, false, false); } eval.evaluate (this, true, 0, true, 0.0, null, null, testing); }
for (int k = 0; k < s; k++) lvs[k] = (LabelVector) clusteredErrorLabelVectors[i][j].get(k); klfi[i][j] = new FeatureInducer (new ExpGain.Factory (lvs), clusteredErrorInstances[i][j], numFeaturesPerFeatureInduction); continue; klfi[i][j].induceFeaturesFor (trainingData, false, false); klfi[i][j].induceFeaturesFor (testingData, false, false); for (int i = 0; i < s; i++) lvs[i] = (LabelVector) errorLabelVectors.get(i); FeatureInducer klfi = new FeatureInducer (new ExpGain.Factory (lvs), errorInstances, numFeaturesPerFeatureInduction); logger.info("Inducing features for training set."); klfi.induceFeaturesFor (trainingData, false, false); logger.info("Inducing features for testing set."); klfi.induceFeaturesFor (testingData, false, false); klfi = null; } else { igfi.induceFeaturesFor (trainingData, false, false); igfi.induceFeaturesFor (testingData, false, false); igfi = null;
/** This method is deprecated. */ public void evaluate (TransducerEvaluator eval, InstanceList testing) { testing.setFeatureSelection(this.globalFeatureSelection); for (int i = 0; i < featureInducers.size(); i++) { FeatureInducer klfi = (FeatureInducer)featureInducers.get(i); klfi.induceFeaturesFor (testing, false, false); } eval.evaluate (this, true, 0, true, 0.0, null, null, testing); }
for (int k = 0; k < s; k++) lvs[k] = (LabelVector) clusteredErrorLabelVectors[i][j].get(k); klfi[i][j] = new FeatureInducer (new ExpGain.Factory (lvs), clusteredErrorInstances[i][j], numFeaturesPerFeatureInduction); continue; klfi[i][j].induceFeaturesFor (trainingData, false, false); klfi[i][j].induceFeaturesFor (testingData, false, false); for (int i = 0; i < s; i++) lvs[i] = (LabelVector) errorLabelVectors.get(i); FeatureInducer klfi = new FeatureInducer (new ExpGain.Factory (lvs), errorInstances, numFeaturesPerFeatureInduction); klfi.induceFeaturesFor (trainingData, false, false); klfi.induceFeaturesFor (testingData, false, false); klfi = null; } else { FeatureInducer igfi = new FeatureInducer (new InfoGain.Factory(), errorInstances, numFeaturesPerFeatureInduction); igfi.induceFeaturesFor (trainingData, false, false); igfi.induceFeaturesFor (testingData, false, false); igfi = null;
/** This method is deprecated. */ public Sequence[] predict (InstanceList testing) { testing.setFeatureSelection(this.globalFeatureSelection); for (int i = 0; i < featureInducers.size(); i++) { FeatureInducer klfi = (FeatureInducer)featureInducers.get(i); klfi.induceFeaturesFor (testing, false, false); } Sequence[] ret = new Sequence[testing.size()]; for (int i = 0; i < testing.size(); i++) { Instance instance = testing.getInstance(i); Sequence input = (Sequence) instance.getData(); Sequence trueOutput = (Sequence) instance.getTarget(); assert (input.size() == trueOutput.size()); Sequence predOutput = viterbiPath(input).output(); assert (predOutput.size() == trueOutput.size()); ret[i] = predOutput; } return ret; }
else if (gainName.equals("info")) gainFactory = new InfoGain.Factory (); klfi[i][j] = new FeatureInducer (gainFactory, clusteredErrorInstances[i][j], numFeaturesPerFeatureInduction, klfi[i][j].induceFeaturesFor (trainingData, false, false); if (testingData != null) klfi[i][j].induceFeaturesFor (testingData, false, false); gainFactory = new InfoGain.Factory (); FeatureInducer klfi = new FeatureInducer (gainFactory, errorInstances, numFeaturesPerFeatureInduction, featureInducers.add(klfi); klfi.induceFeaturesFor (trainingData, false, false); if (testingData != null) klfi.induceFeaturesFor (testingData, false, false); logger.info ("CRF4 FeatureSelection now includes "+this.globalFeatureSelection.cardinality()+" features"); klfi = null;
/** This method is deprecated. */ public Sequence[] predict (InstanceList testing) { testing.setFeatureSelection(this.globalFeatureSelection); for (int i = 0; i < featureInducers.size(); i++) { FeatureInducer klfi = (FeatureInducer)featureInducers.get(i); klfi.induceFeaturesFor (testing, false, false); } Sequence[] ret = new Sequence[testing.size()]; for (int i = 0; i < testing.size(); i++) { Instance instance = testing.getInstance(i); Sequence input = (Sequence) instance.getData(); Sequence trueOutput = (Sequence) instance.getTarget(); assert (input.size() == trueOutput.size()); Sequence predOutput = viterbiPath(input).output(); assert (predOutput.size() == trueOutput.size()); ret[i] = predOutput; } return ret; }
else if (gainName.equals("info")) gainFactory = new InfoGain.Factory (); klfi[i][j] = new FeatureInducer (gainFactory, clusteredErrorInstances[i][j], numFeaturesPerFeatureInduction, klfi[i][j].induceFeaturesFor (trainingData, false, false); if (testingData != null) klfi[i][j].induceFeaturesFor (testingData, false, false); gainFactory = new InfoGain.Factory (); FeatureInducer klfi = new FeatureInducer (gainFactory, errorInstances, numFeaturesPerFeatureInduction, featureInducers.add(klfi); klfi.induceFeaturesFor (trainingData, false, false); if (testingData != null) klfi.induceFeaturesFor (testingData, false, false); logger.info ("CRF3 FeatureSelection now includes "+this.globalFeatureSelection.cardinality()+" features"); klfi = null;
/** This method is deprecated. */ public Sequence[] predict (InstanceList testing) { testing.setFeatureSelection(this.globalFeatureSelection); for (int i = 0; i < featureInducers.size(); i++) { FeatureInducer klfi = (FeatureInducer)featureInducers.get(i); klfi.induceFeaturesFor (testing, false, false); } Sequence[] ret = new Sequence[testing.size()]; for (int i = 0; i < testing.size(); i++) { Instance instance = testing.getInstance(i); Sequence input = (Sequence) instance.getData(); Sequence trueOutput = (Sequence) instance.getTarget(); assert (input.size() == trueOutput.size()); Sequence predOutput = viterbiPath(input).output(); assert (predOutput.size() == trueOutput.size()); ret[i] = predOutput; } return ret; }
for (int k = 0; k < s; k++) lvs[k] = (LabelVector) clusteredErrorLabelVectors[i][j].get(k); klfi[i][j] = new FeatureInducer (new ExpGain.Factory (lvs, gaussianPriorVariance), clusteredErrorInstances[i][j], numFeaturesPerFeatureInduction, klfi[i][j].induceFeaturesFor (trainingData, false, false); if (testingData != null) klfi[i][j].induceFeaturesFor (testingData, false, false); new FeatureInducer (new ExpGain.Factory (lvs, gaussianPriorVariance), errorInstances, numFeaturesPerFeatureInduction, featureInducers.add(klfi); klfi.induceFeaturesFor (trainingData, false, false); if (testingData != null) klfi.induceFeaturesFor (testingData, false, false); System.out.println ("CRFByGISUpdate FeatureSelection now includes "+this.globalFeatureSelection.cardinality()+" features"); klfi = null;
RankedFeatureVector.Factory gainFactory = null; gainFactory = new InfoGain.Factory(); fi = new FeatureInducer (gainFactory, ilist, 10); fi.induceFeaturesFor(ilist, false, false); if (useFeatureInduction.value()) { System.out.println("\n\nINDUCING FEATURES FOR TEST INSTANCES"); fi.induceFeaturesFor(itestlist, false, false);
new FeatureInducer (gainFactory, errorInstances, numFeaturesPerFeatureInduction, klfi.induceFeaturesFor (trainingData, false, false); if (testingData != null) klfi.induceFeaturesFor (testingData, false, false); logger.info ("MaxEnt FeatureSelection now includes "+globalFS.cardinality()+" features"); klfi = null;
RankedFeatureVector.Factory gainFactory = null; gainFactory = new InfoGain.Factory(); fi = new FeatureInducer (gainFactory, ilist, 10); fi.induceFeaturesFor(ilist, false, false); if (useFeatureInduction.value()) { System.out.println("\n\nINDUCING FEATURES FOR TEST INSTANCES"); fi.induceFeaturesFor(itestlist, false, false);
new FeatureInducer (gainFactory, errorInstances, numFeaturesPerFeatureInduction, klfi.induceFeaturesFor (trainingData, false, false); if (testingData != null) klfi.induceFeaturesFor (testingData, false, false); logger.info ("MCMaxEnt FeatureSelection now includes "+globalFS.cardinality()+" features"); klfi = null;
RankedFeatureVector.Factory gainFactory = null; gainFactory = new InfoGain.Factory(); fi = new FeatureInducer (gainFactory, ilist, 10); fi.induceFeaturesFor(ilist, false, false); if (useFeatureInduction.value()) { System.out.println("\n\nINDUCING FEATURES FOR TEST INSTANCES"); fi.induceFeaturesFor(itestlist, false, false);
RankedFeatureVector.Factory gainFactory = null; gainFactory = new InfoGain.Factory(); fi = new FeatureInducer (gainFactory, ilist, 10); fi.induceFeaturesFor(ilist, false, false); if (useFeatureInduction.value()) { System.out.println("\n\nINDUCING FEATURES FOR TEST INSTANCES"); fi.induceFeaturesFor(itestlist, false, false);
RankedFeatureVector.Factory gainFactory = null; gainFactory = new InfoGain.Factory(); fi = new FeatureInducer (gainFactory, ilist, 10); fi.induceFeaturesFor(ilist, false, false); if (useFeatureInduction.value()) { System.out.println("\n\nINDUCING FEATURES FOR TEST INSTANCES"); fi.induceFeaturesFor(itestlist, false, false);
RankedFeatureVector.Factory gainFactory = null; gainFactory = new InfoGain.Factory(); fi = new FeatureInducer (gainFactory, ilist, 10); fi.induceFeaturesFor(ilist, false, false); if (useFeatureInduction.value()) { System.out.println("\n\nINDUCING FEATURES FOR TEST INSTANCES"); fi.induceFeaturesFor(itestlist, false, false);