--- title: "Model fitting" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{fit} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` For showing model fitting in `SSLR`, we will use *Wine* dataset with 20% labeled data: ```{r eval=FALSE} library(SSLR) library(tidymodels) library(caret) ``` ```{r include=FALSE} knitr::opts_chunk$set( digits = 3, collapse = TRUE, comment = "#>" ) options(digits = 3) library(SSLR) library(tidymodels) library(caret) ``` ```{r wine, results="hide"} 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): ```{r fitformula, results="hide", eval=FALSE} 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): ```{r fitxy, results="hide", eval=FALSE} 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): ```{r fitxyu, results="hide", eval=FALSE} m <- SSLRDecisionTree() %>% fit_x_u(x = train[labeled.index,-cls], y = train[labeled.index,cls], x_U = train[-labeled.index,-cls]) ```