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 zcmYc?2=nw+u+TGLU|?VnU|?`R92DWi^p8QbfPo>gG$pkNBu)TlR2HNbW#;D*P{yF2 zk&>cclv6WoKZBVrO7bWoKac#Kyqzo{fQF5*q_UDjNfX zHyZ_8yf?|304M%BdiPzhglgIRZ4DQSf41CNC z44;`87>+S9Fmy06Fyt~ZFk~<>F!(SrFt{;6;{=*!II(~^m71Rh zmDAL;2HPBv3DFf@6susX5Re(2o2gNxlLI!%GcP5zLML0tM>7_z819N9kSkF90ku#8 zW*inrV0S<**cF@+iOD6IWvL+BGj+1EbnoJRmdkN}$oGuOD5I z0gXu=A0IbRXu0~jgLG>IWNKI;N2sPwP)5Fnl@16Z#j~bPZf0JlPHtjFrcQ*0l@277 zHFY9&N)k(TKpxP@(y@Zr2MR#A%OSyS1M-%&0yKyrA*kTv;|5AN5T2F-+=(C`K?Px+ zLJLnE=~Z7pttdZNAuqpNAwN$?0acTNoq_=aC^;qP=appUm8OF1&P-F#KvQOGt6-oB zQV2>l1)-xMB+`(ANv8mm9TapG3_+%If{e$lN)c=mCnvV>Du4$TsANF3 zUBOnt0AxHU))gS`0|gm~3k$CTSdxP$0)2h|JcYbeh4jRtlvIVn(o}_<)MAC?{G9x} zywqZ-F~tg2P?kb*YEhy>j(TcdacXW-PO3smYOz9DVo_#d5=dWWURr)pZXzgC7Bhf6 z0FG~@fB@whB(9B*wE_|soRgFbiW1Xv6BY7v3lu=wi<2`_Q%ZAEHBu_`5_2MTL2;UxSpv2SSzke7QDRO`YK}rmYFc7xPKicwMq*KFil#zAQD#|UNvZ~t zrJ4+!`MCx0#i=Fnd8N7WB^gDji7CYz{=Nb6exbhcAs#`ljxNEVf)5Pt=9H#_5(1c^ZK$cBs*sYJQ<4bEouKr>$q8bC(rhNE==RJ5akaIP3LOPo zP?3_Jo0+GetpGL#tPk!VX#G-QSpo_G!XP&(GcPf-I6to#Bn1kuVugbI;^ItDre~;TfF}g>`Uq6^D1ed^DE)yr zu!0B_>4?S!tTX~80gwz-wI*7Eg5^PY8iS=vL?~*53RrNNmYk7Vl$-%6&QM*Po0?am zkeOF9i9;mQUNK8q|1TET4%uxWf%fN+BZfZ$tQ85E2v}#nyDJx3M1eeZ_kVo6bEGAN!vRat6UT4r)) zYF-H_^%le2S(I9=P@I|rDXjBAu?Pu31yI8UWJqypX(q@QpioOrPAw=&ErMj7yt34y z^whlMR0d9n)ewzZ3Xz~t0~HJTdBqr#5m3o=P@+pM1;rRB$$`8Lb~7|tfcUwIISMK2 znVrU!I7VV!HA!ML4luvftR0w;U^yh!!$ky zhA2J;1}#1Y20lIphR?hV3=4S~7~*&t7*u%~7=H0EFnr~Ki~(HWVPM$I!@v;3!@v;6 z!@v;8!@%In!@yw6!@!`$!@!`z!vUCb`azXPm;5h~G6bam(=&UTzn51@Yu2!~o z5oG>`6ER7GKD@&T8Kg#1k(&z|;myqj%{Arbg2!{AYT#o;glAgx^$RjGp?&~QI3N$# z>KbZ-2TZlIG!<+?Bcza-DDZ$J>d*&hL=!TC1D=wC>e4X;`&-LL#|Z5Al>Cx_qWqN7 z$<3SAZhA5-#6 zz^MW}gQBC5lbV-ak^v1CO|X?<8SPxq=qV>remBs8j5b644xMS?)YnJVt${tjb*w-^ z9_{1frUP;_k&c6;B5-1u&5zv$rgv*IO#|KKwP$_sa)=>kw z5j3d-?R{&&Yyr(;K@tq|#1$mFKqsw0cIklhg7X(VYr)+fotUXnTB=i~Q>2p%wj4CT YAC!?FotSB&0TD+^br3b6*&k~L0MZ~Y1poj5 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