X-Git-Url: https://git.auder.net/?p=valse.git;a=blobdiff_plain;f=pkg%2FR%2Fmain.R;h=6b683a59a7c0a921e7b867b7ac4cef5ad16ccec6;hp=238160cb6c52c506525eb57b676dd93efd6a4864;hb=7ac88d643dac3dccb17c3e81c7b3d3d1aa87c1af;hpb=4d9db27f0d1749e5577038dedbc5f4d0826f2772 diff --git a/pkg/R/main.R b/pkg/R/main.R index 238160c..6b683a5 100644 --- a/pkg/R/main.R +++ b/pkg/R/main.R @@ -124,38 +124,36 @@ valse = function(X, Y, procedure='LassoMLE', selecMod='DDSE', gamma=1, mini=10, print(tableauRecap) tableauRecap = tableauRecap[which(tableauRecap[,4]!= Inf),] - return(tableauRecap) - - # modSel = capushe::capushe(tableauRecap, n) - # indModSel <- - # if (selecMod == 'DDSE') - # as.numeric(modSel@DDSE@model) - # else if (selecMod == 'Djump') - # as.numeric(modSel@Djump@model) - # else if (selecMod == 'BIC') - # modSel@BIC_capushe$model - # else if (selecMod == 'AIC') - # modSel@AIC_capushe$model - # - # mod = as.character(tableauRecap[indModSel,1]) - # listMod = as.integer(unlist(strsplit(mod, "[.]"))) - # modelSel = models_list[[listMod[1]]][[listMod[2]]] - # - # ##Affectations - # Gam = matrix(0, ncol = length(modelSel$pi), nrow = n) - # for (i in 1:n){ - # for (r in 1:length(modelSel$pi)){ - # sqNorm2 = sum( (Y[i,]%*%modelSel$rho[,,r]-X[i,]%*%modelSel$phi[,,r])^2 ) - # Gam[i,r] = modelSel$pi[r] * exp(-0.5*sqNorm2)* det(modelSel$rho[,,r]) - # } - # } - # Gam = Gam/rowSums(Gam) - # modelSel$affec = apply(Gam, 1,which.max) - # modelSel$proba = Gam - # - # if (plot){ - # print(plot_valse(X,Y,modelSel,n)) - # } - # - # return(modelSel) + modSel = capushe::capushe(tableauRecap, n) + indModSel <- + if (selecMod == 'DDSE') + as.numeric(modSel@DDSE@model) + else if (selecMod == 'Djump') + as.numeric(modSel@Djump@model) + else if (selecMod == 'BIC') + modSel@BIC_capushe$model + else if (selecMod == 'AIC') + modSel@AIC_capushe$model + + mod = as.character(tableauRecap[indModSel,1]) + listMod = as.integer(unlist(strsplit(mod, "[.]"))) + modelSel = models_list[[listMod[1]]][[listMod[2]]] + + ##Affectations + Gam = matrix(0, ncol = length(modelSel$pi), nrow = n) + for (i in 1:n){ + for (r in 1:length(modelSel$pi)){ + sqNorm2 = sum( (Y[i,]%*%modelSel$rho[,,r]-X[i,]%*%modelSel$phi[,,r])^2 ) + Gam[i,r] = modelSel$pi[r] * exp(-0.5*sqNorm2)* det(modelSel$rho[,,r]) + } + } + Gam = Gam/rowSums(Gam) + modelSel$affec = apply(Gam, 1,which.max) + modelSel$proba = Gam + + if (plot){ + print(plot_valse(X,Y,modelSel,n)) + } + + return(modelSel) }