def learnQuic(tt_graph,lbda=1e3): means = tt_graph.means() rows = tt_graph.rows() cols = tt_graph.cols() R = tt_graph.variances() U = tt_graph.covariances() (D,P) = covsel_quick(R, U, rows, cols, lbda) return GMRF(tt_graph.indexes, tt_graph.rows(), tt_graph.cols(), means, D, P)
#Q = random_projection_cholmod(D, U, rows, cols, k, factor) Q = random_projection_cholmod_csc(Xs, k=1000) A = Q.T print A.shape R = np.sum(A*A,axis=1) U = np.sum(A[rows]*A[cols],axis=1) R_ = W.diagonal() U_ = W[rows,cols] #X = build_sparse(D, P, rows, cols) #(eis,_)=eigsh(X, k=1, sigma=-1, which='LM') #ei = eis[0] #is_psd_dense(R, U, rows, cols) #is_psd_cholmod(R, U, rows, cols) (R,U) = inv_dense(D, P, rows, cols) W = la.inv(X) (D1,P1) = covsel_quick(R, U, rows, cols) (D2,P2) = covsel_cvx_dense(R, U, rows, cols,num_iterations=150) X2 = build_dense(D2, P2, rows, cols) factor = analyze(Xs) (D3,P3) = covsel_cvx_cholmod(R, U, rows, cols, k=10000,num_iterations=100, factor=factor,finish_early=False)