Class NonnegativeMatrixFactorization

java.lang.Object
gov.nih.mipav.model.algorithms.NonnegativeMatrixFactorization

public class NonnegativeMatrixFactorization extends Object
  • Field Details

  • Constructor Details

    • NonnegativeMatrixFactorization

      public NonnegativeMatrixFactorization()
    • NonnegativeMatrixFactorization

      public NonnegativeMatrixFactorization(int functionType, Jama.Matrix V, int rank, Jama.Matrix W, Jama.Matrix H, String alg)
  • Method Details

    • test_mu

      public void test_mu()
    • run

      public void run()
    • admm_seq_conv_nmf

      public void admm_seq_conv_nmf()
    • shift_t

      public Jama.Matrix shift_t(Jama.Matrix H, int t)
    • gamma_beta

      public double gamma_beta(double beta)
    • renormalize_convNMF

      public void renormalize_convNMF(double[][][] W, Jama.Matrix H)
    • reconstruct_wh

      public void reconstruct_wh(Jama.Matrix W_concat, Jama.Matrix H_concat, double[][][] W, Jama.Matrix H, int t)
    • wlra

      public void wlra()
    • scalingWH

      public void scalingWH(Jama.Matrix W, Jama.Matrix H)
    • symm_newton

      public void symm_newton()
    • hessian_blkdiag

      public Jama.Matrix hessian_blkdiag(Jama.Matrix temp, Jama.Matrix H, int idx, boolean[][] projnorm_idx)
    • symm_halsacc

      public void symm_halsacc()
    • symm_anls

      public void symm_anls()
    • sparse_nmf

      public void sparse_nmf()
    • sparse_mu_v_nmf

      public void sparse_mu_v_nmf()
    • sc_nmf

      public void sc_nmf()
    • NNDSVD

      public void NNDSVD(Jama.Matrix W, Jama.Matrix H, Jama.Matrix A, int k, int flag)
    • norm

      public double norm(double[] v)
    • pos

      public double[] pos(double[] A)
    • neg

      public double[] neg(double[] A)
    • projfunc

      public double[] projfunc(int[] usediters, double[] s, double k1, double k2, boolean nn)
    • update_with_SC

      public Jama.Matrix update_with_SC(double[] stepsizeX_new, Jama.Matrix X, String name, double stepsizeX)
    • proj_sparse_nmf

      public void proj_sparse_nmf()
    • fastgradsparseNNLS

      public Jama.Matrix fastgradsparseNNLS(Jama.Matrix XHt, Jama.Matrix HHt, Jama.Matrix Wsrc, NonnegativeMatrixFactorization.opt options)
    • weightedgroupedsparseproj_col

      public Jama.Matrix weightedgroupedsparseproj_col(int[] numiter, Jama.Matrix X, double s, NonnegativeMatrixFactorization.opt options)
    • weightedgroupedsparseproj

      public Jama.Matrix weightedgroupedsparseproj(double[] gxpmu, int[] numiter, double[] newmu, Jama.Matrix Xorg, double s, NonnegativeMatrixFactorization.opt options)
    • wgmu

      public Jama.Matrix wgmu(double[] vgmu, double[] gradg, Jama.Matrix X, Jama.Matrix w, double mu)
    • wcheckcrit

      public void wcheckcrit(double[] xcrit, double[] maxx, double[] xa, double[] w, double precision)
    • palm_sparse_smooth_nmf

      public void palm_sparse_smooth_nmf()
    • spa

      public void spa()
    • snpa

      public void snpa()
    • semi_mu_nmf

      public void semi_mu_nmf()
    • semi_bcd_nmf

      public void semi_bcd_nmf()
    • robust_mu_nmf

      public void robust_mu_nmf()
    • rank2nmf

      public void rank2nmf()
    • projective_nmf

      public void projective_nmf()
    • vb_pro_nmf

      public void vb_pro_nmf()
    • update_U

      public void update_U(Jama.Matrix mu_U, Jama.Matrix tau_U, Jama.Matrix V, Jama.Matrix exp_U, Jama.Matrix exp_V, Jama.Matrix var_V, double[] exp_tau, double[] exp_lambdak, int k, NonnegativeMatrixFactorization.opt options)
    • update_V

      public void update_V(Jama.Matrix mu_V, Jama.Matrix tau_V, Jama.Matrix V, Jama.Matrix exp_V, Jama.Matrix exp_U, Jama.Matrix var_U, double[] exp_tau, double[] exp_lambdak, int k, NonnegativeMatrixFactorization.opt options)
    • update_lambdak

      public void update_lambdak(double[] alphak_s, double[] betak_s, Jama.Matrix exp_U, Jama.Matrix exp_V, int k, NonnegativeMatrixFactorization.opt options)
    • exponential_draw

      public double exponential_draw(double lambdax)
    • update_exp_lambdak

      public void update_exp_lambdak(double[] exp_lambdak, double[] exp_loglambdak, double[] alphak_s, double[] betak_s, int k)
    • TN_vector_expectation

      public double[] TN_vector_expectation(double[] mus, double[] taus)
    • TN_vector_variance

      public double[] TN_vector_variance(double[] mus, double[] taus)
    • update_exp

      public void update_exp(Jama.Matrix exp_A, Jama.Matrix var_A, Jama.Matrix mu_A, Jama.Matrix tau_A, int k)
    • gamma_expectation

      public double gamma_expectation(double alpha, double beta)
    • gamma_expectation

      public double[] gamma_expectation(double[] alpha, double[] beta)
    • gamma_expectation_log

      public double gamma_expectation_log(double alpha, double beta)
    • exp_square_diff

      public double exp_square_diff(Jama.Matrix V, Jama.Matrix exp_U, Jama.Matrix exp_V, Jama.Matrix var_U, Jama.Matrix var_V)
    • update_tau

      public void update_tau(double[] alpha_s, double[] beta_s, NonnegativeMatrixFactorization.opt options, Jama.Matrix V, Jama.Matrix exp_U, Jama.Matrix exp_V, Jama.Matrix var_U, Jama.Matrix var_V, int size_Omega)
    • update_exp_tau

      public void update_exp_tau(double[] exp_tau, double[] exp_logtau, double alpha_s, double beta_s)
    • prob_nmf

      public void prob_nmf()
    • hals_so_nmf

      public void hals_so_nmf()
    • dtpp_nmf

      public void dtpp_nmf()
    • alternating_onmf

      public void alternating_onmf()
    • svrmu_nmf

      public void svrmu_nmf()
    • srgmu_nmf

      public void srgmu_nmf()
    • spg_nmf

      public void spg_nmf()
    • projection_mnls

      public Jama.Matrix projection_mnls(Jama.Matrix X, Jama.Matrix B, Jama.Matrix A)
    • nesterov_mnls

      public Jama.Matrix nesterov_mnls(int[] iter, double[] alpha, Jama.Matrix X, Jama.Matrix B, Jama.Matrix A_star, int max_iter, String func_type)
    • update_alpha

      public double update_alpha(double alpha, double q)
    • g_lambda

      public double g_lambda(double L, double mu)
    • projection_precon_mnls

      public Jama.Matrix projection_precon_mnls(Jama.Matrix X, Jama.Matrix B, Jama.Matrix A)
    • smu_nmf

      public void smu_nmf()
    • sagmu_nmf

      public void sagmu_nmf()
    • calc_nls_nmf

      public Jama.Matrix calc_nls_nmf(Jama.Matrix X, Jama.Matrix W, double lambda)
    • robust_online_mu_nmf

      public void robust_online_mu_nmf()
    • online_mu_nmf

      public void online_mu_nmf()
    • incremental_mu_nmf

      public void incremental_mu_nmf()
    • asag_mu_nmf

      public void asag_mu_nmf()
    • acc_online_mu_nmf

      public void acc_online_mu_nmf()
    • recursive_nmu

      public void recursive_nmu()
    • wmedian

      public double[] wmedian(Jama.Matrix Aorig, double[] yorig)
    • sep_symm_nmtf

      public void sep_symm_nmtf()
    • spa

      public Jama.Matrix spa(int[] K, NonnegativeMatrixFactorization.info infos, Jama.Matrix Vorig, int num_col, NonnegativeMatrixFactorization.opt in_options)
    • nenmf

      public void nenmf()
    • NNLS

      public Jama.Matrix NNLS(int[] iter, Jama.Matrix Grad, Jama.Matrix Z, Jama.Matrix WtW, Jama.Matrix WtV, double tol, NonnegativeMatrixFactorization.opt options)
    • NNLS_L1

      public Jama.Matrix NNLS_L1(int[] iter, Jama.Matrix Z, Jama.Matrix WtW, Jama.Matrix WtV, double tol, NonnegativeMatrixFactorization.opt options)
    • NNLS_L2

      public Jama.Matrix NNLS_L2(int[] iter, Jama.Matrix Z, Jama.Matrix WtW, Jama.Matrix WtV, double tol, NonnegativeMatrixFactorization.opt options)
    • NNLS_MR

      public Jama.Matrix NNLS_MR(int[] iter, Jama.Matrix Z, Jama.Matrix WtW, Jama.Matrix WtV, Jama.Matrix Lp, double LpC, double tol, NonnegativeMatrixFactorization.opt options)
    • GetStopCriterion

      public double GetStopCriterion(int stop_rule, Jama.Matrix X, Jama.Matrix gradX)
    • minvol_nmf

      public void minvol_nmf()
    • FGMqpnonneg

      public Jama.Matrix FGMqpnonneg(Vector<Double> e, Jama.Matrix A, Jama.Matrix C, Jama.Matrix W0, int maxiter, int proj)
    • kl_fpa_nmf

      public void kl_fpa_nmf()
    • kl_bmd_nmf

      public void kl_bmd_nmf()
    • div_mu_partial_nmf

      public void div_mu_partial_nmf()
    • div_admm_nmf

      public void div_admm_nmf()
    • check_divergence

      public void check_divergence(NonnegativeMatrixFactorization.opt options)
    • pgd_nmf

      public void pgd_nmf()
    • update_direct_pgd

      public void update_direct_pgd(Jama.Matrix V, Jama.Matrix W, Jama.Matrix H, Jama.Matrix gradW, Jama.Matrix gradH, double[] alpha, double[] obj)
    • nnls_solver

      public Jama.Matrix nnls_solver(Jama.Matrix WtW, Jama.Matrix WtV, NonnegativeMatrixFactorization.info infos, Jama.Matrix V, Jama.Matrix W, NonnegativeMatrixFactorization.opt in_options)
    • adp_step_pgd_stop_func

      public void adp_step_pgd_stop_func(int[] stop_flag, String[] reason, NonnegativeMatrixFactorization.opt options, NonnegativeMatrixFactorization.stop_opt stop_options)
    • fro_mu_partial_nmf

      public void fro_mu_partial_nmf()
    • anls_nmf

      public void anls_nmf()
    • nnlsm_blockpivot

      public Jama.Matrix nnlsm_blockpivot(int[] success, int[] numChol, int[] numEq, Jama.Matrix A, Jama.Matrix B, int isInputProd, Jama.Matrix init)
    • nnls1_asgivens

      public double[] nnls1_asgivens(int[] success, int[] iter, Jama.Matrix A, double[] b, int overwrite, int isInputProd, double[] init)
    • nnlsm_activeset

      public Jama.Matrix nnlsm_activeset(Jama.Matrix Y, int[] success, int[] numChol, int[] numEq, Jama.Matrix A, Jama.Matrix B, int overwrite, int isInputProd, Jama.Matrix init)
    • normalEqComb

      public Jama.Matrix normalEqComb(int[] numChol, int[] numEq, Jama.Matrix AtA, Jama.Matrix AtB, int[][] PassSet)
    • sortrows

      public int[][] sortrows(int[] sortIx, int[][] rows)
    • als_nmf

      public void als_nmf()
    • HALSupdt

      public Jama.Matrix HALSupdt(Jama.Matrix Vorig, Jama.Matrix UtU, Jama.Matrix UtM, double alpha, double delta, NonnegativeMatrixFactorization.opt in_options)
    • change_inner_max_epoch

      public int change_inner_max_epoch(Jama.Matrix X, Jama.Matrix W, NonnegativeMatrixFactorization.opt options)
    • admm_nmf

      public void admm_nmf()
    • warm_restart

      public void warm_restart(Jama.Matrix V, Jama.Matrix W, Jama.Matrix H, int rank, Jama.Matrix W_prev, Jama.Matrix H_prev, Jama.Matrix W_tmp1, Jama.Matrix H_tmp1, Jama.Matrix H_tmp2, double[] rel_error, double[] beta, double[] betamax, int epoch, NonnegativeMatrixFactorization.opt options)
    • do_momentum_w

      public void do_momentum_w(Jama.Matrix W_tmp1, Jama.Matrix W, Jama.Matrix W_prev, Jama.Matrix H, Jama.Matrix H_prev, Jama.Matrix H_tmp1, double[] beta, int epoch, NonnegativeMatrixFactorization.opt options)
    • do_momentum_h

      public void do_momentum_h(Jama.Matrix H_tmp1, Jama.Matrix H_tmp2, Jama.Matrix H, Jama.Matrix H_prev, double[] beta, int epoch, NonnegativeMatrixFactorization.opt options)
    • check_momentum_setting

      public double[] check_momentum_setting(double[] betamax, NonnegativeMatrixFactorization.opt options)
    • normalize_WH

      public void normalize_WH(Jama.Matrix W_new, Jama.Matrix H_new, Jama.Matrix V, Jama.Matrix W_orig, Jama.Matrix H_orig, int rank, String type)
    • nnls_fpgm

      public Jama.Matrix nnls_fpgm(Jama.Matrix WtW, Jama.Matrix WtX, Jama.Matrix X, Jama.Matrix W, NonnegativeMatrixFactorization.opt options)
    • nnls_init

      public Jama.Matrix nnls_init(Jama.Matrix X, Jama.Matrix W, Jama.Matrix WtW, Jama.Matrix WtX)
    • nnls_orth

      public Jama.Matrix nnls_orth(Jama.Matrix M, Jama.Matrix U, Jama.Matrix Mn)
    • SimplexProj

      public Jama.Matrix SimplexProj(Jama.Matrix y)
    • SimplexColProj

      public Jama.Matrix SimplexColProj(Jama.Matrix Y)
    • fro_mu_nmf

      public void fro_mu_nmf()
    • display_info

      public void display_info(String method_name, int epoch, NonnegativeMatrixFactorization.info nmf_info, NonnegativeMatrixFactorization.opt options)
    • set_disp_frequency

      public int set_disp_frequency(NonnegativeMatrixFactorization.opt options)
    • display_stop_reason

      public void display_stop_reason(NonnegativeMatrixFactorization.opt options, String disp_name, String reason, boolean max_reached_flag)
    • check_stop_condition

      public void check_stop_condition(int[] stop_flag, String[] reason, boolean[] max_reached_flag, NonnegativeMatrixFactorization.info rev_info, int epoch, NonnegativeMatrixFactorization.info infos, NonnegativeMatrixFactorization.opt options, NonnegativeMatrixFactorization.stop_opt stop_options)
    • store_nmf_info

      public void store_nmf_info(Jama.Matrix V, Jama.Matrix W, Jama.Matrix H, Jama.Matrix R, NonnegativeMatrixFactorization.opt options, NonnegativeMatrixFactorization.info infos, int epoch, int grad_calc_count, long elapsed_time, double[] f_val, double[] optgap)
    • eval_clustering_accuracy

      public NonnegativeMatrixFactorization.accur eval_clustering_accuracy(Jama.Matrix H, int[] gnd, int classnum, int eval_num)
    • bestMap

      public int[] bestMap(int[] L1, int[] L2)
    • hungarian

      public void hungarian(int[] C, int[] T, int[][] A)
    • hmflip

      public void hmflip(int[][] A, int[] C, int[] LC, int[] LR, int[][] U, int l, int r)
    • hmreduce

      public void hmreduce(int[][] A, int[] CH, int[] RH, int[] LC, int[] LR, Vector<Integer> SLC, Vector<Integer> SLR)
    • hminiass

      public void hminiass(int[][] A, int[] C, int[][] U)
    • hminired

      public int[][] hminired(int[][] A)
    • compute_f

      public void compute_f(double[] f, double[] p, double[] r, int[] T, int[] H)
    • calc_nmi

      public double calc_nmi(int[] groundtruthAssignment, int[] algorithmAssignment)
    • calc_entropy

      public double calc_entropy(int[] assignment)
    • unique

      public int[] unique(int[] x)
    • calc_purity

      public double calc_purity(int[] groundtruthAssignment, int[] algorithmAssignment)
    • count_occurrence

      public int[] count_occurrence(int[] list)
    • MutualInfo

      public double MutualInfo(int[] L1, int[] L2)
    • log2

      public double log2(double x)
    • litekmeans

      public void litekmeans(int[][] label, Jama.Matrix center, boolean[] bCon, double[] sumD, Jama.Matrix D, Jama.Matrix X, int k, String Distance, Jama.Matrix startMatrix, int[] startVector, String Start, int maxit, int reps, int clustermaxit)
    • nmf_cost

      public double nmf_cost(Jama.Matrix V, Jama.Matrix W, Jama.Matrix H, Jama.Matrix R, NonnegativeMatrixFactorization.opt options)
    • copyInfo

    • get_nmf_default_options

      public NonnegativeMatrixFactorization.opt get_nmf_default_options()