public void apply(Example example) { if (applicable(example)) { double weight = 1.0d; if (example.getAttributes().getWeight() != null) { weight = example.getWeight(); } coveredWeight += weight; if (example.getLabel() == example.getAttributes().getLabel().getMapping().getPositiveIndex()) { positiveWeight += weight; } } }
protected void prepareWeights(ExampleSet exampleSet) { Attribute weightAttr = exampleSet.getAttributes().getWeight(); if (weightAttr == null) { this.oldWeights = null; com.rapidminer.example.Tools.createWeightAttribute(exampleSet); } else { // Back up old weights this.oldWeights = new double[exampleSet.size()]; Iterator<Example> reader = exampleSet.iterator(); for (int i = 0; (reader.hasNext() && i < oldWeights.length); i++) { Example example = reader.next(); if (example != null) { this.oldWeights[i] = example.getWeight(); example.setWeight(1); } } } }
private BayBoostModel retrainLastWeight( BayBoostModel ensemble, ExampleSet exampleSet, Vector holdOutSet) throws OperatorException { this.prepareExtendedBatch(exampleSet); // method fits by chance int modelNum = ensemble.getNumberOfModels(); Vector<BayBoostBaseModelInfo> modelInfo = new Vector<BayBoostBaseModelInfo>(); double[] priors = ensemble.getPriors(); for (int i = 0; i < modelNum - 1; i++) { Model model = ensemble.getModel(i); ContingencyMatrix cm = ensemble.getContingencyMatrix(i); modelInfo.add(new BayBoostBaseModelInfo(model, cm)); exampleSet = model.apply(exampleSet); WeightedPerformanceMeasures.reweightExamples(exampleSet, cm, false); } Model latestModel = ensemble.getModel(modelNum - 1); exampleSet = latestModel.apply(exampleSet); // quite ugly: double[] weights = new double[holdOutSet.size()]; Iterator it = holdOutSet.iterator(); int index = 0; while (it.hasNext()) { Example example = (Example) it.next(); weights[index++] = example.getWeight(); } Iterator<Example> reader = exampleSet.iterator(); while (reader.hasNext()) { reader.next().setWeight(0); } it = holdOutSet.iterator(); index = 0; while (it.hasNext()) { Example example = (Example) it.next(); example.setWeight(weights[index++]); } WeightedPerformanceMeasures wp = new WeightedPerformanceMeasures(exampleSet); modelInfo.add(new BayBoostBaseModelInfo(latestModel, wp.getContingencyMatrix())); return new BayBoostModel(exampleSet, modelInfo, priors); }
public void reinitOnlineCounting(ExampleSet exampleSet) { // counting one time all class weights labelAttribute = exampleSet.getAttributes().getLabel(); weightAttribute = exampleSet.getAttributes().getWeight(); totalLabelWeights = new double[labelAttribute.getMapping().size()]; totalWeight = 0d; if (exampleSet.getAttributes().getWeight() != null) { for (Example example : exampleSet) { double weight = example.getWeight(); totalLabelWeights[(int) example.getValue(labelAttribute)] += weight; } } else { for (Example example : exampleSet) { totalLabelWeights[(int) example.getValue(labelAttribute)] += 1d; } } for (int i = 0; i < totalLabelWeights.length; i++) { totalWeight += totalLabelWeights[i]; } // resetting online counter for subtraction labelWeights = new double[labelAttribute.getMapping().size()]; weight = 0; }