#'
#' export
constructionModelesLassoMLE = function(phiInit, rhoInit, piInit, gamInit, mini, maxi,
- gamma, X, Y, thresh, tau, S, ncores=3, artefact = 1e3, verbose=FALSE)
+ gamma, X, Y, thresh, tau, S, ncores=3, artefact = 1e3, fast=TRUE, verbose=FALSE)
{
if (ncores > 1)
{
- cl = parallel::makeCluster(ncores)
+ cl = parallel::makeCluster(ncores, outfile='')
parallel::clusterExport( cl, envir=environment(),
varlist=c("phiInit","rhoInit","gamInit","mini","maxi","gamma","X","Y","thresh",
"tau","S","ncores","verbose") )
# lambda == 0 because we compute the EMV: no penalization here
res = EMGLLF(phiInit[col.sel,,],rhoInit,piInit,gamInit,mini,maxi,gamma,0,
- X[,col.sel],Y,tau)
+ X[,col.sel], Y, tau, fast)
# Eval dimension from the result + selected
phiLambda2 = res$phi
for (r in 1:k)
{
delta = (Y%*%rhoLambda[,,r] - (X[, col.sel]%*%phiLambda[col.sel,,r]))/artefact
- print(max(delta))
densite = densite + piLambda[r] *
det(rhoLambda[,,r])/(sqrt(2*base::pi))^m * exp(-tcrossprod(delta)/2.0)
}
out =
if (ncores > 1)
parLapply(cl, 1:length(S), computeAtLambda)
- else
- lapply(1:length(S), computeAtLambda)
+ else
+ lapply(1:length(S), computeAtLambda)
if (ncores > 1)
parallel::stopCluster(cl)