/** {@inheritDoc} */ public String toString() { final StringBuilder buf = new StringBuilder("{"); forEachEntry( new TObjectDoubleProcedure<K>() { private boolean first = true; public boolean execute( K key, double value ) { if ( first ) first = false; else buf.append( "," ); buf.append( key ).append( "=" ).append( value ); return true; } }); buf.append( "}" ); return buf.toString(); } } // TObjectDoubleHashMap
@Override public void addInplace(final KeyedParameters<KEY> other) { other.paramsMap.forEachEntry(new TObjectDoubleProcedure<KEY>() { @Override public boolean execute(KEY key, double value) { paramsMap.adjustOrPutValue(key, value, value); return true; } }); }
@Override public void multiplyInplace(final KeyedParameters<KEY> other) { paramsMap.forEachEntry(new TObjectDoubleProcedure<KEY>() { @Override public boolean execute(KEY key, double value) { if (other.contains(key)) { paramsMap.put(key, other.get(key) * value); } return true; } }); }
@Override public void multiplyInplace(final double value) { paramsMap.forEachEntry(new TObjectDoubleProcedure<KEY>() { @Override public boolean execute(KEY key, double v) { paramsMap.put(key, value * v); return true; } }); }
@Override public void addInplace(final double value) { paramsMap.forEachEntry(new TObjectDoubleProcedure<KEY>() { @Override public boolean execute(KEY key, double v) { paramsMap.put(key, value * v); return true; } }); }
@Override public void multiplyInplace(final KeyedParameters<KEY> other) { paramsMap.forEachEntry(new TObjectDoubleProcedure<KEY>() { @Override public boolean execute(KEY key, double value) { if (other.contains(key)) { paramsMap.put(key, other.get(key) * value); } return true; } }); }
@Override public void addInplace(final double value) { paramsMap.forEachEntry(new TObjectDoubleProcedure<KEY>() { @Override public boolean execute(KEY key, double v) { paramsMap.put(key, value * v); return true; } }); }
@Override public void addInplace(final KeyedParameters<KEY> other) { other.paramsMap.forEachEntry(new TObjectDoubleProcedure<KEY>() { @Override public boolean execute(KEY key, double value) { paramsMap.adjustOrPutValue(key, value, value); return true; } }); }
@Override public void multiplyInplace(final double value) { paramsMap.forEachEntry(new TObjectDoubleProcedure<KEY>() { @Override public boolean execute(KEY key, double v) { paramsMap.put(key, value * v); return true; } }); }
/** {@inheritDoc} */ public String toString() { final StringBuilder buf = new StringBuilder("{"); forEachEntry( new TObjectDoubleProcedure<K>() { private boolean first = true; public boolean execute( K key, double value ) { if ( first ) first = false; else buf.append( "," ); buf.append( key ).append( "=" ).append( value ); return true; } }); buf.append( "}" ); return buf.toString(); } } // TObjectDoubleHashMap
/** {@inheritDoc} */ public String toString() { final StringBuilder buf = new StringBuilder("{"); forEachEntry( new TObjectDoubleProcedure<K>() { private boolean first = true; public boolean execute( K key, double value ) { if ( first ) first = false; else buf.append( "," ); buf.append( key ).append( "=" ).append( value ); return true; } }); buf.append( "}" ); return buf.toString(); } } // TObjectDoubleHashMap
/** {@inheritDoc} */ public String toString() { final StringBuilder buf = new StringBuilder("{"); forEachEntry( new TObjectDoubleProcedure<K>() { private boolean first = true; public boolean execute( K key, double value ) { if ( first ) first = false; else buf.append( "," ); buf.append( key ).append( "=" ).append( value ); return true; } }); buf.append( "}" ); return buf.toString(); } } // TObjectDoubleHashMap
/** {@inheritDoc} */ @Override public String toString() { final StringBuilder buf = new StringBuilder("{"); forEachEntry( new TObjectDoubleProcedure<K>() { private boolean first = true; @Override public boolean execute( K key, double value ) { if ( first ) first = false; else buf.append( "," ); buf.append( key ).append( "=" ).append( value ); return true; } }); buf.append( "}" ); return buf.toString(); } } // TObjectDoubleHashMap
@Override public Set<CLASS> getPredictedClasses() { // predicted classes are sorted by decreasing confidence final List<ObjectDoublePair<CLASS>> toSort = new ArrayList<ObjectDoublePair<CLASS>>(); data.forEachEntry(new TObjectDoubleProcedure<CLASS>() { @Override public boolean execute(CLASS key, double confidence) { if (confidence > threshold) toSort.add(new ObjectDoublePair<CLASS>(key, confidence)); return true; } }); Collections.sort(toSort, new Comparator<ObjectDoublePair<CLASS>>() { @Override public int compare(ObjectDoublePair<CLASS> o1, ObjectDoublePair<CLASS> o2) { return -1 * Double.compare(o1.second, o2.second); } }); final Set<CLASS> keys = new LinkedHashSet<CLASS>(toSort.size()); for (final ObjectDoublePair<CLASS> p : toSort) keys.add(p.first); return keys; } }
@Override public Set<CLASS> getPredictedClasses() { // predicted classes are sorted by decreasing confidence final List<ObjectDoublePair<CLASS>> toSort = new ArrayList<ObjectDoublePair<CLASS>>(); data.forEachEntry(new TObjectDoubleProcedure<CLASS>() { @Override public boolean execute(CLASS key, double confidence) { if (confidence > threshold) toSort.add(new ObjectDoublePair<CLASS>(key, confidence)); return true; } }); Collections.sort(toSort, new Comparator<ObjectDoublePair<CLASS>>() { @Override public int compare(ObjectDoublePair<CLASS> o1, ObjectDoublePair<CLASS> o2) { return -1 * Double.compare(o1.second, o2.second); } }); final Set<CLASS> keys = new LinkedHashSet<CLASS>(toSort.size()); for (final ObjectDoublePair<CLASS> p : toSort) keys.add(p.first); return keys; } }
@Override public String getDetailReport() { final StringBuilder outBuffer = new StringBuilder(); allScores.forEachEntry(new TObjectDoubleProcedure<QUERY>() { @Override public boolean execute(QUERY a, double b) { String id; if (a instanceof Identifiable) id = ((Identifiable) a).getID(); else id = a.toString(); outBuffer.append(String.format("P@%-11s\t%10s\t%6.4f\n", N, id, b)); return true; } }); outBuffer.append("\n"); outBuffer.append(getSummaryReport()); return outBuffer.toString(); } }
@Override public String getDetailReport() { final StringBuilder outBuffer = new StringBuilder(); allScores.forEachEntry(new TObjectDoubleProcedure<QUERY>() { @Override public boolean execute(QUERY a, double b) { String id; if (a instanceof Identifiable) id = ((Identifiable) a).getID(); else id = a.toString(); outBuffer.append(String.format("P@%-11s\t%10s\t%6.4f\n", N, id, b)); return true; } }); outBuffer.append("\n"); outBuffer.append(getSummaryReport()); return outBuffer.toString(); } }
@Override public TObjectDoubleHashMap<MolecularFormula> recombinate(TObjectDoubleHashMap<MolecularFormula> source, double normalizationConstant) { final ArrayList<MolecularFormula> losses = new ArrayList<MolecularFormula>(source.keySet().size()); source.forEachEntry(new TObjectDoubleProcedure<MolecularFormula>() { @Override public boolean execute(MolecularFormula a, double b) { if (b >= 0) losses.add(a); return true; } }); final TObjectDoubleHashMap<MolecularFormula> recs = new TObjectDoubleHashMap<MolecularFormula>(source.size() * source.size() * source.size()); List<MolecularFormula> src = new ArrayList<MolecularFormula>(losses); final double gamma = 10; for (int i = 2; i <= 3; ++i) { final double score = Math.log10(gamma / i); final ArrayList<MolecularFormula> newSrc = new ArrayList<MolecularFormula>(); for (MolecularFormula f : losses) { for (MolecularFormula g : src) { newSrc.add(f.add(g)); } } src = newSrc; for (MolecularFormula f : src) recs.put(f, score); } return recs; }
@Override public <G, D, L> void exportParameters(final ParameterHelper helper, final DataDocument<G, D, L> document, final D dictionary) { final D common = document.newDictionary(); commonFragments.forEachEntry(new TObjectDoubleProcedure<MolecularFormula>() { @Override public boolean execute(MolecularFormula a, double b) { document.addToDictionary(common, a.toString(), b); return true; } }); document.addDictionaryToDictionary(dictionary, "fragments", common); document.addToDictionary(dictionary, "normalization", normalization); if (recombinator != null) document.addToDictionary(dictionary, "recombinator", helper.wrap(document, recombinator)); }