/** * @return the index-ed datum */ @Override public Datum<L, F> getDatum(int index) { return new BasicDatum<>(featureIndex.objects(data[index]), labelIndex.get(labels[index])); }
/** * @return the index-ed datum */ @Override public RVFDatum<L, F> getRVFDatum(int index) { ClassicCounter<F> c = new ClassicCounter<>(); for (F key : featureIndex.objects(data[index])) { c.incrementCount(key); } return new RVFDatum<>(c, labelIndex.get(labels[index])); }
for (int i = testMin; i < testMax; i++) { score -= c.logProbabilityOf(new BasicDatum<>(featureIndex.objects(data[i]))).getCount(labelIndex.get(labels[i]));
/** * @return the index-ed datum */ @Override public Datum<L, F> getDatum(int index) { return new BasicDatum<>(featureIndex.objects(data[index]), labelIndex.get(labels[index])); }
/** * @return the index-ed datum */ @Override public Datum<L, F> getDatum(int index) { return new BasicDatum<L, F>(featureIndex.objects(data[index]), labelIndex.get(labels[index])); }
/** * @return the index-ed datum */ @Override public Datum<L, F> getDatum(int index) { return new BasicDatum<L, F>(featureIndex.objects(data[index]), labelIndex.get(labels[index])); }
/** * @return the index-ed datum */ @Override public RVFDatum<L, F> getRVFDatum(int index) { ClassicCounter<F> c = new ClassicCounter<>(); for (F key : featureIndex.objects(data[index])) { c.incrementCount(key); } return new RVFDatum<>(c, labelIndex.get(labels[index])); }
/** * @return the index-ed datum */ @Override public RVFDatum<L, F> getRVFDatum(int index) { ClassicCounter<F> c = new ClassicCounter<F>(); for (F key : featureIndex.objects(data[index])) { c.incrementCount(key); } return new RVFDatum<L, F>(c, labelIndex.get(labels[index])); }
/** * @return the index-ed datum */ @Override public RVFDatum<L, F> getRVFDatum(int index) { ClassicCounter<F> c = new ClassicCounter<F>(); for (F key : featureIndex.objects(data[index])) { c.incrementCount(key); } return new RVFDatum<L, F>(c, labelIndex.get(labels[index])); }
public Double apply(Double trialSigma) { double score = 0.0; double sumScore = 0.0; int foldSize, nbCV; System.err.println("Trying sigma = " + trialSigma); //test if enough training data if (data.length >= folds) { foldSize = data.length / folds; nbCV = folds; } else { //leave-one-out foldSize = 1; nbCV = data.length; } for (int j = 0; j < nbCV; j++) { //System.out.println("CV j: "+ j); int testMin = j * foldSize; int testMax = testMin + foldSize; LinearClassifier<L, F> c = new LinearClassifier<L, F>(weights(data, labels, testMin, testMax, trialSigma, foldSize), featureIndex, labelIndex); for (int i = testMin; i < testMax; i++) { //System.out.println("test i: "+ i + " "+ new BasicDatum(featureIndex.objects(data[i]))); score -= c.logProbabilityOf(new BasicDatum<L, F>(featureIndex.objects(data[i]))).getCount(labelIndex.get(labels[i])); } //System.err.printf("%d: %8g\n", j, score); sumScore += score; } System.err.printf(": %8g\n", sumScore); return sumScore; } };
@Override public Double apply(Double trialSigma) { double score = 0.0; double sumScore = 0.0; int foldSize, nbCV; System.err.println("Trying sigma = " + trialSigma); //test if enough training data if (data.length >= folds) { foldSize = data.length / folds; nbCV = folds; } else { //leave-one-out foldSize = 1; nbCV = data.length; } for (int j = 0; j < nbCV; j++) { //System.out.println("CV j: "+ j); int testMin = j * foldSize; int testMax = testMin + foldSize; LinearClassifier<L, F> c = new LinearClassifier<L, F>(weights(data, labels, testMin, testMax, trialSigma, foldSize), featureIndex, labelIndex); for (int i = testMin; i < testMax; i++) { //System.out.println("test i: "+ i + " "+ new BasicDatum(featureIndex.objects(data[i]))); score -= c.logProbabilityOf(new BasicDatum<L, F>(featureIndex.objects(data[i]))).getCount(labelIndex.get(labels[i])); } //System.err.printf("%d: %8g%n", j, score); sumScore += score; } System.err.printf(": %8g%n", sumScore); return sumScore; } };
for (int i = testMin; i < testMax; i++) { score -= c.logProbabilityOf(new BasicDatum<>(featureIndex.objects(data[i]))).getCount(labelIndex.get(labels[i]));