Model fitting

For showing model fitting in SSLR, we will use Wine dataset with 20% labeled data:


library(SSLR)
library(tidymodels)
library(caret)
data(wine)

set.seed(1)

#Train and test data
train.index <- createDataPartition(wine$Wine, p = .7, list = FALSE)
train <- wine[ train.index,]
test  <- wine[-train.index,]

cls <- which(colnames(wine) == "Wine")

# 20 % LABELED
labeled.index <- createDataPartition(wine$Wine, p = .2, list = FALSE)
train[-labeled.index,cls] <- NA

In this package we have three functions to fit the different models:

Fit with formula

We can use a formula with data (matrix or data.frame, with unlabeled data NAs in column to predict):

m <- SSLRDecisionTree() %>% fit(Wine ~ ., data = train)

Fit with x and y

We can use x data (matrix or data.frame) and y vector (factor or numeric, with unlabeled data NAs):

m <- SSLRDecisionTree() %>% fit_xy(x = train[,-cls], y = train$Wine)

Fit with x, y and data from unlabeled data

We can use a x (matrix or data.frame) and y vector (factor or numeric, without NAs) and unalabeled data without y column (matrix or data.frame):

m <- SSLRDecisionTree() %>% fit_x_u(x = train[labeled.index,-cls], y = train[labeled.index,cls],
                                     x_U = train[-labeled.index,-cls])