predict.PSGD
returns the predictions for a PSGD object.
# S3 method for PSGD
predict(object, newx, group_index = NULL, ...)
The predictions for the PSGD object.
An object of class PSGD
New data for predictions.
Groups included in the ensemble. Default setting includes all the groups.
Additional arguments for compatibility.
Anthony-Alexander Christidis, anthony.christidis@stat.ubc.ca
PSGD
# Required Libraries
library(mvnfast)
# Setting the parameters
p <- 100
n <- 40
n.test <- 1000
sparsity <- 0.2
rho <- 0.5
SNR <- 3
# Generating the coefficient
p.active <- floor(p*sparsity)
a <- 4*log(n)/sqrt(n)
neg.prob <- 0.2
nonzero.betas <- (-1)^(rbinom(p.active, 1, neg.prob))*(a + abs(rnorm(p.active)))
# Correlation structure
Sigma <- matrix(0, p, p)
Sigma[1:p.active, 1:p.active] <- rho
diag(Sigma) <- 1
true.beta <- c(nonzero.betas, rep(0 , p - p.active))
# Computing the noise parameter for target SNR
sigma.epsilon <- as.numeric(sqrt((t(true.beta) %*% Sigma %*% true.beta)/SNR))
# Simulate some data
set.seed(1)
x.train <- mvnfast::rmvn(n, mu=rep(0,p), sigma=Sigma)
y.train <- 1 + x.train %*% true.beta + rnorm(n=n, mean=0, sd=sigma.epsilon)
x.test <- mvnfast::rmvn(n.test, mu=rep(0,p), sigma=Sigma)
y.test <- 1 + x.test %*% true.beta + rnorm(n.test, sd=sigma.epsilon)
# PSGD Ensemble
output <- PSGD(x = x.train, y = y.train, n_models = 5,
model_type = c("Linear", "Logistic")[1], include_intercept = TRUE,
split = 3, size = 10,
max_iter = 20,
cycling_iter = 0)
psgd.coef <- coef(output, group_index = 1:output$n_models)
psgd.predictions <- predict(output, newx = x.test, group_index = 1:output$n_models)
mean((y.test - psgd.predictions)^2)/sigma.epsilon^2
Run the code above in your browser using DataLab