Το dataset Mall Customers παρέχει πληροφορίες για 200 άτομα που επισκέπτονται ένα εμπορικό κέντρο, συμπεριλαμβανομένων δημογραφικών στοιχείων, ετήσιου εισοδήματος και συνηθειών δαπανών. Το σετ αυτό είναι χρήσιμο για ερευνητική ανάλυση δεδομένων, τμηματοποίηση πελατών και εργασίες ομαδοποίησης.
| Μεταβλητή | Περιγραφή |
|---|---|
| CustomerID | Ανγνωριστικό πελάτη |
| Genre | Φύλο (male/female) |
| Age | Ηλικία |
| Annual Income (k$) | Ετήσιο εισόδημα |
| Spending Score (1-100) | Δείκτης Καταναλωτικής Συμπεριφοράς |
summary(customers)
## CustomerID Genre Age Annual Income (k$)
## Length:200 Length:200 Min. :18.00 Min. : 15.00
## Class :character Class :character 1st Qu.:28.75 1st Qu.: 41.50
## Mode :character Mode :character Median :36.00 Median : 61.50
## Mean :38.85 Mean : 60.56
## 3rd Qu.:49.00 3rd Qu.: 78.00
## Max. :70.00 Max. :137.00
## Spending Score (1-100)
## Min. : 1.00
## 1st Qu.:34.75
## Median :50.00
## Mean :50.20
## 3rd Qu.:73.00
## Max. :99.00
ggplot(customers, aes(x = `Spending Score (1-100)`, y = `Annual Income (k$)`)) +
geom_point(color = "#0073C2", alpha = 0.6, size = 2.5) +
theme_minimal(base_size = 14) +
labs(
x = "Δείκτης Καταναλωτικής Συμπεριφοράς",
y = "Ετήσιο Εισόδημα"
)
Σχόλια - Παρατηρήσεις
Έλλειψη γραμμικής συσχέτισης: Δεν φαίνεται να υπάρχει καθαρή γραμμική σχέση μεταξύ του ετήσιου εισοδήματος και του δείκτη καταναλωτικής συμπεριφοράς. Πελάτες με παρόμοιο εισόδημα παρουσιάζουν μεγάλη διακύμανση στη δαπανητική τους συμπεριφορά.
Άτομα με υψηλό Spending Score και χαμηλό εισόδημα: Υπάρχουν πελάτες με χαμηλό εισόδημα αλλά υψηλή δαπανητική συμπεριφορά, που μπορεί να ανήκουν σε πιο παρορμητικές ομάδες αγοραστών.
Άτομα με υψηλό εισόδημα και χαμηλό Spending Score: Αντίστοιχα, κάποιοι με υψηλό εισόδημα εμφανίζουν χαμηλό δείκτη δαπανών — ενδεχομένως πρόκειται για συντηρητικούς ή μη καταναλωτικούς πελάτες.
Υπάρχουν ομαδοποιήσεις(clusters): Φαίνονται ορατά σημεία συγκέντρωσης (π.χ. γύρω από Spending Score ≈ 50 και εισόδημα ≈ 40–70), που υποδηλώνουν την ύπαρξη ομάδων πελατών με παρόμοια χαρακτηριστικά, κάτι που καθιστά το dataset ιδανικό για clustering μεθόδους (όπως K-means).
ggplot(customers, aes(x= Age)) + geom_histogram(binwidth=0.9, fill="#0073C2", color="black") + labs(x="Age", y="Frequency")
Σχόλια - Παρατηρήσεις
Ηλικιακή κατανομή πελατών: Η πλειοψηφία των πελατών φαίνεται να συγκεντρώνεται στις ηλικίες 20–40 ετών, με αιχμές γύρω στα 30 και 35 έτη.Υπάρχει επίσης μία αισθητή παρουσία στην περιοχή των 60–70, αν και σε μικρότερους αριθμούς.
Διασπορά ηλικιών: Η ηλικιακή κατανομή είναι αρκετά διασκορπισμένη, χωρίς απόλυτα κυρίαρχες ηλικίες.Υπάρχουν πολλοί πελάτες και κάτω των 30 και άνω των 50, κάτι που υποδηλώνει ποικιλομορφία στο αγοραστικό κοινό.
Αρχικά, γίνεται επιλογή των μεταβλητών για το clustering.
customers_data <- customers[, c("Annual Income (k$)", "Spending Score (1-100)")]
Στη συνέχεια, επιλέγεται ο k-means με 5 clusters, καθώς το dataset είναι μικρού μεγέθους με 200 εγγραφες.
set.seed(123)
kmeans_result <- kmeans(customers_data, centers = 5, nstart = 25)
Προσθέτω τις στήλες με τα clusters και τα centers στο dataset, προκειμένου να δημιουργήσω το διάγραμμα συσταδοποίησης.
customers$Cluster <- as.factor(kmeans_result$cluster)
centers <- as.data.frame(kmeans_result$centers)
| Cluster | Μέσο Εισόδημα (k$) | Μέσος Δείκτης Κατανάλωσης | Πλήθος Πελατών | Σχόλιο |
|---|---|---|---|---|
| 1 | 55.3 | 49.5 | 81 | Μέσο εισόδημα & μέση κατανάλωση – σταθεροί πελάτες |
| 2 | 26.3 | 20.9 | 23 | Χαμηλό εισόδημα & χαμηλή κατανάλωση – περιορισμένο δυναμικό |
| 3 | 25.7 | 79.4 | 22 | Χαμηλό εισόδημα & υψηλή κατανάλωση – παρορμητικοί |
| 4 | 88.2 | 17.1 | 35 | Υψηλό εισόδημα & χαμηλή κατανάλωση – συντηρητικοί |
| 5 | 86.5 | 82.1 | 39 | Υψηλό εισόδημα & υψηλή κατανάλωση – ιδανικοί πελάτες |
Τέλος, η συσταδοποίηση πελατών του εμπορικού κέντρου ανέδειξε πέντε σαφώς διακριτές ομάδες, οι οποίες μπορούν να χρησιμοποιηθούν για στοχευμένη στρατηγική marketing, βελτίωση εμπειρίας πελάτη, και αύξηση πωλήσεων.