mlr3learners.KMforCSD is an R package that wraps the KMforCSD algorithm as an MLR3 learner. The mlr3learners.KMforCSD package enables cross validation with respect to the loss presented in the paper Kernel Machines for Current Status Data.
You can install the package from its GitHub repository. You first need to install the devtools package.
install.packages("devtools")
Then install mlr3learners.KMforCSD using the install_github
function in the devtools package.
library(devtools)
install_github("Yael-Travis-Lumer/mlr3learners.KMforCSD")
library(mlr3)
library(mlr3tuning)
library(data.table)
library(KMforCSD)
library(mlr3learners.KMforCSD)
mlr_tuners$get("design_points")
tnr("design_points")
mlr3::mlr_measures$add("csd_risk", MeasureCSD)
n_test = 10000
n_train = 100
test_list = weibull_data(n=n_test)
test_data = test_list$data
task_test = TaskRegr$new(id = "Test Data", backend = test_data, target = "C")
train_list = weibull_data(n=n_train)
train_data = train_list$data
task_train = TaskRegr$new(id = "Train Data", backend = train_data, target = "C")
learner_rbf = lrn("regr.KMforCSD")
learner_rbf$param_set$values$kernel = "rbfdot"
learner_linear = lrn("regr.KMforCSD")
learner_linear$param_set$values$kernel = "vanilladot"
terminator_linear = trm("evals", n_evals = length(cv_cost_val)) terminator_rbf = trm("evals", n_evals = length(cv_cost_val)*length(cv_gamma_val))
tune_ps = ParamSet$new(list( ParamDbl$new("cost", lower = min(cv_cost_val), upper = max(cv_cost_val)), ParamDbl$new("gamma", lower = min(cv_gamma_val), upper = max(cv_gamma_val)) )) instance_rbf = TuningInstanceSingleCrit$new( task = task_train, learner = learner_rbf, resampling = rsmp("cv", folds = 5), measure = msr("csd_risk"), search_space = tune_ps, terminator = terminator_rbf ) design = data.table(cost=sort(rep(cv_cost_val,times=length(cv_gamma_val))),gamma=rep(cv_gamma_val,length(cv_cost_val))) tuner = tnr("design_points", design = design) result = tuner$optimize(instance_rbf)
learner_rbf$param_set$values = instance_rbf$result_learner_param_vals
trained_rbf = learner_rbf$train(task_train) predictions_rbf = learner_rbf$predict(task_train) Expectation_rbf=predictions_rbf$response print("completed RBF training")
predictions_rbf_test = learner_rbf$predict(task_test) Expectation_rbf_test=predictions_rbf_test$response print("completed RBF testing")
tune_ps = ParamSet$new(list( ParamDbl$new("cost", lower = min(cv_cost_val), upper = max(cv_cost_val)) )) instance_linear = TuningInstanceSingleCrit$new( task = task_train, learner = learner_linear, resampling = rsmp("cv", folds = 5), measure = msr("csd_risk"), search_space = tune_ps, terminator = terminator_linear ) design2 = data.table(cost=cv_cost_val) tuner = tnr("design_points", design = design2) result = tuner$optimize(instance_linear)
learner_linear$param_set$values = instance_linear$result_learner_param_vals
trained_linear = learner_linear$train(task_train) predictions_linear = learner_linear$predict(task_train) Expectation_linear=predictions_linear$response print("completed linear training")
predictions_linear_test = learner_linear$predict(task_test) Expectation_linear_test=predictions_linear_test$response print("completed linear testing")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.