public RankedFeatureVector newRankedFeatureVector (InstanceList ilist) { return new InfoGain (ilist); } }
public MaxEnt trainClassifier (InstanceList ilist, String correct, String incorrect) { this.meClassifier = (MaxEnt) meTrainer.train (ilist); this.pipe = ilist.getPipe (); this.correct = correct; this.incorrect = incorrect; InfoGain ig = new InfoGain (ilist); int igl = Math.min (30, ig.numLocations()); for (int i = 0; i < igl; i++) System.out.println ("InfoGain["+ig.getObjectAtRank(i)+"]="+ig.getValueAtRank(i)); return this.meClassifier; }
/** Train underlying classifier on <code>ilist</code>. Assumes ilist has targst <code>correct</code> or <code>incorrect</code>. @param ilist training list to build correct/incorrect classifier @param correct "correct" label @param incorrect "incorrect" label */ public MaxEnt trainClassifier (InstanceList ilist, String correct, String incorrect) { this.meClassifier = (MaxEnt) meTrainer.train (ilist); this.pipe = ilist.getPipe (); this.correct = correct; this.incorrect = incorrect; InfoGain ig = new InfoGain (ilist); int igl = Math.min (30, ig.numLocations()); for (int i = 0; i < igl; i++) System.out.println ("InfoGain["+ig.getObjectAtRank(i)+"]="+ig.getValueAtRank(i)); return this.meClassifier; }
public PerLabelInfoGain (InstanceList ilist) { double[][] pcig = calcPerLabelInfoGains (ilist); Alphabet v = ilist.getDataAlphabet(); int numClasses = ilist.getTargetAlphabet().size(); ig = new InfoGain[numClasses]; for (int i = 0; i < numClasses; i++) ig[i] = new InfoGain (v, pcig[i]); }
public Node (InstanceList ilist, Node parent, FeatureSelection fs) { InfoGain ig = new InfoGain (ilist); this.featureIndex = ig.getMaxValuedIndexIn (fs); this.infoGain = ig.value(featureIndex); this.ilist = ilist; this.dictionary = ilist.getDataAlphabet(); this.parent = parent; this.labeling = ig.getBaseLabelDistribution(); this.labelEntropy = ig.getBaseEntropy(); this.child0 = this.child1 = null; }
InfoGain ig = new InfoGain (ilist); for (int i = 0; i < printInfogain.value; i++) System.out.println (""+i+" "+ig.getObjectAtRank(i));
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); }