Package org.fnlp.ml.types.sv

Examples of org.fnlp.ml.types.sv.SparseMatrix


   * @param w
   * @param h
   * @return 误差
   */
  float computeObjective(SparseMatrix v, SparseMatrix w, SparseMatrix h) {
    SparseMatrix matrixWH = w.mutiplyMatrix(h);
    SparseMatrix diff = v.clone();
    diff.minus(matrixWH);
    return diff.l2Norm();

  }
View Full Code Here


    int[] dimWH = { m, n };
    int[] dimVWH = { m, n };
    int[] dimHWVWH = { r, n };

    SparseMatrix matrixWH = new SparseMatrix(dimWH);
    SparseMatrix matrixVWH = new SparseMatrix(dimVWH);
    SparseMatrix matrixHWVWH = new SparseMatrix(dimHWVWH);
    matrixWH = w.mutiplyMatrix(h);

     TLongFloatIterator itV = v.vector.iterator();

     TLongFloatIterator itH = h.vector.iterator();
    for (int i = v.vector.size(); i-- > 0;) {
      itV.advance();
      matrixVWH.set(itV.key(),
          itV.value() / (matrixWH.elementAt(itV.key()) + eps));
    }

    SparseMatrix matrixTranW = w.trans();

    SparseMatrix matrixWVWH = matrixTranW.mutiplyMatrix(matrixVWH);
    for (int i = h.vector.size(); i-- > 0;) {
      itH.advance();
      matrixHWVWH.set(itH.key(),
          itH.value() * matrixWVWH.elementAt(itH.key()));
    }
    return matrixHWVWH;
  }
View Full Code Here

  SparseMatrix updateW() {

    int[] dimVWH = { m, n };
    int[] dimWVWHH = { m, r };

    SparseMatrix matrixVWH = new SparseMatrix(dimVWH);
    SparseMatrix matrixWVWHH = new SparseMatrix(dimWVWHH);
    SparseMatrix matrixWH = w.mutiplyMatrix(h);
     TLongFloatIterator itV = v.vector.iterator();
    TLongFloatIterator itW = w.vector.iterator();
    for (int i = v.vector.size(); i-- > 0;) {
      itV.advance();
      matrixVWH.set(itV.key(),
          itV.value() / (matrixWH.elementAt(itV.key()) + eps));
    }
    SparseMatrix matrixTranH = h.trans();

    SparseMatrix matrixVWHH = matrixVWH.mutiplyMatrix(matrixTranH);
    for (int i = w.vector.size(); i-- > 0;) {
      itW.advance();
      matrixWVWHH.set(itW.key(),
          itW.value() * matrixVWHH.elementAt(itW.key()));
    }
    return matrixWVWHH;
  }
View Full Code Here

    }
  }

  public static void main(String[] args) {
    int[] dim = { 10, 10 };
    SparseMatrix matrix = new SparseMatrix(dim);
    Vector<int[]> vec = new Vector();
    for (int i = 0; i < dim[0]; i++)
      for (int j = 0; j < dim[1]; j++) {
        int[] indices = { j, i };
        vec.add(indices);
      }
    for (int i = 0; i < vec.size(); i++) {
      matrix.set(vec.get(i), i);
    }
    System.out.print("矩阵初始化结束\n");
    Long startTime = System.currentTimeMillis();
    Nmf nmf = new Nmf(1000, 0.0001f, 5, matrix);
    nmf.calc();
View Full Code Here

TOP

Related Classes of org.fnlp.ml.types.sv.SparseMatrix

Copyright © 2018 www.massapicom. 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.