CRAN_Status_Badge Travis build status

An R package for semi-supervised regression.

The ssr package implements Co-training by Committee and self-learning semi-supervised learning (SSL) algorithms for regression. In semi-supervised learning, algorithms learn model’s parameters not only from labeled data but also from unlabeled data. In many applications, it is difficult, expensive, time-consuming, etc. to label data. Thus, semi-supervised methods learn by combining the limited labeled data points and the unlabeled data points.

The ssr package provides the following functionalities:


You can install the ssr package from CRAN:


or you can install the development version from GitHub.

# install.packages("devtools")


The following example shows how to train a Co-training Committee of two regressors: a linear model and a KNN.


dataset <- friedman1 # Load friedman1 dataset.


# Prepare de data
split1 <- split_train_test(dataset, pctTrain = 70)
split2 <- split_train_test(split1$trainset, pctTrain = 5)
L <- split2$trainset
U <- split2$testset[, -11] # Remove the labels.
testset <- split1$testset

# Define list of regressors.
regressors <- list(linearRegression=lm, knn=caret::knnreg)

# Fit the model.
model <- ssr("Ytrue ~ .", L, U, regressors = regressors, testdata = testset)

# Plot RMSE.

# Get the predictions on the testset.
predictions <- predict(model, testset)

# Calculate RMSE on the test set.
sqrt(mean((predictions - testset$Ytrue)^2))

For detailed explanations and more examples refer to the package vignettes.


To cite package ssr in publications use:

Enrique Garcia-Ceja (2019). ssr: Semi-Supervised Regression Methods.
R package

BibTex entry for LaTeX:

    title = {ssr: Semi-Supervised Regression Methods},
    author = {Enrique Garcia-Ceja},
    year = {2019},
    note = {R package},
    url = {},