@Override public int hashCode() { int result = 1451; for (Entry e : this) { result = 757 * result + e.hashCode(); } return result; }
public double innerProduct(FeatureVector other) { double result = 0.0; for (FeatureVector.Entry entry : other) { result += this.get(entry.index) * entry.value; } return result; }
private void compress() throws InvalidFeatureVectorValueException { if (!(kernel instanceof LinearKernel)) return; FeatureVector newFV = new SparseFeatureVector(); for (SupportVector sv : supportVectors) { FeatureVector fv = new SparseFeatureVector(sv.featureVector); fv.multiply(sv.alpha_y); newFV.add(fv); } SupportVector newSVs[] = { new SupportVector(1, newFV) }; supportVectors = newSVs; }
@Override public double evaluate(FeatureVector fv1, FeatureVector fv2) { return fv1.innerProduct(fv2); }
public Entry next() { int index = subIterator.nextIndex(); Double value = subIterator.next(); moveToNext(); return new FeatureVector.Entry(index, value.doubleValue()); }
public SparseFeatureVector(FeatureVector fv) throws InvalidFeatureVectorValueException { this(); for (FeatureVector.Entry entry : fv) { this.set(entry.index, entry.value); } }
public java.util.Iterator<Entry> iterator() { return new Iterator(this.values); }
public java.util.Iterator<Entry> iterator() { return new Iterator(features); }
public Iterator(List<Double> features) { currentIndex = 0; subIterator = features.listIterator(); moveToNext(); }
private void compress() throws InvalidFeatureVectorValueException { if (!(kernel instanceof LinearKernel)) return; FeatureVector newFV = new SparseFeatureVector(); for (SupportVector sv : supportVectors) { FeatureVector fv = new SparseFeatureVector(sv.featureVector); fv.multiply(sv.alpha_y); newFV.add(fv); } SupportVector newSVs[] = { new SupportVector(1, newFV) }; supportVectors = newSVs; }
@Override public double evaluate(FeatureVector fv1, FeatureVector fv2) { return fv1.innerProduct(fv2); }
public double innerProduct(FeatureVector other) { double result = 0.0; for (FeatureVector.Entry entry : this) { result += entry.value * other.get(entry.index); } return result; } }
private double twonorm_sq(FeatureVector fv) { return fv.innerProduct(fv); }
private double twonorm_sq(FeatureVector fv) { return fv.innerProduct(fv); }
@Override public double evaluate(FeatureVector fv1, FeatureVector fv2) { return Math.pow(s * fv1.innerProduct(fv2) + c, degree); }
@Override public double evaluate(FeatureVector fv1, FeatureVector fv2) { return Math.pow(s * fv1.innerProduct(fv2) + c, degree); }
@Override public double evaluate(FeatureVector fv1, FeatureVector fv2) { return Math.tanh(s * fv1.innerProduct(fv2) + c); }
@Override public double evaluate(FeatureVector fv1, FeatureVector fv2) { return Math.tanh(s * fv1.innerProduct(fv2) + c); }