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