Παρουσίαση του Dataset

Για την παρούσα εργασία επιλέχθηκε το 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-means με k=3 ομάδες, καθώς γνωρίζουμε ότι υπάρχουν 3 είδη πιγκουίνων.

# Εκτέλεση K-means με 3 ομάδες
set.seed(123)
km_output <- kmeans(penguins_scaled, centers = 3, nstart = 25)

Πόσα άτομα(πιγκουίνοι) πήγαν σε κάθε cluster

table(km_output$cluster)
## 
##   1   2   3 
## 123 132  87

Διάγραμμα 1

plot(penguins_scaled[,1], penguins_scaled[,2], 
     col = km_output$cluster, 
     pch = 19, 
     xlab = "Bill Length (scaled)", 
     ylab = "Bill Depth (scaled)",
     main = "Διάγραμμα 1: Χαρακτηριστικά Ράμφους")

Διάγραμμα 2

plot(penguins_scaled[,3], penguins_scaled[,4], 
     col = km_output$cluster, 
     pch = 19, 
     xlab = "Flipper Length (scaled)", 
     ylab = "Body Mass (scaled)",
     main = "Διάγραμμα 2: Μέγεθος και Βάρος")