From 3ec579a0955aca0591a9e5c4d90c50b87f4f4609 Mon Sep 17 00:00:00 2001 From: Benjamin Auder Date: Thu, 15 Dec 2016 17:22:39 +0100 Subject: [PATCH] almost finished --- src/adapters/a.constructionModelesLassoMLE.c | 2 +- .../.constructionModelesLassoRank.c.swp | Bin 0 -> 16384 bytes src/sources/constructionModelesLassoMLE.c | 206 +++++++++--------- src/sources/constructionModelesLassoRank.c | 132 +++++------ 4 files changed, 170 insertions(+), 170 deletions(-) create mode 100644 src/sources/.constructionModelesLassoRank.c.swp diff --git a/src/adapters/a.constructionModelesLassoMLE.c b/src/adapters/a.constructionModelesLassoMLE.c index 7578664..7f578fb 100644 --- a/src/adapters/a.constructionModelesLassoMLE.c +++ b/src/adapters/a.constructionModelesLassoMLE.c @@ -77,7 +77,7 @@ SEXP EMGLLF( // Build list from OUT params and return it SEXP listParams, listNames; PROTECT(listParams = allocVector(VECSXP, 4)); - char* lnames[4] = {"phi", "rho", "pi", "lvraisemblance}; //lists labels + char* lnames[4] = {"phi", "rho", "pi", "lvraisemblance"}; //lists labels PROTECT(listNames = allocVector(STRSXP,4)); for (int i=0; i<4; i++) SET_STRING_ELT(listNames,i,mkChar(lnames[i])); diff --git a/src/sources/.constructionModelesLassoRank.c.swp b/src/sources/.constructionModelesLassoRank.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..ba4ef92ddf008ce6f0e3dec44826b37a528e6883 GIT binary patch literal 16384 zcmeHO+lw4o8Ly4HX4GUwSp-?+WMX!zx@)FpqQa7$3B=81hwaIXlM6{^XNNOYr@K#2 z-8@y*$!=JD5`2+`MMYLod=L`YmqkHgA66L=Uj+BX3;qehiY`8QU4P%HOILS#k_bMC zREJ;p)VY1%_dDPDPStlRyNg#>*Vt1Fiv~U)HH-`Uo7X;n=wHU;v0?Dc6N<_o@aex8 z3nioQ0nH4j?|F_Aag;bi?kB=Ylrd*LYZWJb|%G?wKtwo;jMbhC(5^eHuZ^3=g z&`o{AK*PZO7|7D@{8LAa&zxM+Oa1ulG4}C~UAbS6rmkV2VW454VW454VW454VW454 zVc`Fafiym3d41pEklfYr%?W2bA z3a}152E20wWx#iUtAGO>27dh!!}u<+4V(s^0RHh|!}u-mW8mAsYd{Zp24KLSK4cib z1AYU%3d{jNoH2~ofwRCo@C5MQVZ-=4@Jrz9KmtU759|TQf%iUW7=Hxb0p14Q0=@}s z12=#Zz@HyQ8{kzy0M7wSz&!9M@QV)^#?OF#;12LD;5A?f*ubZNM}U96-!Q%kaNs;J z3;Z6*lb--@0@`_NG*oT0ltbBxhY_w0_fts7TbsC(=vwJ3+1qQrCsUe;R7T;q6!Whh9xv;(jrccBgZm*gCg%fqI)8 z(mYk4P|Jp^posp}=Gn3X8A?0gx1@ay)j7+SeceuZW|INX{!}iHe6n(eobF{Z3moSZ z=I+3t2{}&b9F>Yw7@gqr0DpCyu8IN{MmJd$+HAZNJI(Nt2G$f_ib`de36d?l%$#Vp zvceWEYMA?8;ZEa?+HIon%u+sSHJa?0mIIq-OL|Gr@CUa#rX}Tze3GxYB8wu!xO9kK z)XI|!an?f?3fAMw6YPtbV0amfxeZT>Ips3dqU!x(t`Nh75B0h{^HVeFb0s{B#Yzr&D$JS= zh^P>?lZbRD%z~Y?uLSoJbA4@N=i-&Moy*T|o;!2)5(Pd@`6$Mr#Bt#LslqK(0{a-EOr94_$jB=39ay`S-|JhBqQmKj-3 zyBe`u>RS3S9BS0GaBs&s%fkd-1S?c1_wOiSV_h?~e>dL0gPCyqoc!4B%WhW@Ujlw4 z6Pt;Y+I8VD%;n51Oq$of{Fe2Cxd(-H+Xd+3I13B;??_&DONu~XHPq$h1Myq=Kr++= zowO$Om@dBF>!cRVwCGY~tVEzqESKcN$c7OU9GoJ9F;wisb}(10Z!HSze<(5(3zpI< z<{5~E+hr*hbRG6s@fZhbq@#QC4w?; zix`(-BH;|aoB8{9DQMBW>z98=BOvVjC*2@n{mNw>0CQcKiQo$dfyvO!rVxhM6hxlv zN(ABD)?(G!FpK_VbPEw=0pnR3DVglwtu>S3s2Kw8L^J(1Gfij&;1WP;8}o)#->g$Ne6-N&5&v z=hkw5^zB!@Kk@UB{l~S({hd~%;s=z{-bR~fzQx021d)(-ct4+^@eww(+f3^Z)>RZo zN?W5ndG%sB5#+qXNP1XO2fvkW8ldR%`q_0vvMA6i7$Nw6Jy@J6tWbf+QW?5FUax1f zw9nV}_=W!LsB#&V3;olzf?nb~z>bgL=l90yX749?Y}nc2hMEfL`9H(+_TzXar|19j zeE&yyzJCLF9f*PFfiu8KfB{E(yEW0cCiDfX&oyk_kcox7Smf?=)6!-094yvb(mK+n=B>w7PI#eqjnWSJ_a^dpM3SLhQI99xL6 zm-Y)_JhgGgP1=K!Xo;DWD zP+58QS1T$`&}t>f5b4E%Ii5V@BVW#2lJ|FXdftALbRLY)xXPDHacD)d mbl>r%RdvJyGqcPdVp#=RI3@T|i}KH!d3nw2@;3Ql=)VEdATI>~ literal 0 HcmV?d00001 diff --git a/src/sources/constructionModelesLassoMLE.c b/src/sources/constructionModelesLassoMLE.c index bcbfd3c..91119e9 100644 --- a/src/sources/constructionModelesLassoMLE.c +++ b/src/sources/constructionModelesLassoMLE.c @@ -6,39 +6,39 @@ // TODO: comment on constructionModelesLassoMLE purpose void constructionModelesLassoMLE( - // IN parameters - const Real* phiInit, // parametre initial de moyenne renormalisé - const Real* rhoInit, // parametre initial de variance renormalisé - const Real* piInit, // parametre initial des proportions - const Real* gamInit, // paramètre initial des probabilités a posteriori de chaque échantillon - Int mini, // nombre minimal d'itérations dans l'algorithme EM - Int maxi, // nombre maximal d'itérations dans l'algorithme EM - Real gamma, // valeur de gamma : puissance des proportions dans la pénalisation pour un Lasso adaptatif - const Real* glambda, // valeur des paramètres de régularisation du Lasso - const Real* X, // régresseurs - const Real* Y, // réponse - Real seuil, // seuil pour prendre en compte une variable - Real tau, // seuil pour accepter la convergence - const Int* A1, // matrice des coefficients des parametres selectionnes - const Int* A2, // matrice des coefficients des parametres non selectionnes + // IN parameters + const double* phiInit, // parametre initial de moyenne renormalisé + const double* rhoInit, // parametre initial de variance renormalisé + const double* piInit,// parametre initial des proportions + const double* gamInit, // paramètre initial des probabilités a posteriori de chaque échantillon + int mini,// nombre minimal d'itérations dans l'algorithme EM + int maxi,// nombre maximal d'itérations dans l'algorithme EM + double gamma,// valeur de gamma : puissance des proportions dans la pénalisation pour un Lasso adaptatif + const double* glambda, // valeur des paramètres de régularisation du Lasso + const double* X, // régresseurs + const double* Y, // réponse + double seuil,// seuil pour prendre en compte une variable + double tau,// seuil pour accepter la convergence + const int* A1, // matrice des coefficients des parametres selectionnes + const int* A2, // matrice des coefficients des parametres non selectionnes // OUT parameters - Real* phi, // estimateur ainsi calculé par le Lasso - Real* rho, // estimateur ainsi calculé par le Lasso - Real* pi, // estimateur ainsi calculé par le Lasso - Real* lvraisemblance, // estimateur ainsi calculé par le Lasso + double* phi,// estimateur ainsi calculé par le Lasso + double* rho,// estimateur ainsi calculé par le Lasso + double* pi, // estimateur ainsi calculé par le Lasso + double* lvraisemblance, // estimateur ainsi calculé par le Lasso // additional size parameters - mwSize n, // taille de l'echantillon - mwSize p, // nombre de covariables - mwSize m, // taille de Y (multivarié) - mwSize k, // nombre de composantes - mwSize L) // taille de glambda + int n, // taille de l'echantillon + int p, // nombre de covariables + int m, // taille de Y (multivarié) + int k, // nombre de composantes + int L) // taille de glambda { //preparation: phi = 0 - for (mwSize u=0; u 0 //~ phi(A2(j,1,lambdaIndex),b,:,lambdaIndex) = 0.0; //~ end if (lengthB > 0) { - for (mwSize mm=0; mmdata[u*m+v] = rho[u*m*k*L+v*k*L+r*L+lambdaIndex]; + for (int v=0; vdata[u*m+v] = rho[ai4(u,v,r,lambdaIndex,m,m,k,L)]; } gsl_linalg_LU_decomp(matrix, permutation, &signum); - Real detRhoR = gsl_linalg_LU_det(matrix, signum); - + double detRhoR = gsl_linalg_LU_det(matrix, signum); + //compute Y(i,:)*rho(:,:,r,lambdaIndex) - for (mwSize u=0; u - Real dotProduct = 0.0; - for (mwSize u=0; u 0 - Real* phiLambda = (Real*)malloc(longueurActive*m*k*sizeof(Real)); - Real LLF; - for (Int j=0; j