CodeToLive

Machine Learning in R

R provides several packages for machine learning, such as caret, randomForest, e1071, and cluster.

Classification

Use the caret package to build classification models.


library(caret)
data(iris)

# Split data into training and testing sets
set.seed(123)
train_index <- createDataPartition(iris$Species, p = 0.8, list = FALSE)
train_data <- iris[train_index, ]
test_data <- iris[-train_index, ]

# Train a model
model <- train(Species ~ ., data = train_data, method = "rf")

# Make predictions
predictions <- predict(model, test_data)
confusionMatrix(predictions, test_data$Species)
      

Regression

Use the caret package to build regression models.


library(caret)
data(mtcars)

# Split data into training and testing sets
set.seed(123)
train_index <- createDataPartition(mtcars$mpg, p = 0.8, list = FALSE)
train_data <- mtcars[train_index, ]
test_data <- mtcars[-train_index, ]

# Train a model
model <- train(mpg ~ ., data = train_data, method = "lm")

# Make predictions
predictions <- predict(model, test_data)
postResample(predictions, test_data$mpg)
      

Clustering

Use the cluster package to perform clustering.


library(cluster)
data(iris)

# Perform k-means clustering
set.seed(123)
kmeans_result <- kmeans(iris[, 1:4], centers = 3)

# Add cluster labels to the data
iris$Cluster <- as.factor(kmeans_result$cluster)
print(table(iris$Species, iris$Cluster))
      

Model Evaluation

Use the caret package to evaluate models using cross-validation.


library(caret)
data(iris)

# Define training control
train_control <- trainControl(method = "cv", number = 10)

# Train a model with cross-validation
model <- train(Species ~ ., data = iris, method = "rf", trControl = train_control)

# Print model results
print(model)
      

Hyperparameter Tuning

Use the caret package to tune hyperparameters using grid search.


library(caret)
data(iris)

# Define tuning grid
tune_grid <- expand.grid(mtry = c(2, 3, 4))

# Train a model with hyperparameter tuning
model <- train(Species ~ ., data = iris, method = "rf", tuneGrid = tune_grid)

# Print the best model
print(model$bestTune)
      

Saving and Loading Models

Save trained models to disk and load them for future use.


library(caret)
data(iris)

# Train a model
model <- train(Species ~ ., data = iris, method = "rf")

# Save the model
saveRDS(model, "model.rds")

# Load the model
loaded_model <- readRDS("model.rds")
print(loaded_model)
      
Back to Tutorial