The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Introduction to R package unifiedml

library(unifiedml) # this package
library(randomForest)
library(e1071)
library(glmnet)
## Loading required package: Matrix
## Loaded glmnet 4.1-10
# ------------------------------------------------------------
# REGRESSION EXAMPLES
# ------------------------------------------------------------

cat("\n=== REGRESSION EXAMPLES ===\n\n")
## 
## === REGRESSION EXAMPLES ===
# Example 1: Synthetic data (numeric y → automatic regression)
 
X <- matrix(rnorm(100), ncol = 4)
y <- 2*X[,1] - 1.5*X[,2] + rnorm(25)  # numeric -> regression
 
mod <- Model$new(glmnet::glmnet)
mod$fit(X, y, alpha = 0, lambda = 0.1)
mod$print()
## Model Object
## ------------
## Model function: self$model_fn 
## Fitted: TRUE 
## Task: regression 
## Training samples: 25 
## Features: 4
mod$summary(h = 0.01)
## 
## Model Summary - Numerical Derivatives
## ======================================
## Task: regression 
## Samples: 25 | Features: 4 
## Step size (h): 0.01 
## 
##  Feature Mean_Derivative    Std_Error       t_value       p_value Significance
##       X1       1.7545596 1.776357e-15  9.877292e+14  0.000000e+00          ***
##       X2      -1.2065893 2.710400e-15 -4.451702e+14  0.000000e+00          ***
##       X3      -0.1970950 2.279340e-15 -8.647022e+13 1.927745e-319          ***
##       X4       0.4840615 1.573523e-15  3.076290e+14  0.000000e+00          ***
## 
## Significance codes: 0 '***' 0.01 '**' 0.05 '*' 0.1 ' ' 1
print(head(mod$predict(X)))
## [1] -1.5235552 -2.6955258  2.0380043 -3.2384894 -0.9919252  0.3170660
(cv_scores <- cross_val_score(mod, X, y, cv = 5))  # auto-uses RMSE
##   |                                                                              |                                                                      |   0%  |                                                                              |==============                                                        |  20%  |                                                                              |============================                                          |  40%  |                                                                              |==========================================                            |  60%  |                                                                              |========================================================              |  80%  |                                                                              |======================================================================| 100%
##     fold1     fold2     fold3     fold4     fold5 
## 0.8246004 1.3110373 1.3896279 1.4518106 1.7828576
mean(cv_scores)  # Average RMSE
## [1] 1.351987
# Example 2: Random Forest Regression
cat("\n2. Random Forest Regression - Auto-detected: Regression\n")
## 
## 2. Random Forest Regression - Auto-detected: Regression
# randomForest regression
set.seed(123)
X <- MASS::Boston[, -ncol(MASS::Boston)]
y <- MASS::Boston$medv
mod2 <- Model$new(randomForest::randomForest)  # No task parameter!
mod2$fit(X, y, ntree = 50)
mod2$print()
## Model Object
## ------------
## Model function: self$model_fn 
## Fitted: TRUE 
## Task: regression 
## Training samples: 506 
## Features: 13
cat("\n")
mod2$summary(h = 0.01)
## 
## Model Summary - Numerical Derivatives
## ======================================
## Task: regression 
## Samples: 506 | Features: 13 
## Step size (h): 0.01 
## 
##  Feature Mean_Derivative   Std_Error    t_value      p_value Significance
##     crim     0.662793149 0.395133057  1.6773923 9.408457e-02           **
##       zn     0.008695652 0.008695652  1.0000000 3.177894e-01             
##    indus     0.009298419 0.005877691  1.5819850 1.142791e-01            *
##     chas     0.000000000 0.000000000        NaN          NaN         <NA>
##      nox    -7.542908523 1.404899994 -5.3690003 1.209489e-07          ***
##       rm     3.872168299 0.497810491  7.7783984 4.165748e-14          ***
##      age    -0.078310277 0.058365068 -1.3417319 1.802859e-01            *
##      dis    -0.411075899 0.446098658 -0.9214910 3.572341e-01             
##      rad     0.031330698 0.023908458  1.3104441 1.906413e-01            *
##      tax    -0.028758235 0.032039105 -0.8975979 3.698277e-01             
##  ptratio    -0.013899868 0.013598379 -1.0221709 3.071894e-01             
##    black     0.014163373 0.038784859  0.3651779 7.151315e-01             
##    lstat    -0.310423225 0.109410051 -2.8372460 4.733392e-03          ***
## 
## Significance codes: 0 '***' 0.01 '**' 0.05 '*' 0.1 ' ' 1
(cv2 <- cross_val_score(mod2, X, y, cv = 5L)) 
##   |                                                                              |                                                                      |   0%  |                                                                              |==============                                                        |  20%  |                                                                              |============================                                          |  40%  |                                                                              |==========================================                            |  60%  |                                                                              |========================================================              |  80%  |                                                                              |======================================================================| 100%
##    fold1    fold2    fold3    fold4    fold5 
## 2.732583 4.661567 3.610838 2.933593 2.780172
print(head(mod2$predict(X)))
##        1        2        3        4        5        6 
## 24.90370 22.04237 34.66717 34.55993 34.98763 27.94497
# ------------------------------------------------------------
# CLASSIFICATION EXAMPLES
# ------------------------------------------------------------

cat("\n\n=== CLASSIFICATION EXAMPLES ===\n\n")
## 
## 
## === CLASSIFICATION EXAMPLES ===
# Example: Iris dataset (factor y → automatic classification)
data(iris)

# Binary classification with factor
cat("3. Binary Classification with Factor Response\n")
## 3. Binary Classification with Factor Response
iris_binary <- iris[iris$Species %in% c("setosa", "versicolor"), ]
X_binary <- iris_binary[, 1:4]
y_binary <- as.factor(as.character(iris_binary$Species))  # factor → classification


mod4 <- Model$new(randomForest::randomForest)  # No task parameter!
mod4$fit(X_binary, y_binary, ntree = 50)
mod4$print()
## Model Object
## ------------
## Model function: self$model_fn 
## Fitted: TRUE 
## Task: classification 
## Training samples: 100 
## Features: 4 
## Classes: setosa, versicolor 
## Class distribution:
## 
##     setosa versicolor 
##         50         50
print(head(mod4$predict(X_binary)))
##      1      2      3      4      5      6 
## setosa setosa setosa setosa setosa setosa 
## Levels: setosa versicolor
print(head(mod4$predict(X_binary, type="prob")))
##   setosa versicolor
## 1      1          0
## 2      1          0
## 3      1          0
## 4      1          0
## 5      1          0
## 6      1          0
(cv4 <- cross_val_score(mod4, X_binary, y_binary, cv = 5L))  # Auto-uses accuracy
##   |                                                                              |                                                                      |   0%  |                                                                              |==============                                                        |  20%  |                                                                              |============================                                          |  40%  |                                                                              |==========================================                            |  60%  |                                                                              |========================================================              |  80%  |                                                                              |======================================================================| 100%
## fold1 fold2 fold3 fold4 fold5 
##     1     1     1     1     1
cat("\nMean Accuracy:", mean(cv4), "\n")
## 
## Mean Accuracy: 1
mod4 <- Model$new(nnet::nnet) 
mod4$fit(X_binary, y_binary, size=50, trace=FALSE)
print(head(mod4$predict(X_binary, type="class")))
## [1] setosa setosa setosa setosa setosa setosa
## Levels: setosa versicolor
(cv4 <- cross_val_score(mod4, X_binary, y_binary, fit_params=list(size=50L, 
                        cv = 5L, type="class", trace=FALSE)))
##   |                                                                              |                                                                      |   0%  |                                                                              |==============                                                        |  20%  |                                                                              |============================                                          |  40%  |                                                                              |==========================================                            |  60%  |                                                                              |========================================================              |  80%  |                                                                              |======================================================================| 100%
## fold1 fold2 fold3 fold4 fold5 
##   0.6   0.9   0.7   0.6   1.0
cat("\nMean Accuracy:", mean(cv4), "\n")
## 
## Mean Accuracy: 0.76
mod4 <- Model$new(e1071::svm)  # No task parameter!
mod4$fit(X_binary, y_binary)
mod4$print()
## Model Object
## ------------
## Model function: self$model_fn 
## Fitted: TRUE 
## Task: classification 
## Training samples: 100 
## Features: 4 
## Classes: setosa, versicolor 
## Class distribution:
## 
##     setosa versicolor 
##         50         50
print(head(mod4$predict(X_binary)))
##      1      2      3      4      5      6 
## setosa setosa setosa setosa setosa setosa 
## Levels: setosa versicolor
(cv4 <- cross_val_score(mod4, X_binary, y_binary, cv = 5L))  # Auto-uses accuracy
##   |                                                                              |                                                                      |   0%  |                                                                              |==============                                                        |  20%  |                                                                              |============================                                          |  40%  |                                                                              |==========================================                            |  60%  |                                                                              |========================================================              |  80%  |                                                                              |======================================================================| 100%
## fold1 fold2 fold3 fold4 fold5 
##     1     1     1     1     1
cat("\nMean Accuracy:", mean(cv4), "\n")
## 
## Mean Accuracy: 1
# Multi-class classification
cat("4. Multi-class Classification\n")
## 4. Multi-class Classification
X_multi <- iris[, 1:4]
y_multi <- iris$Species  # factor with 3 levels → multi-class classification

mod4 <- Model$new(randomForest::randomForest)  # No task parameter!
mod4$fit(X_multi, y_multi, ntree = 50)
mod4$print()
## Model Object
## ------------
## Model function: self$model_fn 
## Fitted: TRUE 
## Task: classification 
## Training samples: 150 
## Features: 4 
## Classes: setosa, versicolor, virginica 
## Class distribution:
## 
##     setosa versicolor  virginica 
##         50         50         50
print(head(mod4$predict(X_multi)))
##      1      2      3      4      5      6 
## setosa setosa setosa setosa setosa setosa 
## Levels: setosa versicolor virginica
print(head(mod4$predict(X_binary, type="prob")))
##   setosa versicolor virginica
## 1      1          0         0
## 2      1          0         0
## 3      1          0         0
## 4      1          0         0
## 5      1          0         0
## 6      1          0         0
(cv4 <- cross_val_score(mod4, X_multi, y_multi, cv = 5L))  # Auto-uses accuracy
##   |                                                                              |                                                                      |   0%  |                                                                              |==============                                                        |  20%  |                                                                              |============================                                          |  40%  |                                                                              |==========================================                            |  60%  |                                                                              |========================================================              |  80%  |                                                                              |======================================================================| 100%
##     fold1     fold2     fold3     fold4     fold5 
## 0.9333333 1.0000000 0.9333333 0.9333333 1.0000000
cat("\nMean Accuracy:", mean(cv4), "\n")
## 
## Mean Accuracy: 0.96
mod4 <- Model$new(nnet::nnet) 
mod4$fit(X_multi, y_multi, size=50, trace=FALSE)
print(head(mod4$predict(X_multi, type="class")))
## [1] setosa setosa setosa setosa setosa setosa
## Levels: setosa versicolor virginica
(cv4 <- cross_val_score(mod4, X_multi, y_multi, fit_params=list(size=50L, 
                        cv = 5L, type="class", trace=FALSE)))
##   |                                                                              |                                                                      |   0%  |                                                                              |==============                                                        |  20%  |                                                                              |============================                                          |  40%  |                                                                              |==========================================                            |  60%  |                                                                              |========================================================              |  80%  |                                                                              |======================================================================| 100%
## fold1 fold2 fold3 fold4 fold5 
##     0     0     0     0     0
cat("\nMean Accuracy:", mean(cv4), "\n")
## 
## Mean Accuracy: 0
mod4 <- Model$new(e1071::svm)  # No task parameter!
mod4$fit(X_multi, y_multi, kernel="radial")
mod4$print()
## Model Object
## ------------
## Model function: self$model_fn 
## Fitted: TRUE 
## Task: classification 
## Training samples: 150 
## Features: 4 
## Classes: setosa, versicolor, virginica 
## Class distribution:
## 
##     setosa versicolor  virginica 
##         50         50         50
print(head(mod4$predict(X_multi)))
##      1      2      3      4      5      6 
## setosa setosa setosa setosa setosa setosa 
## Levels: setosa versicolor virginica
(cv4 <- cross_val_score(mod4, X_multi, y_multi, cv = 5L))  # Auto-uses accuracy
##   |                                                                              |                                                                      |   0%  |                                                                              |==============                                                        |  20%  |                                                                              |============================                                          |  40%  |                                                                              |==========================================                            |  60%  |                                                                              |========================================================              |  80%  |                                                                              |======================================================================| 100%
##     fold1     fold2     fold3     fold4     fold5 
## 0.9333333 1.0000000 0.9666667 0.9333333 1.0000000
cat("\nMean Accuracy:", mean(cv4), "\n")
## 
## Mean Accuracy: 0.9666667
mod4 <- Model$new(e1071::svm)  # No task parameter!
mod4$fit(X_multi, y_multi, kernel="polynomial", probability=TRUE)
mod4$print()
## Model Object
## ------------
## Model function: self$model_fn 
## Fitted: TRUE 
## Task: classification 
## Training samples: 150 
## Features: 4 
## Classes: setosa, versicolor, virginica 
## Class distribution:
## 
##     setosa versicolor  virginica 
##         50         50         50
print(head(mod4$predict(X_multi)))
##      1      2      3      4      5      6 
## setosa setosa setosa setosa setosa setosa 
## Levels: setosa versicolor virginica
(cv4 <- cross_val_score(mod4, X_multi, y_multi, cv = 5L))  # Auto-uses accuracy
##   |                                                                              |                                                                      |   0%  |                                                                              |==============                                                        |  20%  |                                                                              |============================                                          |  40%  |                                                                              |==========================================                            |  60%  |                                                                              |========================================================              |  80%  |                                                                              |======================================================================| 100%
##     fold1     fold2     fold3     fold4     fold5 
## 0.9333333 1.0000000 0.9666667 0.9333333 1.0000000
cat("\nMean Accuracy:", mean(cv4), "\n")
## 
## Mean Accuracy: 0.9666667

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.