Skip to content

geyh96/GSLM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GSLM

GSLM is a R packages designed for structure learning based on the unstructured kernel based M-regression. It provide functions to implement the variable selection and interaction selection for various Loss functions,like L2 loss, Check loss, Huber loss for continuous response and Hinge loss(SVM) and Logistic loss for binary response. The gaussian kernel is cited from the package kernlab to facilitate the RKHS modeling.

GSLM

Install the package from github via the $devtools$ package

devtools::install_github("geyh96/GSLM")
##example
run.n=500
run.p=1000
run.rho=0
if(1){
     UW <- matrix(runif(run.n * run.p, -0.5, 0.5), run.n, run.p)
     VW <- matrix(runif(run.n,  -0.5, 0.5), run.n, 1)
     x <- (UW + run.rho * VW %x% t(rep(1, run.p))) / (1 + run.rho)
     y0=4*(x[,1] - x[,2] + x[,3] - x[,4] ) - 6*(x[,1]*x[,2] + x[,2]*x[,3] - x[,3]*x[,4] )
     y=y0 + rnorm(run.n, 0, 1)
   }

print("Begin DSL1")
DSL_result1_screening =  GSLM::DSL_screening(
            x, 
            y,
            Loss = "L2", 
            lambdas = 1e-5,  
            Tau = 0.5, 
            Kernel = "Gaussian",
            Kappa_time=10,
            Kappa_thres = 10^seq(-4,0,0.1))
rank(DSL_result1_screening$measure)[1:5]
Ind1 = which(unname(DSL_result1_screening$screening_result)==1)
iselected_DSL1=Ind1
print('which(Ind1==1)')
print(Ind1)   

if(length(Ind1)>1){
###########################################begin KappaInteraction
Kappa_result1 = GSLM::Kappa_DSL2(
                x,
                y,
                Ind1,
                isStrongHeredity = TRUE,
                isInteraction = TRUE,
                Loss = "L2",
                kappa_Tau = 0.5,
                lambdas = 10^seq(-5,0,1),
                Kernel = "Gaussian",
                kappa_time = 10 ,
                kappa_thres =10^seq(-4,1.5,0.1),
                d_kapparatio = 1,
                isKernelScale = FALSE)
names(Kappa_result1)
Kappa_result1$Lambda_Selected
Kappa_result1$Thres_Selected
DSL_result1_interaction = GSLM::DSL_base_order2(
        x, 
        y, 
        isStrongHeredity = TRUE,
        Loss = "L2",
        lambda = Kappa_result1$Lambda_Selected,
        Tau = 0.5,
        Ind = Ind1,
        Kernel ="Gaussian",
        isKernelScale=FALSE,
        print_loss=TRUE
            )$gradient_mat_interaction
iselected2_DSL1  = GSLM::get_order2_vec(DSL_result1_interaction>Kappa_result1$Thres_Selected)
}
print(iselected2_DSL1)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published