projects
/
valse.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove selectiontotale, parallelize main.R + add conditional verbose traces
[valse.git]
/
pkg
/
R
/
selectVariables.R
diff --git
a/pkg/R/selectVariables.R
b/pkg/R/selectVariables.R
index
ce7d3b3
..
869e7bf
100644
(file)
--- a/
pkg/R/selectVariables.R
+++ b/
pkg/R/selectVariables.R
@@
-14,6
+14,7
@@
#' @param Y matrix of responses
#' @param thres threshold to consider a coefficient to be equal to 0
#' @param tau threshold to say that EM algorithm has converged
#' @param Y matrix of responses
#' @param thres threshold to consider a coefficient to be equal to 0
#' @param tau threshold to say that EM algorithm has converged
+#' @param ncores Number or cores for parallel execution (1 to disable)
#'
#' @return a list of outputs, for each lambda in grid: selected,Rho,Pi
#'
#'
#' @return a list of outputs, for each lambda in grid: selected,Rho,Pi
#'
@@
-22,7
+23,7
@@
#' @export
#'
selectVariables = function(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambda,
#' @export
#'
selectVariables = function(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambda,
- X,Y,thresh,tau, ncores=
1) #ncores==1 ==> no //
+ X,Y,thresh,tau, ncores=
3)
{
if (ncores > 1)
{
{
if (ncores > 1)
{
@@
-44,19
+45,24
@@
selectVariables = function(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,glambd
selectedVariables = lapply(1:p, function(j) {
#from boolean matrix mxk of selected variables obtain the corresponding boolean m-vector,
#and finally return the corresponding indices
selectedVariables = lapply(1:p, function(j) {
#from boolean matrix mxk of selected variables obtain the corresponding boolean m-vector,
#and finally return the corresponding indices
-
seq_len(m)[ apply( abs(params$phi[j,,]) > thresh, 1, any ) ]
+ seq_len(m)[ apply( abs(params$phi[j,,]) > thresh, 1, any ) ]
})
})
- list("selected"=selectedVariables,"Rho"=params$
Rho,"Pi"=params$P
i)
+ list("selected"=selectedVariables,"Rho"=params$
rho,"Pi"=params$p
i)
}
# Pour chaque lambda de la grille, on calcule les coefficients
out <-
if (ncores > 1)
}
# Pour chaque lambda de la grille, on calcule les coefficients
out <-
if (ncores > 1)
- parLapply(cl,
seq_along(
glambda, computeCoefs)
+ parLapply(cl, glambda, computeCoefs)
else
else
- lapply(
seq_along(glambda)
, computeCoefs)
+ lapply(
glambda
, computeCoefs)
if (ncores > 1)
parallel::stopCluster(cl)
if (ncores > 1)
parallel::stopCluster(cl)
+
+ # Suppression doublons
+ sha1_array <- lapply(out, digest::sha1)
+ out[ !duplicated(sha1_array) ]
+
out
}
out
}