X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=src%2Fsources%2FconstructionModelesLassoMLE.c;h=34e5808e37b6dda447190399d282266957251aa3;hp=a48f7d06fb3183e69c6cb1b6c9ca2d92afdf6d2d;hb=31ef8a5c9bbaefcf40d2c2bad43b27d469c28c34;hpb=afa07d41c7592ac0ccd55d7af23c3bfef213291e diff --git a/src/sources/constructionModelesLassoMLE.c b/src/sources/constructionModelesLassoMLE.c index a48f7d0..34e5808 100644 --- a/src/sources/constructionModelesLassoMLE.c +++ b/src/sources/constructionModelesLassoMLE.c @@ -7,25 +7,26 @@ // TODO: comment on constructionModelesLassoMLE purpose void constructionModelesLassoMLE_core( // IN parameters - const float* phiInit, // parametre initial de moyenne renormalisé - const float* rhoInit, // parametre initial de variance renormalisé - const float* piInit,// parametre initial des proportions - const float* gamInit, // paramètre initial des probabilités a posteriori de chaque échantillon + 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 - float gamma,// valeur de gamma : puissance des proportions dans la pénalisation pour un Lasso adaptatif - const float* glambda, // valeur des paramètres de régularisation du Lasso - const float* X, // régresseurs - const float* Y, // réponse - float seuil,// seuil pour prendre en compte une variable - float tau,// seuil pour accepter la convergence + 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 // OUT parameters - float* phi,// estimateur ainsi calculé par le Lasso - float* rho,// estimateur ainsi calculé par le Lasso - float* pi, // estimateur ainsi calculé par le Lasso - float* lvraisemblance, // estimateur ainsi calculé par le Lasso + 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* llh, // estimateur ainsi calculé par le Lasso // additional size parameters int n, // taille de l'echantillon int p, // nombre de covariables @@ -33,9 +34,15 @@ void constructionModelesLassoMLE_core( int k, // nombre de composantes int L) // taille de glambda { - //preparation: phi = 0 + //preparation: phi,rho,pi = 0, llh=+Inf for (int u=0; u 0 - //~ phi(A2(j,1,lambdaIndex),b,:,lambdaIndex) = 0.0; - //~ end if (lengthB > 0) { + //phi[A2[j,1,lambdaIndex],b,,lambdaIndex] = 0. for (int mm=0; mmdata[u*m+v] = rho[ai4(u,v,r,lambdaIndex,m,m,k,L)]; } gsl_linalg_LU_decomp(matrix, permutation, &signum); - float detRhoR = gsl_linalg_LU_det(matrix, signum); + Real detRhoR = gsl_linalg_LU_det(matrix, signum); //compute Y(i,:)*rho(:,:,r,lambdaIndex) for (int u=0; u - float dotProduct = 0.0; + Real dotProduct = 0.0; for (int u=0; u