Load the iris dataset

Dataset iris terdiri dari pengukuran untuk tiga spesies bunga iris. Berikut adalah contoh pengukuran dari dataset ini.

data(iris)
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa

Eksplorasi Data

Mari kita lihat ringkasan statistik dari data iris.

summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Visualisasi distribusi panjang dan lebar sepal.

library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  labs(title = "Distribusi Sepal Panjang vs Lebar",
       x = "Sepal Length",
       y = "Sepal Width")

Pembagian Data

Kita akan membagi data menjadi training set dan test set untuk evaluasi model.

set.seed(123)
trainIndex <- sample(1:nrow(iris), 0.7*nrow(iris))
trainData <- iris[trainIndex,]
testData <- iris[-trainIndex,]

Pembuatan Model

Kami akan membuat model klasifikasi menggunakan algoritma K-Nearest Neighbors (KNN).

library(class)
knn_model <- knn(train = trainData[,1:4], test = testData[,1:4], cl = trainData$Species, k = 3)

Evaluasi Model

Akurasi model dapat dievaluasi dengan membandingkan prediksi dengan nilai sebenarnya.

confusionMatrix <- table(testData$Species, knn_model)
confusionMatrix
##             knn_model
##              setosa versicolor virginica
##   setosa         14          0         0
##   versicolor      0         17         1
##   virginica       0          0        13
accuracy <- sum(diag(confusionMatrix)) / sum(confusionMatrix)
accuracy
## [1] 0.9777778

Kesimpulan

Dalam analisis ini, kami telah mengeksplorasi data iris dan membuat model klasifikasi menggunakan KNN. Model ini memberikan akurasi yang cukup baik dalam mengklasifikasikan spesies iris.