コード例 #1
0
ファイル: exp_powerlaw_ggl.py プロジェクト: Vlasovets/GGLasso
                              lambda1,
                              lambda2,
                              reg,
                              Omega_0,
                              Theta_0=Theta_0,
                              eps=1e-3,
                              verbose=False,
                              measure=False)
        Theta_sol = sol['Theta']
        Omega_sol = sol['Omega']

        # warm start
        Omega_0 = Omega_sol.copy()
        Theta_0 = Theta_sol.copy()

        TPR[g1, g2] = discovery_rate(Theta_sol, Theta)['TPR']
        FPR[g1, g2] = discovery_rate(Theta_sol, Theta)['FPR']
        DTPR[g1, g2] = discovery_rate(Theta_sol, Theta)['TPR_DIFF']
        DFPR[g1, g2] = discovery_rate(Theta_sol, Theta)['FPR_DIFF']
        ERR[g1, g2] = error(Theta_sol, Theta)
        AIC[g1, g2] = aic(S_train, Theta_sol, N_train)
        BIC[g1, g2] = ebic(S_train, Theta_sol, N_train, gamma=0.1)

        for l in np.arange(len(gammas)):
            GAM[l, g1, g2] = ebic(S_train, Theta_sol, N_train, gamma=gammas[l])

# get optimal lambda
ix = np.unravel_index(np.nanargmin(BIC), BIC.shape)
ix2 = np.unravel_index(np.nanargmin(AIC), AIC.shape)

#%%
コード例 #2
0
ファイル: exp_runtime_ggl.py プロジェクト: Vlasovets/GGLasso
    S, sample = sample_covariance_matrix(Sigma, vecN[j])

    #start = time()
    solA, infoA = ADMM_MGL(S,
                           l1[j],
                           l2[j],
                           reg,
                           Omega_0,
                           eps_admm=5e-5,
                           verbose=False,
                           measure=True)
    #end = time()
    #RT_ADMM[j] = end-start
    iA[j] = infoA

    TPR[j] = discovery_rate(solA['Theta'], Theta)['TPR']
    FPR[j] = discovery_rate(solA['Theta'], Theta)['FPR']

    #start = time()
    solP, infoP = warmPPDNA(S,
                            l1[j],
                            l2[j],
                            reg,
                            Omega_0,
                            eps=5e-5,
                            eps_admm=1e-2,
                            verbose=False,
                            measure=True)
    #end = time()
    #RT_PPA[j] = end-start
    iP[j] = infoP
コード例 #3
0
    for g1 in np.arange(grid1):
        lambda1 = L1[g1,g2]
        lambda2 = L2[g1,g2]
              
        sol, info =  ADMM_MGL(S, lambda1, lambda2, reg , Omega_0, Theta_0 = Theta_0, X_0 = X_0, tol = 1e-8, rtol = 1e-8, verbose = False, measure = False)

        Theta_sol = sol['Theta']
        Omega_sol = sol['Omega']
        X_sol = sol['X']
        
        # warm start
        Omega_0 = Omega_sol.copy()
        Theta_0 = Theta_sol.copy()
        X_0 = X_sol.copy()
        
        dr = discovery_rate(Theta_sol, Theta)
        TPR[g1,g2] = dr['TPR']
        FPR[g1,g2] = dr['FPR']
        DTPR[g1,g2] = dr['TPR_DIFF']
        DFPR[g1,g2] = dr['FPR_DIFF']
        ERR[g1,g2] = error(Theta_sol, Theta)
        AIC[g1,g2] = aic(S, Theta_sol, N)
        BIC[g1,g2] = ebic(S, Theta_sol, N, gamma = 0.1)
        
            

# get optimal lambda
ix= np.unravel_index(np.nanargmin(BIC), BIC.shape)
ix2= np.unravel_index(np.nanargmin(AIC), AIC.shape)

l1opt = L1[ix]
コード例 #4
0
ファイル: exp_powerlaw_fgl.py プロジェクト: Vlasovets/GGLasso
Theta_0 = get_K_identity(K,p)

for g1 in np.arange(grid1):
    for g2 in np.arange(grid2):
        lambda1 = L1[g1,g2]
        lambda2 = L2[g1,g2]
              
        sol, info = warmPPDNA(S_train, lambda1, lambda2, reg, Omega_0, Theta_0 = Theta_0, eps = 1e-3, verbose = False, measure = False)
        Theta_sol = sol['Theta']
        Omega_sol = sol['Omega']
        
        # warm start
        Omega_0 = Omega_sol.copy()
        Theta_0 = Theta_sol.copy()
        
        TPR[g1,g2] = discovery_rate(Theta_sol, Theta)['TPR']
        FPR[g1,g2] = discovery_rate(Theta_sol, Theta)['FPR']
        DTPR[g1,g2] = discovery_rate(Theta_sol, Theta)['TPR_DIFF']
        DFPR[g1,g2] = discovery_rate(Theta_sol, Theta)['FPR_DIFF']
        ERR[g1,g2] = error(Theta_sol, Theta)
        AIC[g1,g2] = aic(S_train, Theta_sol, N)
        BIC[g1,g2] = ebic(S_train, Theta_sol, N, gamma = 0.1)

# get optimal lambda
ix= np.unravel_index(np.nanargmin(BIC), BIC.shape)
ix2= np.unravel_index(np.nanargmin(AIC), AIC.shape)
lambda1 = L1[ix]
lambda2 = L2[ix]

print("Optimal lambda values: (l1,l2) = ", (lambda1,lambda2))
plot_fpr_tpr(FPR.T, TPR.T,  ix[::-1], ix2[::-1])
コード例 #5
0
                             X_0=X_0,
                             tol=1e-8,
                             rtol=1e-8,
                             verbose=False,
                             measure=False)

        Theta_sol = sol['Theta']
        Omega_sol = sol['Omega']
        X_sol = sol['X']

        # warm start
        Omega_0 = Omega_sol.copy()
        Theta_0 = Theta_sol.copy()
        X_0 = X_sol.copy()

        dr = discovery_rate(Theta_sol, Theta)
        TPR[g1, g2] = dr['TPR']
        FPR[g1, g2] = dr['FPR']
        DTPR[g1, g2] = dr['TPR_DIFF']
        DFPR[g1, g2] = dr['FPR_DIFF']
        ERR[g1, g2] = error(Theta_sol, Theta)
        AIC[g1, g2] = aic(S, Theta_sol, N)
        BIC[g1, g2] = ebic(S, Theta_sol, N, gamma=0.1)

# get optimal lambda
ix = np.unravel_index(np.nanargmin(BIC), BIC.shape)
ix2 = np.unravel_index(np.nanargmin(AIC), AIC.shape)

l1opt = L1[ix]
l2opt = L2[ix]