Perkembangan teknologi menghasilkan jumlah data yang semakin besar sehingga diperlukan metode yang tepat untuk mengolah dan menemukan pola di dalamnya. Salah satu metode yang dapat digunakan adalah clustering, yaitu teknik unsupervised learning untuk mengelompokkan data berdasarkan kemiripan karakteristik. Pada penelitian ini, metode K-Means Clustering diterapkan pada dataset Iris untuk mengelompokkan data berdasarkan karakteristik ukuran sepal dan petal. Analisis dilakukan dengan menentukan jumlah cluster menggunakan Elbow Method, kemudian mengevaluasi hasil pengelompokan menggunakan Silhouette Score dan Confusion Matrix.
Machine learning merupakan cabang ilmu yang mempelajari metode yang memungkinkan komputer mengenali pola dari data untuk menghasilkan suatu keputusan atau informasi. Machine learing secara umum terbagi menjadi supervised learning dan unsupervised learning. Pada penelitian ini digunakan unsupervised learning karena proses pengelompokan data dilakukan tanpa menggunakan label atau kategori yang telah ditentukan sebelumnya.
Clustering merupakan metode unsupervised learning yang digunakan untuk mengelompokkan objek berdasarkan kemiripan karakteristik atau atribut. Data yang memiliki karakteristik serupa akan ditempatkan dalam cluter yang sama, sedangkan data dengan karateristik berbeda akan berada pada cluster yang berbeda. Sebelum proses clustering, data dapat dilakukan standardisasi menggunakan z-score agar setiap variabel memiliki skala yang sebanding. Adapaun standardisasi z-score diformulakan sebagai berikut:
\(Z_{np} = \frac{X_{np} - \bar{X}_p}{S_p}\)
K-Means Clustering merupakan metode pengelompokan data dengan membagi observasi ke dalam sejumlah cluster berdasarkan kedekatan karakteristiknya. Proses K-Means dilakukan dengan menentukan jumlah cluster, menentukan pusat cluster (centroid), menghitung jarak setiap data terhadap centroid, kemudian menempatkan data pada cluster dengan jarak terdekat. Proses tersebut dilakukan secara berulang hingga tidak terhadi perubahan anggota cluster. Jarak antar data dan centroid dapat dihitung menggunakan jarak Euclidean:
\(d(x_i,c_k) = \sqrt{\sum_{j=1}^{p}(x_{ij}-c_{kj})^2}\)
Elbow Method merupakan metode yang digunakan untuk menentukan jumlah cluster yang optimal pada K-Means. Metode ini dilakukan dengan menghitung nilai Within-Cluster Sum of Squares (WSS) pada beberapa jumlah cluster. Jumlah cluster dipilih pada titik ketika penurunan nilai WSS mulai melandai dan membentuk pola seperti siku (elbow). Titik tersebut menunjukkan jumlah cluster yang dianggap optimal karena penambahan cluster setelahnya tidak memberikan penurunan WSS yang signifikan.
\(WSS_k = \sum_{j=1}^{k}\sum_{x_i \in C_j} d(x_i,\mu_j)^2\)
Silhouette Score digunakan untuk mengevaluasi kualitas hasil clustering berdasarkan tingkat kedekatan data dengan cluster-nya dan jaraknya terhadap cluster lain. Nilai Silhouette Score berada pada rentang -1 hingga 1, dengan nilai yang semakin mendekati 1 menunjukkan hasil pengelompokan yang semakin baik.
\(S_i = \frac{b_i-a_i}{\max(a_i,b_i)}\)
Keterangan: \(a_i\) merupakan rata-rata jarak suatu data terhadap data lain dalam cluster yang sama, sedangkan \(b_i\) merupakan rata-rata jarak data tersebut terhadap cluster lain yang terdekat.
Dataset yang digunakan dalam analisis ini adalah Iris Dataset yang umum digunakan dalam pembelajaran statistika. Data tersebut berisi hasil pengukuran fisik dari bunga Iris yang dikumpulkan oleh Edgar Anderson pada tahun 1935 dan terdiri dari 150 observasi dengan 5 variabel. Data mencakup tiga spesies bunga Iris, yaitu Iris setosa, Iris versicolor, dan Iris virginica. Empat variabel pertama merupakan variabel numerik yang berisi ukuran bagian bunga dalam satuan sentimeter, sedangkan variabel terakhir menunjukkan jenis atau spesies bunga. Variabel-variabel yang terdapat dalam dataset Iris adalah sebagai berikut:
| Variabel | Jenis_Data | Keterangan |
|---|---|---|
| Sepal.Length | Numerik | Panjang kelopak bunga dalam sentimeter |
| Sepal.Width | Numerik | Lebar kelopak bunga dalam sentimeter |
| Petal.Length | Numerik | Panjang mahkota bunga dalam sentimeter |
| Petal.Width | Numerik | Lebar mahkota bunga dalam sentimeter |
| Species | Kategorik | Jenis atau spesies bunga Iris |
Tabel berikut menyajikan seluruh 150 observasi pada dataset Iris yang terdiri dari tiga spesies, yaitu setosa, versicolor, dan virginica. Dataset memiliki jumlah observasi yang sama untuk setiap spesies, yaitu masing-masing 50 observasi.
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
| 4.6 | 3.4 | 1.4 | 0.3 | setosa |
| 5.0 | 3.4 | 1.5 | 0.2 | setosa |
| 4.4 | 2.9 | 1.4 | 0.2 | setosa |
| 4.9 | 3.1 | 1.5 | 0.1 | setosa |
| 5.4 | 3.7 | 1.5 | 0.2 | setosa |
| 4.8 | 3.4 | 1.6 | 0.2 | setosa |
| 4.8 | 3.0 | 1.4 | 0.1 | setosa |
| 4.3 | 3.0 | 1.1 | 0.1 | setosa |
| 5.8 | 4.0 | 1.2 | 0.2 | setosa |
| 5.7 | 4.4 | 1.5 | 0.4 | setosa |
| 5.4 | 3.9 | 1.3 | 0.4 | setosa |
| 5.1 | 3.5 | 1.4 | 0.3 | setosa |
| 5.7 | 3.8 | 1.7 | 0.3 | setosa |
| 5.1 | 3.8 | 1.5 | 0.3 | setosa |
| 5.4 | 3.4 | 1.7 | 0.2 | setosa |
| 5.1 | 3.7 | 1.5 | 0.4 | setosa |
| 4.6 | 3.6 | 1.0 | 0.2 | setosa |
| 5.1 | 3.3 | 1.7 | 0.5 | setosa |
| 4.8 | 3.4 | 1.9 | 0.2 | setosa |
| 5.0 | 3.0 | 1.6 | 0.2 | setosa |
| 5.0 | 3.4 | 1.6 | 0.4 | setosa |
| 5.2 | 3.5 | 1.5 | 0.2 | setosa |
| 5.2 | 3.4 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.6 | 0.2 | setosa |
| 4.8 | 3.1 | 1.6 | 0.2 | setosa |
| 5.4 | 3.4 | 1.5 | 0.4 | setosa |
| 5.2 | 4.1 | 1.5 | 0.1 | setosa |
| 5.5 | 4.2 | 1.4 | 0.2 | setosa |
| 4.9 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.2 | 1.2 | 0.2 | setosa |
| 5.5 | 3.5 | 1.3 | 0.2 | setosa |
| 4.9 | 3.6 | 1.4 | 0.1 | setosa |
| 4.4 | 3.0 | 1.3 | 0.2 | setosa |
| 5.1 | 3.4 | 1.5 | 0.2 | setosa |
| 5.0 | 3.5 | 1.3 | 0.3 | setosa |
| 4.5 | 2.3 | 1.3 | 0.3 | setosa |
| 4.4 | 3.2 | 1.3 | 0.2 | setosa |
| 5.0 | 3.5 | 1.6 | 0.6 | setosa |
| 5.1 | 3.8 | 1.9 | 0.4 | setosa |
| 4.8 | 3.0 | 1.4 | 0.3 | setosa |
| 5.1 | 3.8 | 1.6 | 0.2 | setosa |
| 4.6 | 3.2 | 1.4 | 0.2 | setosa |
| 5.3 | 3.7 | 1.5 | 0.2 | setosa |
| 5.0 | 3.3 | 1.4 | 0.2 | setosa |
| 7.0 | 3.2 | 4.7 | 1.4 | versicolor |
| 6.4 | 3.2 | 4.5 | 1.5 | versicolor |
| 6.9 | 3.1 | 4.9 | 1.5 | versicolor |
| 5.5 | 2.3 | 4.0 | 1.3 | versicolor |
| 6.5 | 2.8 | 4.6 | 1.5 | versicolor |
| 5.7 | 2.8 | 4.5 | 1.3 | versicolor |
| 6.3 | 3.3 | 4.7 | 1.6 | versicolor |
| 4.9 | 2.4 | 3.3 | 1.0 | versicolor |
| 6.6 | 2.9 | 4.6 | 1.3 | versicolor |
| 5.2 | 2.7 | 3.9 | 1.4 | versicolor |
| 5.0 | 2.0 | 3.5 | 1.0 | versicolor |
| 5.9 | 3.0 | 4.2 | 1.5 | versicolor |
| 6.0 | 2.2 | 4.0 | 1.0 | versicolor |
| 6.1 | 2.9 | 4.7 | 1.4 | versicolor |
| 5.6 | 2.9 | 3.6 | 1.3 | versicolor |
| 6.7 | 3.1 | 4.4 | 1.4 | versicolor |
| 5.6 | 3.0 | 4.5 | 1.5 | versicolor |
| 5.8 | 2.7 | 4.1 | 1.0 | versicolor |
| 6.2 | 2.2 | 4.5 | 1.5 | versicolor |
| 5.6 | 2.5 | 3.9 | 1.1 | versicolor |
| 5.9 | 3.2 | 4.8 | 1.8 | versicolor |
| 6.1 | 2.8 | 4.0 | 1.3 | versicolor |
| 6.3 | 2.5 | 4.9 | 1.5 | versicolor |
| 6.1 | 2.8 | 4.7 | 1.2 | versicolor |
| 6.4 | 2.9 | 4.3 | 1.3 | versicolor |
| 6.6 | 3.0 | 4.4 | 1.4 | versicolor |
| 6.8 | 2.8 | 4.8 | 1.4 | versicolor |
| 6.7 | 3.0 | 5.0 | 1.7 | versicolor |
| 6.0 | 2.9 | 4.5 | 1.5 | versicolor |
| 5.7 | 2.6 | 3.5 | 1.0 | versicolor |
| 5.5 | 2.4 | 3.8 | 1.1 | versicolor |
| 5.5 | 2.4 | 3.7 | 1.0 | versicolor |
| 5.8 | 2.7 | 3.9 | 1.2 | versicolor |
| 6.0 | 2.7 | 5.1 | 1.6 | versicolor |
| 5.4 | 3.0 | 4.5 | 1.5 | versicolor |
| 6.0 | 3.4 | 4.5 | 1.6 | versicolor |
| 6.7 | 3.1 | 4.7 | 1.5 | versicolor |
| 6.3 | 2.3 | 4.4 | 1.3 | versicolor |
| 5.6 | 3.0 | 4.1 | 1.3 | versicolor |
| 5.5 | 2.5 | 4.0 | 1.3 | versicolor |
| 5.5 | 2.6 | 4.4 | 1.2 | versicolor |
| 6.1 | 3.0 | 4.6 | 1.4 | versicolor |
| 5.8 | 2.6 | 4.0 | 1.2 | versicolor |
| 5.0 | 2.3 | 3.3 | 1.0 | versicolor |
| 5.6 | 2.7 | 4.2 | 1.3 | versicolor |
| 5.7 | 3.0 | 4.2 | 1.2 | versicolor |
| 5.7 | 2.9 | 4.2 | 1.3 | versicolor |
| 6.2 | 2.9 | 4.3 | 1.3 | versicolor |
| 5.1 | 2.5 | 3.0 | 1.1 | versicolor |
| 5.7 | 2.8 | 4.1 | 1.3 | versicolor |
| 6.3 | 3.3 | 6.0 | 2.5 | virginica |
| 5.8 | 2.7 | 5.1 | 1.9 | virginica |
| 7.1 | 3.0 | 5.9 | 2.1 | virginica |
| 6.3 | 2.9 | 5.6 | 1.8 | virginica |
| 6.5 | 3.0 | 5.8 | 2.2 | virginica |
| 7.6 | 3.0 | 6.6 | 2.1 | virginica |
| 4.9 | 2.5 | 4.5 | 1.7 | virginica |
| 7.3 | 2.9 | 6.3 | 1.8 | virginica |
| 6.7 | 2.5 | 5.8 | 1.8 | virginica |
| 7.2 | 3.6 | 6.1 | 2.5 | virginica |
| 6.5 | 3.2 | 5.1 | 2.0 | virginica |
| 6.4 | 2.7 | 5.3 | 1.9 | virginica |
| 6.8 | 3.0 | 5.5 | 2.1 | virginica |
| 5.7 | 2.5 | 5.0 | 2.0 | virginica |
| 5.8 | 2.8 | 5.1 | 2.4 | virginica |
| 6.4 | 3.2 | 5.3 | 2.3 | virginica |
| 6.5 | 3.0 | 5.5 | 1.8 | virginica |
| 7.7 | 3.8 | 6.7 | 2.2 | virginica |
| 7.7 | 2.6 | 6.9 | 2.3 | virginica |
| 6.0 | 2.2 | 5.0 | 1.5 | virginica |
| 6.9 | 3.2 | 5.7 | 2.3 | virginica |
| 5.6 | 2.8 | 4.9 | 2.0 | virginica |
| 7.7 | 2.8 | 6.7 | 2.0 | virginica |
| 6.3 | 2.7 | 4.9 | 1.8 | virginica |
| 6.7 | 3.3 | 5.7 | 2.1 | virginica |
| 7.2 | 3.2 | 6.0 | 1.8 | virginica |
| 6.2 | 2.8 | 4.8 | 1.8 | virginica |
| 6.1 | 3.0 | 4.9 | 1.8 | virginica |
| 6.4 | 2.8 | 5.6 | 2.1 | virginica |
| 7.2 | 3.0 | 5.8 | 1.6 | virginica |
| 7.4 | 2.8 | 6.1 | 1.9 | virginica |
| 7.9 | 3.8 | 6.4 | 2.0 | virginica |
| 6.4 | 2.8 | 5.6 | 2.2 | virginica |
| 6.3 | 2.8 | 5.1 | 1.5 | virginica |
| 6.1 | 2.6 | 5.6 | 1.4 | virginica |
| 7.7 | 3.0 | 6.1 | 2.3 | virginica |
| 6.3 | 3.4 | 5.6 | 2.4 | virginica |
| 6.4 | 3.1 | 5.5 | 1.8 | virginica |
| 6.0 | 3.0 | 4.8 | 1.8 | virginica |
| 6.9 | 3.1 | 5.4 | 2.1 | virginica |
| 6.7 | 3.1 | 5.6 | 2.4 | virginica |
| 6.9 | 3.1 | 5.1 | 2.3 | virginica |
| 5.8 | 2.7 | 5.1 | 1.9 | virginica |
| 6.8 | 3.2 | 5.9 | 2.3 | virginica |
| 6.7 | 3.3 | 5.7 | 2.5 | virginica |
| 6.7 | 3.0 | 5.2 | 2.3 | virginica |
| 6.3 | 2.5 | 5.0 | 1.9 | virginica |
| 6.5 | 3.0 | 5.2 | 2.0 | virginica |
| 6.2 | 3.4 | 5.4 | 2.3 | virginica |
| 5.9 | 3.0 | 5.1 | 1.8 | virginica |
| 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 |
Berdasarkan statistik deskriptif, keempat variabel numerik memiliki nilai minimum, maksimum, median, dan rata-rata yang berbeda. Variabel Petal.Length dan Petal.Width menunjukkan rentang nilai yang lebih beragam dibandingkan beberapa karakteristik sepal.
data(iris)
library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Petal.Length)) +
geom_point(size = 3) +
labs(
title = "Persebaran Data Iris",
x = "Sepal Length (cm)",
y = "Petal Length (cm)"
)
Scatter plot menunjukkan persebaran 150 observasi berdasarkan Sepal.Length dan Petal.Length. Data terlihat memiliki pola persebaran yang berbeda pada beberapa bagian, sehingga terdapat indikasi adanya kelompok berdasarkan karakteristik pengukuran bunga. Pola tersebut selanjutnya dianalisis menggunakan metode K-Means Clustering.
iris_data <- iris[, 1:4]
head(iris_data)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 5.1 3.5 1.4 0.2
## 2 4.9 3.0 1.4 0.2
## 3 4.7 3.2 1.3 0.2
## 4 4.6 3.1 1.5 0.2
## 5 5.0 3.6 1.4 0.2
## 6 5.4 3.9 1.7 0.4
Pada tahap awal, dipilih empat variabel numerik, yaitu Sepal.Length, Sepal.Width, Petal.Length, dan Petal.Width. Variabel Species tidak digunakan dalam proses clustering karena merupakan variabel kategorik.
iris_scaled <- scale(iris_data)
head(iris_scaled)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## [1,] -0.8976739 1.01560199 -1.335752 -1.311052
## [2,] -1.1392005 -0.13153881 -1.335752 -1.311052
## [3,] -1.3807271 0.32731751 -1.392399 -1.311052
## [4,] -1.5014904 0.09788935 -1.279104 -1.311052
## [5,] -1.0184372 1.24503015 -1.335752 -1.311052
## [6,] -0.5353840 1.93331463 -1.165809 -1.048667
Selanjutnya dilakukan standardisasi data menggunakan fungsi
scale() agar setiap variabel memiliki skala yang sebanding
dalam proses clustering.
Sebelum melakukan K-Means, dilakukan penetuan jumlah cluster yang sesuai. Salah satu metode yang sederhana adalah Elbow Method. Jumlah cluster yang dipilih biasanya berada pada titik ketika penurunan WSS mulai melandai dan membentuk seperti siku (elbow).
library(factoextra)
fviz_nbclust(
iris_scaled,
kmeans,
method = "wss"
)
Berdasarkan grafik Elbow Method, penurunan nilai WSS terlihat cukup
besar hingga jumlah cluster 3, kemudian penurunannya mulai melandai.
Oleh karena itu, jumlah cluster yang digunakan dalam analisis K-Means
adalah 3 cluster.
set.seed(123)
kmeans_result <- kmeans(
iris_scaled,
centers = 3
)
kmeans_result
## K-means clustering with 3 clusters of sizes 50, 53, 47
##
## Cluster means:
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## 1 -1.01119138 0.85041372 -1.3006301 -1.2507035
## 2 -0.05005221 -0.88042696 0.3465767 0.2805873
## 3 1.13217737 0.08812645 0.9928284 1.0141287
##
## Clustering vector:
## [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [38] 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 2 2 2 3 2 2 2 2 2 2 2 2 3 2 2 2 2 3 2 2 2
## [75] 2 3 3 3 2 2 2 2 2 2 2 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 3 2 3 3 3 3 2 3 3 3 3
## [112] 3 3 2 2 3 3 3 3 2 3 2 3 2 3 3 2 3 3 3 3 3 3 2 2 3 3 3 2 3 3 3 2 3 3 3 2 3
## [149] 3 2
##
## Within cluster sum of squares by cluster:
## [1] 47.35062 44.08754 47.45019
## (between_SS / total_SS = 76.7 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Berdasarkan hasil Elbow Method, digunakan tiga cluster pada proses K-Means Clustering. Nilai set.seed(123) digunakan agar hasil pengelompokan tetap konsisten ketika kode dijalankan kembali.
iris$Cluster <- as.factor(kmeans_result$cluster)
table(iris$Cluster)
##
## 1 2 3
## 50 53 47
Hasil pengelompokan kemudian ditambahkan ke dataset sebagai variabel Cluster. Selanjutnya dihitung jumlah observasi pada masing-masing cluster untuk mengetahui distribusi data yang terbentuk.
fviz_cluster(
kmeans_result,
data = iris_scaled,
main = "Hasil K-Means Clustering Dataset Iris"
)
Visualisasi digunakan untuk melihat persebaran observasi berdasarkan
cluster yang telah terbentuk. Grafik ini memberikan gambaran mengenai
pemisahan antarcluster berdasarkan karakteristik data.
Hasil klasterisasi dievaluasi menggunakan Silhouette Score dan Confusion Matrix. Silhouette Score digunakan untuk mengetahui kualitas cluster yang terbentuk, sedangkan Confusion Matrix digunakan untuk membandingkan hasil cluster dengan label Species yang tersedia pada dataset.
library(cluster)
silhouette_result <- silhouette(
kmeans_result$cluster,
dist(iris_scaled)
)
mean(silhouette_result[, 3])
## [1] 0.4599482
Nilai rata-rata Silhouette Score digunakan untuk mengukur kualitas pengelompokan. Nilai yang mendekati 1 menunjukkan cluster yang semakin baik, sedangkan nilai mendekati 0 menunjukkan adanya kemiripan antarcluster.
table(
Cluster = kmeans_result$cluster,
Species = iris$Species
)
## Species
## Cluster setosa versicolor virginica
## 1 50 0 0
## 2 0 39 14
## 3 0 11 36
Confusion Matrix digunakan untuk melihat kesesuaian antara hasil cluster dengan spesies sebenarnya. Label Species tidak digunakan dalam pembentukan cluster, tetapi hanya digunakan sebagai pembanding pada tahap evaluasi.
prediksi <- c(
"setosa",
"versicolor",
"virginica"
)[kmeans_result$cluster]
akurasi <- mean(prediksi == iris$Species)
akurasi
## [1] 0.8333333
Berdasarkan hasil evaluasi, diperoleh akurasi sebesar 83,33%. Hal ini menunjukkan bahwa sebagian besar data berhasil dikelompokkan sesuai dengan label spesies sebenarnya.
Berdasarkan hasil analisis, data Iris dikelompokkan menggunakan empat
variabel numerik, yaitu Sepal.Length,
Sepal.Width, Petal.Length, dan
Petal.Width. Seluruh variabel kemudian distandardisasi agar
memiliki skala yang sebanding sehingga tidak ada variabel yang lebih
dominan dalam proses clustering. Berdasarkan Elbow Method, penurunan
nilai WSS terlihat cukup besar hingga jumlah cluster 3, kemudian mulai
melandai. Oleh karena itu, jumlah cluster yang digunakan dalam metode
K-Means adalah 3 cluster.
Hasil K-Means menghasilkan tiga cluster dengan jumlah anggota masing-masing 50, 53, dan 47 observasi. Cluster 1 memiliki nilai petal yang relatif rendah dan nilai sepal yang cenderung tinggi, sedangkan Cluster 3 memiliki nilai petal yang relatif tinggi. Cluster 2 memiliki karakteristik yang berada di antara kedua cluster tersebut. Hal ini juga terlihat pada visualisasi, di mana ketiga cluster dapat dipisahkan dengan cukup jelas, meskipun masih terdapat sedikit tumpang tindih antara Cluster 2 dan Cluster 3. Hasil tersebut menunjukkan bahwa karakteristik ukuran bunga dapat digunakan untuk membentuk kelompok yang berbeda. Ketika hasil clustering dibandingkan dengan label spesies, Cluster 1 seluruhnya sesuai dengan setosa, sedangkan Cluster 2 dan Cluster 3 sebagian besar sesuai dengan versicolor dan virginica. Secara keseluruhan, hasil pengelompokan menunjukkan bahwa metode K-Means mampu membentuk tiga kelompok dengan karakteristik yang cukup berbeda, terutama dalam ukuran petal.
Berdasarkan hasil analisis, metode K-Means Clustering berhasil mengelompokkan 150 observasi pada dataset Iris menjadi 3 cluster berdasarkan empat variabel numerik, yaitu Sepal.Length, Sepal.Width, Petal.Length, dan Petal.Width. Penentuan jumlah cluster dilakukan menggunakan Elbow Method, yang menunjukkan bahwa 3 cluster merupakan jumlah yang sesuai. Hasil pengelompokan terdiri dari 50, 53, dan 47 observasi, dengan pemisahan cluster yang cukup jelas terutama berdasarkan karakteristik ukuran petal. Ketika hasil clustering dibandingkan dengan label spesies yang tersedia, diperoleh akurasi sebesar 83,33%, yang menunjukkan bahwa sebagian besar observasi berhasil dikelompokkan sesuai dengan spesies sebenarnya. Dengan demikian, K-Means cukup baik digunakan untuk mengelompokkan data Iris berdasarkan karakteristik fisiknya.