Για την παρούσα εργασία επιλέχθηκε το dataset penguins. Περιλαμβάνει μετρήσεις για 344 πιγκουίνους από τρία είδη (Adelie, Chinstrap, Gentoo) στην Ανταρκτική.
Οι μεταβλητές που θα χρησιμοποιήσουμε για τη συσταδοποίηση είναι:
Μήκος ράμφους (bill_length_mm)
Βάθος ράμφους (bill_depth_mm)
Μήκος πτερυγίου (flipper_length_mm)
Βάρος σώματος (body_mass_g)
#Δεν θα χρησιμοποιησουμε τις μεταβλητές island, sex, year.
penguins$island = NULL
penguins$sex = NULL
penguins$year = NULL
penguins$species <- NULL
#Αφαιρεση κενων
penguins <- na.omit(penguins)
# Κανονικοποίηση
penguins_scaled <- scale(penguins)
# Υπολογισμός αποστάσεων
distances <- dist(penguins_scaled, method = "euclidean")
clusterPenguins = hclust(distances, method = "ward.D2")
#Δημιουργία δενδρογραμματος
plot(clusterPenguins)
Θα εφαρμόσουμε τον αλγόριθμο K-means με k=3 ομάδες, καθώς γνωρίζουμε ότι υπάρχουν 3 είδη πιγκουίνων.
# Εκτέλεση K-means με 3 ομάδες
set.seed(123)
km_output <- kmeans(penguins_scaled, centers = 3, nstart = 25)
table(km_output$cluster)
##
## 1 2 3
## 123 132 87
plot(penguins_scaled[,1], penguins_scaled[,2],
col = km_output$cluster,
pch = 19,
xlab = "Bill Length (scaled)",
ylab = "Bill Depth (scaled)",
main = "Διάγραμμα 1: Χαρακτηριστικά Ράμφους")
plot(penguins_scaled[,3], penguins_scaled[,4],
col = km_output$cluster,
pch = 19,
xlab = "Flipper Length (scaled)",
ylab = "Body Mass (scaled)",
main = "Διάγραμμα 2: Μέγεθος και Βάρος")