コード例 #1
0
ファイル: ALGControl.java プロジェクト: jeppe/LinUCB
  public static void executePCA(Preprocessing pr) throws Exception {
    // Using PCA from EJML
    // PrincipleComponentAnalysis pca = new PrincipleComponentAnalysis();
    // pca.setup(Environment.hm_bookmark_tag.size(),
    // Environment.hm_token_weight.size());
    // BufferedReader br = new BufferedReader(new FileReader(
    // new File("matrix")));
    // String s = "";
    // String[] arrStr;
    // double[] nums = null;
    // while ((s = br.readLine()) != null) {
    // arrStr = s.split("\t");
    // nums = new double[arrStr.length - 1];
    // for (int i = 0; i < nums.length; i++) {
    // nums[i] = Double.parseDouble(arrStr[i + 1]);
    // }
    // pca.addSample(nums);
    // }
    // pca.computeBasis(Environment.featureSize);
    // System.out.println(pca.sampleToEigenSpace(nums));

    PrincipleComponentAnalysis pca = new PrincipleComponentAnalysis();
    // int bm_num = 68479;
    // int tg_num = 11619;
    pca.setup(Environment.hm_bookmark_tag.size(), Environment.hm_token_weight.size());
    File mxIN = new File("Output4Stats/matrix");
    File mxOUT = new File("Output4Stats/norm_matrix_ejml");
    BufferedReader br = new BufferedReader(new FileReader(mxIN));
    String s = "";
    String[] arrStr;
    double[] nums = null;
    System.out.println("Start reading matrix...");
    while ((s = br.readLine()) != null) {
      arrStr = s.split("\t");
      nums = new double[arrStr.length - 1];
      for (int i = 0; i < nums.length; i++) {
        nums[i] = Double.parseDouble(arrStr[i + 1]);
      }
      pca.addSample(nums);
    }
    br.close();

    System.out.println("Start PCA...");
    pca.computeBasis(Environment.featureSize);

    // Write down to file
    System.out.println("Start writing norm matrix...");
    pr.writeNormMatrix(pca, mxIN, mxOUT);
  }