Train an Ordinary Least Square (OLS) model for regression tasks.
cuda_ml_ols(x, ...) # S3 method for default cuda_ml_ols(x, ...) # S3 method for data.frame cuda_ml_ols( x, y, method = c("svd", "eig", "qr"), fit_intercept = TRUE, normalize_input = FALSE, ... ) # S3 method for matrix cuda_ml_ols( x, y, method = c("svd", "eig", "qr"), fit_intercept = TRUE, normalize_input = FALSE, ... ) # S3 method for formula cuda_ml_ols( formula, data, method = c("svd", "eig", "qr"), fit_intercept = TRUE, normalize_input = FALSE, ... ) # S3 method for recipe cuda_ml_ols( x, data, method = c("svd", "eig", "qr"), fit_intercept = TRUE, normalize_input = FALSE, ... )
x | Depending on the context: * A __data frame__ of predictors. * A __matrix__ of predictors. * A __recipe__ specifying a set of preprocessing steps * created from [recipes::recipe()]. * A __formula__ specifying the predictors and the outcome. |
---|---|
... | Optional arguments; currently unused. |
y | A numeric vector (for regression) or factor (for classification) of desired responses. |
method | Must be one of "svd", "eig", "qr". - "svd": compute SVD decomposition using Jacobi iterations. - "eig": use an eigendecomposition of the covariance matrix. - "qr": use the QR decomposition algorithm and solve `Rx = Q^T y`. If the number of features is larger than the sample size, then the "svd" algorithm will be force-selected because it is the only algorithm that can support this type of scenario. Default: "svd". |
fit_intercept | If TRUE, then the model tries to correct for the global mean of the response variable. If FALSE, then the model expects data to be centered. Default: TRUE. |
normalize_input | Ignored when |
formula | A formula specifying the outcome terms on the left-hand side, and the predictor terms on the right-hand side. |
data | When a __recipe__ or __formula__ is used, |
A OLS regressor that can be used with the 'predict' S3 generic to make predictions on new data points.
library(cuda.ml) model <- cuda_ml_ols(formula = mpg ~ ., data = mtcars, method = "qr") predictions <- predict(model, mtcars[names(mtcars) != "mpg"]) # predictions will be comparable to those from a `stats::lm` model lm_model <- stats::lm(formula = mpg ~ ., data = mtcars, method = "qr") lm_predictions <- predict(lm_model, mtcars[names(mtcars) != "mpg"]) print( all.equal( as.numeric(lm_predictions), predictions$.pred, tolerance = 1e-3 ) )#> [1] "Mean relative difference: 1"