library(caret)
## Warning: package 'caret' was built under R version 4.2.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.2.3
## Loading required package: lattice
# Memuat dataset iris
data(iris)
# Memisahkan data menjadi variabel independen (x) dan variabel dependen (y)
x <- iris[, 1:4]
y <- iris[, 5]
# Mengubah variabel dependen menjadi faktor
y <- as.factor(y)
# Membagi data menjadi data latih dan data uji
set.seed(123)
trainIndex <- createDataPartition(y, p = 0.8, list = FALSE)
trainData <- x[trainIndex, ]
trainLabels <- y[trainIndex]
testData <- x[-trainIndex, ]
testLabels <- y[-trainIndex]
library(randomForest)
## Warning: package 'randomForest' was built under R version 4.2.3
## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
##
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
##
## margin
# Membuat model Random Forest
model <- randomForest(trainData, trainLabels)
# Melihat ringkasan model
print(model)
##
## Call:
## randomForest(x = trainData, y = trainLabels)
## Type of random forest: classification
## Number of trees: 500
## No. of variables tried at each split: 2
##
## OOB estimate of error rate: 5%
## Confusion matrix:
## setosa versicolor virginica class.error
## setosa 40 0 0 0.000
## versicolor 0 37 3 0.075
## virginica 0 3 37 0.075
# Memprediksi label menggunakan data uji
predictions <- predict(model, testData)
# Menghitung akurasi
accuracy <- sum(predictions == testLabels) / length(predictions)
print(paste("Akurasi:", accuracy))
## [1] "Akurasi: 0.933333333333333"