private double[][] optimizeQ(InstanceList data, Classifier p, boolean firstIter) { int numLabels = data.getTargetAlphabet().size(); double[][] base; if (firstIter) { base = null; } else { base = new double[data.size()][numLabels]; for (int ii = 0; ii < data.size(); ii++) { p.classify(data.get(ii)).getLabelVector().addTo(base[ii]); } } PRAuxClassifierOptimizable optimizable = new PRAuxClassifierOptimizable(data,base,q); LimitedMemoryBFGS bfgs = new LimitedMemoryBFGS(optimizable); try { bfgs.optimize(); } catch (Exception e) { e.printStackTrace(); } bfgs.reset(); try { bfgs.optimize(); } catch (Exception e) { e.printStackTrace(); } return base; } }
private double[][] optimizeQ(InstanceList data, Classifier p, boolean firstIter) { int numLabels = data.getTargetAlphabet().size(); double[][] base; if (firstIter) { base = null; } else { base = new double[data.size()][numLabels]; for (int ii = 0; ii < data.size(); ii++) { p.classify(data.get(ii)).getLabelVector().addTo(base[ii]); } } PRAuxClassifierOptimizable optimizable = new PRAuxClassifierOptimizable(data,base,q); LimitedMemoryBFGS bfgs = new LimitedMemoryBFGS(optimizable); try { bfgs.optimize(); } catch (Exception e) { e.printStackTrace(); } bfgs.reset(); try { bfgs.optimize(); } catch (Exception e) { e.printStackTrace(); } return base; } }
private double[][] optimizeQ(InstanceList data, Classifier p, boolean firstIter) { int numLabels = data.getTargetAlphabet().size(); double[][] base; if (firstIter) { base = null; } else { base = new double[data.size()][numLabels]; for (int ii = 0; ii < data.size(); ii++) { p.classify(data.get(ii)).getLabelVector().addTo(base[ii]); } } PRAuxClassifierOptimizable optimizable = new PRAuxClassifierOptimizable(data,base,q); LimitedMemoryBFGS bfgs = new LimitedMemoryBFGS(optimizable); try { bfgs.optimize(); } catch (Exception e) { e.printStackTrace(); } bfgs.reset(); try { bfgs.optimize(); } catch (Exception e) { e.printStackTrace(); } return base; } }
public Classification classify (Instance instance) { int numLabels = ensemble[0].getLabelAlphabet().size(); double[] scores = new double[numLabels]; // Run each classifier on the instance, summing each one's per-class score, with a weight for (int i = 0; i < ensemble.length; i++) { Classification c = ensemble[i].classify(instance); c.getLabelVector().addTo(scores, weights[i]); } // Exponentiate and normalize scores expNormalize (scores); return new Classification (instance, this, new LabelVector (ensemble[0].getLabelAlphabet(), scores)); }
public Classification classify (Instance instance) { int numLabels = ensemble[0].getLabelAlphabet().size(); double[] scores = new double[numLabels]; // Run each classifier on the instance, summing each one's per-class score, with a weight for (int i = 0; i < ensemble.length; i++) { Classification c = ensemble[i].classify(instance); c.getLabelVector().addTo(scores, weights[i]); } // Exponentiate and normalize scores expNormalize (scores); return new Classification (instance, this, new LabelVector (ensemble[0].getLabelAlphabet(), scores)); }
public Classification classify (Instance instance) { int numLabels = ensemble[0].getLabelAlphabet().size(); double[] scores = new double[numLabels]; // Run each classifier on the instance, summing each one's per-class score, with a weight for (int i = 0; i < ensemble.length; i++) { Classification c = ensemble[i].classify(instance); c.getLabelVector().addTo(scores, weights[i]); } // Exponentiate and normalize scores expNormalize (scores); return new Classification (instance, this, new LabelVector (ensemble[0].getLabelAlphabet(), scores)); }