public double[] getVotesForInstance(Instance i) { double[] votes = new double[i.numClasses()]; votes[(int) lastSeenClass] = 1.0; return votes; }
public void createRoot(Instance instance) { double[] arrayCounter = new double[instance.numClasses()]; Arrays.fill(arrayCounter, 0); this.treeRoot = newLeafNode(null, 0, 0, arrayCounter, instance); }
@Override public void createRoot(Instance instance) { double[] arrayCont = new double[instance.numClasses()]; Arrays.fill(arrayCont, 0); this.treeRoot = newLeafNode(null, 0, 0, arrayCont, instance); }
@Override public double[] getVotesForInstance(Instance inst) { double[] Pr = new double[inst.numClasses()]; for (int i = 0; i < this.experts.size(); i++) { double[] pr = this.experts.get(i).getVotesForInstance(inst); int yHat = Utils.maxIndex(pr); Pr[yHat] += this.weights.get(i); } // for Utils.normalize(Pr); return Pr; }
private void labelSelSampling(double incomingPosterior, Instance inst) { double p = Math.abs(incomingPosterior - 1.0 / (inst.numClasses())); double budget = this.budgetOption.getValue() / (this.budgetOption.getValue() + p); if (this.classifierRandom.nextDouble() < budget) { this.classifier.trainOnInstance(inst); this.costLabeling++; this.lastLabelAcq += 1; } }
@Override public double[] getVotesForInstance(Instance inst) { double[] votes = new double[inst.numClasses()]; if (this.reset == false) { for (int i = 0; i < votes.length; i++) { votes[i] = prediction(inst, i); } try { Utils.normalize(votes); } catch (Exception e) { // ignore all zero votes error } } return votes; }
@Override public void trainOnInstanceImpl(Instance inst) { //Init Perceptron if (this.reset == true) { this.reset = false; this.numberAttributes = inst.numAttributes(); this.numberClasses = inst.numClasses(); this.weightAttribute = new double[inst.numClasses()][inst.numAttributes()]; for (int i = 0; i < inst.numClasses(); i++) { for (int j = 0; j < inst.numAttributes(); j++) { weightAttribute[i][j] = 0.2 * this.classifierRandom.nextDouble() - 0.1; } } } double[] preds = new double[inst.numClasses()]; for (int i = 0; i < inst.numClasses(); i++) { preds[i] = prediction(inst, i); } double learningRatio = learningRatioOption.getValue(); int actualClass = (int) inst.classValue(); for (int i = 0; i < inst.numClasses(); i++) { double actual = (i == actualClass) ? 1.0 : 0.0; double delta = (actual - preds[i]) * preds[i] * (1 - preds[i]); for (int j = 0; j < inst.numAttributes() - 1; j++) { this.weightAttribute[i][j] += learningRatio * delta * inst.valueInputAttribute(j); } this.weightAttribute[i][inst.numAttributes() - 1] += learningRatio * delta; } }
public double[] getVotesForInstanceBinary(Instance inst) { double combinedVote[] = new double[(int) inst.numClasses()]; Instance weightedInst = (Instance) inst.copy(); if (this.initMatrixCodes == false) { for (int i = 0; i < this.ensemble.length; i++) { //Replace class by OC weightedInst.setClassValue((double) this.matrixCodes[i][(int) inst.classValue()]); double vote[]; vote = this.ensemble[i].getVotesForInstance(weightedInst); //Binary Case int voteClass = 0; if (vote.length == 2) { voteClass = (vote[1] > vote[0] ? 1 : 0); } //Update votes for (int j = 0; j < inst.numClasses(); j++) { if (this.matrixCodes[i][j] == voteClass) { combinedVote[j] += 1; } } } } return combinedVote; }
public double[] getVotesForInstanceBinary(Instance inst) { double combinedVote[] = new double[(int) inst.numClasses()]; Instance weightedInst = (Instance) inst.copy(); if (this.initMatrixCodes == false) { for (int i = 0; i < this.ensemble.length; i++) { //Replace class by OC weightedInst.setClassValue((double) this.matrixCodes[i][(int) inst.classValue()]); double vote[]; vote = this.ensemble[i].getVotesForInstance(weightedInst); //Binary Case int voteClass = 0; if (vote.length == 2) { voteClass = (vote[1] > vote[0] ? 1 : 0); } //Update votes for (int j = 0; j < inst.numClasses(); j++) { if (this.matrixCodes[i][j] == voteClass) { combinedVote[j] += getEnsembleMemberWeight(i); } } } } return combinedVote; }
int instAttIndex = modelAttIndexToInstanceAttIndex(s, inst); if(instance.attribute(instAttIndex).isNumeric()){ for(int i=0; i<inst.numClasses(); i++){ rl.attributeStatisticsSupervised.get(s).add(0.0); rl.squaredAttributeStatisticsSupervised.get(s).add(1.0);
@Override public void trainOnInstanceImpl(Instance inst) { this.epochs++; double[] Pr = new double[inst.numClasses()]; double maxWeight = 0.0; double weakestExpertWeight = 1.0;
@Override public void addResult(Instance inst, double[] classVotes) { double weight = inst.weight(); int trueClass = (int) inst.classValue(); if (weight > 0.0) { if (this.weightObserved == 0) { reset(inst.numClasses()); } this.weightObserved += weight; int predictedClass = Utils.maxIndex(classVotes); if (predictedClass == trueClass) { this.weightCorrect += weight; } if(rowKappa.length > 0){ this.rowKappa[predictedClass] += weight; } if (columnKappa.length > 0) { this.columnKappa[trueClass] += weight; } } if (this.lastSeenClass == trueClass) { this.weightCorrectNoChangeClassifier += weight; } this.lastSeenClass = trueClass; }
@Override public void addResult(Instance inst, double[] classVotes) { double weight = inst.weight(); int trueClass = (int) inst.classValue(); if (weight > 0.0) { if (this.weightObserved == 0) { reset(inst.numClasses()); } this.weightObserved += weight; int predictedClass = Utils.maxIndex(classVotes); if (predictedClass == trueClass) { this.weightCorrect += weight; } if(rowKappa.length > 0){ this.rowKappa[predictedClass] += weight; } if (columnKappa.length > 0) { this.columnKappa[trueClass] += weight; } } if (this.lastSeenClass == trueClass) { this.weightCorrectNoChangeClassifier += weight; } this.lastSeenClass = trueClass; }
return new double[inst.numClasses()]; ? new double[inst.numClasses()] : new double[1];
return new double[inst.numClasses()];
/** * Trains the classifier with the given instance. * * @param instance the new training instance to include in the model */ @Override public void trainOnInstanceImpl(Instance instance) { if (m_weights == null) { int length; if (instance.classAttribute().isNominal()) { length = instance.numClasses(); } else { length = 1; } m_weights = new DoubleVector[length]; m_bias = new double[length]; for (int i = 0; i < m_weights.length; i++){ m_weights[i] = new DoubleVector(); m_bias[i] = 0.0; } } for (int i = 0; i < m_weights.length; i++){ this.trainOnInstanceImpl(instance, i); } m_t++; } public void trainOnInstanceImpl(Instance instance, int classLabel) {
@Override public double[] getVotesForInstance(Instance inst) { double v[] = new double[C+1]; try { NearestNeighbourSearch search; if (this.nearestNeighbourSearchOption.getChosenIndex()== 0) { search = new LinearNNSearch(this.window); } else { search = new KDTree(); search.setInstances(this.window); } if (this.window.numInstances()>0) { Instances neighbours = search.kNearestNeighbours(inst,Math.min(kOption.getValue(),this.window.numInstances())); for(int i = 0; i < neighbours.numInstances(); i++) { v[(int)neighbours.instance(i).classValue()]++; } } } catch(Exception e) { //System.err.println("Error: kNN search failed."); //e.printStackTrace(); //System.exit(1); return new double[inst.numClasses()]; } return v; }
public void trainOnInstanceImpl(Instance inst) { if (this.reset == true) { this.m_numClasses = inst.numClasses(); double laplace = this.laplaceCorrectionOption.getValue(); int numAttributes = inst.numAttributes();
@Override public void addResult(Instance inst, double[] classVotes) { double weight = inst.weight(); int trueClass = (int) inst.classValue(); if (weight > 0.0) { if (TotalweightObserved == 0) { reset(inst.numClasses()); } this.TotalweightObserved += weight; this.weightObserved.add(weight); int predictedClass = Utils.maxIndex(classVotes); if (predictedClass == trueClass) { this.weightCorrect.add(weight); } else { this.weightCorrect.add(0); } //Add Kappa statistic information for (int i = 0; i < this.numClasses; i++) { this.rowKappa[i].add(i == predictedClass ? weight : 0); this.columnKappa[i].add(i == trueClass ? weight : 0); } if (this.lastSeenClass == trueClass) { this.weightCorrectNoChangeClassifier.add(weight); } else { this.weightCorrectNoChangeClassifier.add(0); } this.classAccuracy[trueClass].add(predictedClass == trueClass ? weight : 0.0); this.lastSeenClass = trueClass; } }
@Override public void addResult(Instance inst, double[] classVotes) { double weight = inst.weight(); int trueClass = (int) inst.classValue(); if (weight > 0.0) { if (TotalweightObserved == 0) { reset(inst.numClasses()); } this.TotalweightObserved += weight; this.weightObserved.add(weight); int predictedClass = Utils.maxIndex(classVotes); if (predictedClass == trueClass) { this.weightCorrect.add(weight); } else { this.weightCorrect.add(0); } //Add Kappa statistic information for (int i = 0; i < this.numClasses; i++) { this.rowKappa[i].add(i == predictedClass ? weight : 0); this.columnKappa[i].add(i == trueClass ? weight : 0); } if (this.lastSeenClass == trueClass) { this.weightCorrectNoChangeClassifier.add(weight); } else { this.weightCorrectNoChangeClassifier.add(0); } this.classAccuracy[trueClass].add(predictedClass == trueClass ? weight : 0.0); this.lastSeenClass = trueClass; } }