Examples of TIntFloatIterator


Examples of gnu.trove.iterator.TIntFloatIterator

   * @return
   */
  public float dotProduct(HashSparseVector sv) {
    float v =0f;
    if(sv.size() < data.size()){
      TIntFloatIterator it = sv.data.iterator();     
      while(it.hasNext()){
        it.advance();
        v += data.get(it.key())*it.value();
      }
    }else{
      TIntFloatIterator it = data.iterator();     
      while(it.hasNext()){
        it.advance();
        v += sv.data.get(it.key())*it.value();
      }
    }
    return v;
  }
View Full Code Here

Examples of gnu.trove.iterator.TIntFloatIterator

   * @see org.fnlp.ml.types.sv.ISparseVector#dotProduct(float[])
   */
  @Override
  public float dotProduct(float[] vector) {
    float v =0f;
    TIntFloatIterator it = data.iterator();     
    while(it.hasNext()){
      it.advance();
      v += vector[it.key()]*it.value();
    }
    return v;
  }
View Full Code Here

Examples of gnu.trove.iterator.TIntFloatIterator

  /* (non-Javadoc)
   * @see org.fnlp.ml.types.sv.ISparseVector#l2Norm2()
   */
  public float l2Norm2() {
    TIntFloatIterator it = data.iterator();
    float norm = 0f;
    while(it.hasNext()){
      it.advance();
      norm += it.value()*it.value();
    }
    return norm;
  }
View Full Code Here

Examples of gnu.trove.iterator.TIntFloatIterator

  /**
   *
   * @param c
   */
  public void scaleDivide(float c) {
    TIntFloatIterator it = data.iterator();
    while(it.hasNext()){
      it.advance();
      float v = it.value()/c;
      data.put(it.key(), v);
    }

  }
View Full Code Here

Examples of gnu.trove.iterator.TIntFloatIterator

   * @param sv2
   * @return
   */
  public static float distanceEuclidean(HashSparseVector sv1 ,HashSparseVector sv2) {
    float dist = 0.0f;
    TIntFloatIterator it1 = sv1.data.iterator();
    TIntFloatIterator it2 = sv2.data.iterator();
    int increa = 0;
    while(it1.hasNext()&&it2.hasNext()){
      if(increa==0){
        it1.advance();
        it2.advance();
      }else if(increa==1){
        it1.advance();
      }else if(increa==2){
        it2.advance();
      }
      if(it1.key()<it2.key()){
        dist += it1.value()*it1.value();
        increa = 1;
      }else if(it1.key()>it2.key()){
        dist += it2.value()*it2.value();
        increa = 2;
      }else{
        float t = it1.value() - it2.value();
        dist += t*t;
        increa = 0;
      }
    }
    while(it1.hasNext()){
      it1.advance();
      dist += it1.value()*it1.value();     
    }
    while(it2.hasNext()){
      it2.advance();
      dist += it2.value()*it2.value();

    }
    return dist;
  }
View Full Code Here

Examples of gnu.trove.iterator.TIntFloatIterator

  }


  public String toString(){
    StringBuilder sb = new StringBuilder();
    TIntFloatIterator it = data.iterator();
    while(it.hasNext()){
      it.advance();
      sb.append(it.key());
      sb.append(":");
      sb.append(it.value());
      if(it.hasNext())
        sb.append(", ");
    }
    return sb.toString();
  }
View Full Code Here

Examples of gnu.trove.iterator.TIntFloatIterator

      return null;
    }
    HashSparseVector data = (HashSparseVector) obj;
    if(fs!=null)
      data=fs.select(data);
    TIntFloatIterator it = data.data.iterator();
    float feaSize=tf.getFeatureSize();
    while (it.hasNext()) {
      it.advance();
      if(it.key()==0)
        continue;
      int feature=it.key();
      for(int type=0;type<typeSize;type++){
        float itemF=tf.getItemFrequency(feature, type);
        float typeF=tf.getTypeFrequency(type);
        score[type]+=it.value()*Math.log((itemF+0.1)/(typeF+feaSize));
      }
    }
   
    Predict<Integer> res=new Predict<Integer>(n);
    for(int type=0;type<typeSize;type++)
View Full Code Here

Examples of gnu.trove.iterator.TIntFloatIterator

    private float distanceEuclidean(int n, HashSparseVector sv, float baseDistance) {
        HashSparseVector center = classCenter.get(n);
        int count = classCount.get(n);
        float dist = baseDistance / (count * count);
        TIntFloatHashMap data = center.data;
        TIntFloatIterator it = sv.data.iterator();
        while (it.hasNext()) {
            it.advance();
            int key = it.key();
            if (!data.containsKey(key)) {
                dist += it.value() * it.value();
            }
            else {
                float temp = data.get(key) / count;
                dist -= temp * temp;
                dist += (it.value() - temp) * (it.value() - temp);
            }
        }
        return dist;
    }
View Full Code Here

Examples of gnu.trove.iterator.TIntFloatIterator

        return dist;
    }

    float distanceEuclidean(HashSparseVector sv1 ,HashSparseVector sv2) {
        float dist = 0.0f;
        TIntFloatIterator it1 = sv1.data.iterator();
        TIntFloatIterator it2 = sv2.data.iterator();
        if (it1.hasNext() && it2.hasNext()) {
            it1.advance();
            it2.advance();
        }
        while (it1.hasNext() && it2.hasNext()) {
            if(it1.key()<it2.key()){
                dist += it1.value()*it1.value();
                it1.advance();
            }else if(it1.key()>it2.key()){
                dist += it2.value()*it2.value();
                it2.advance();
            }else{
                float t = it1.value() - it2.value();
                dist += t*t;
                it1.advance();
                it2.advance();
            }
        }
        while (it1.hasNext()) {
            it1.advance();
            dist += it1.value() * it1.value();
        }
        while (it2.hasNext()) {
            it2.advance();
            dist += it2.value() * it2.value();
        }
        return dist;
    }
View Full Code Here

Examples of gnu.trove.iterator.TIntFloatIterator

    }

    private void updateBaseDist(int classid, HashSparseVector vector) {
        float base = baseDistList.get(classid);
        TIntFloatHashMap center = classCenter.get(classid).data;
        TIntFloatIterator it =  vector.data.iterator();
        while (it.hasNext()) {
            it.advance();
            if (!center.containsKey(it.key())) {
                base += it.value() * it.value();
            }
            else {
                float temp = center.get(it.key());
                base -= temp * temp;
                base += (it.value() - temp) * (it.value() - temp);
            }
        }
        baseDistList.set(classid, base);
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.