Διερεύνηση του συνόλου δεδομένων

Γενική Περιγραφή

Το επιλεγμένο dataset είναι ένα απλό και ευρέως χρησιμοποιούμενο σύνολο δεδομένων που περιλαμβάνει βασικά δημογραφικά και συμπεριφορικά χαρακτηριστικά πελατών ενός εμπορικού κέντρου. Σκοπός του είναι η κατανόηση των καταναλωτικών προτύπων, η τμηματοποίηση πελατών και η εξαγωγή επιχειρηματικών συμπερασμάτων για τη βελτίωση της εμπειρίας των πελατών και της στρατηγικής μάρκετινγκ.

Πηγή δεδομένων:https://www.kaggle.com/datasets/vjchoudhary7/customer-segmentation-tutorial-in-python

Η συγκεκριμένη βάση δεδομένων συγκεντρώνει μεταβλητές που σχετίζονται με:

✅ Δημογραφικά χαρακτηριστικά (π.χ. φύλο, ηλικία)

✅ Οικονομικά στοιχεία (π.χ. ετήσιο εισόδημα)

✅ Καταναλωτική συμπεριφορά (π.χ. σκορ δαπανών – Spending Score)

Μεταβλητές του Dataset

Το dataset περιλαμβάνει 5 μεταβλητές.

Αναλυτικά παρουσιάζονται στον παρακάτω πίνακα.

Variable Description Variable_Type
CustomerID Αναγνωριστικός αριθμός πελάτη Κατηγορική
Gender Φύλο (Male/Female) Κατηγορική
Age Ηλικία πελάτη Αριθμητική
Annual Income (k$) Ετήσιο εισόδημα σε χιλιάδες δολάρια Αριθμητική
Spending Score (1-100) Βαθμολογία δαπανών (υπολογίζεται βάσει εισοδήματος και συμπεριφοράς) Αριθμητική



Συσταδοποίηση

Εισάγω τα δεδομένα του dataset για επεξεργασία.

library(readr)
mall <- read.csv("Mall_Customers.csv")

Επεξεργασία των δεδομένων

Για να διευκολυνθούμε θα πρέπει να ορίσουμε περιγραφικά ονόματα στις στήλες του dataset.

colnames(mall) = c("CustomerID", "Gender", "Age", "Annual_Income", "Spending_Score")

Δεν θα χρησιμοποιήσουμε τις μεταβλητές CustomerID και Gender.

mall$CustomerID = NULL
mall$Gender = NULL
mall
##     Age Annual_Income Spending_Score
## 1    19            15             39
## 2    21            15             81
## 3    20            16              6
## 4    23            16             77
## 5    31            17             40
## 6    22            17             76
## 7    35            18              6
## 8    23            18             94
## 9    64            19              3
## 10   30            19             72
## 11   67            19             14
## 12   35            19             99
## 13   58            20             15
## 14   24            20             77
## 15   37            20             13
## 16   22            20             79
## 17   35            21             35
## 18   20            21             66
## 19   52            23             29
## 20   35            23             98
## 21   35            24             35
## 22   25            24             73
## 23   46            25              5
## 24   31            25             73
## 25   54            28             14
## 26   29            28             82
## 27   45            28             32
## 28   35            28             61
## 29   40            29             31
## 30   23            29             87
## 31   60            30              4
## 32   21            30             73
## 33   53            33              4
## 34   18            33             92
## 35   49            33             14
## 36   21            33             81
## 37   42            34             17
## 38   30            34             73
## 39   36            37             26
## 40   20            37             75
## 41   65            38             35
## 42   24            38             92
## 43   48            39             36
## 44   31            39             61
## 45   49            39             28
## 46   24            39             65
## 47   50            40             55
## 48   27            40             47
## 49   29            40             42
## 50   31            40             42
## 51   49            42             52
## 52   33            42             60
## 53   31            43             54
## 54   59            43             60
## 55   50            43             45
## 56   47            43             41
## 57   51            44             50
## 58   69            44             46
## 59   27            46             51
## 60   53            46             46
## 61   70            46             56
## 62   19            46             55
## 63   67            47             52
## 64   54            47             59
## 65   63            48             51
## 66   18            48             59
## 67   43            48             50
## 68   68            48             48
## 69   19            48             59
## 70   32            48             47
## 71   70            49             55
## 72   47            49             42
## 73   60            50             49
## 74   60            50             56
## 75   59            54             47
## 76   26            54             54
## 77   45            54             53
## 78   40            54             48
## 79   23            54             52
## 80   49            54             42
## 81   57            54             51
## 82   38            54             55
## 83   67            54             41
## 84   46            54             44
## 85   21            54             57
## 86   48            54             46
## 87   55            57             58
## 88   22            57             55
## 89   34            58             60
## 90   50            58             46
## 91   68            59             55
## 92   18            59             41
## 93   48            60             49
## 94   40            60             40
## 95   32            60             42
## 96   24            60             52
## 97   47            60             47
## 98   27            60             50
## 99   48            61             42
## 100  20            61             49
## 101  23            62             41
## 102  49            62             48
## 103  67            62             59
## 104  26            62             55
## 105  49            62             56
## 106  21            62             42
## 107  66            63             50
## 108  54            63             46
## 109  68            63             43
## 110  66            63             48
## 111  65            63             52
## 112  19            63             54
## 113  38            64             42
## 114  19            64             46
## 115  18            65             48
## 116  19            65             50
## 117  63            65             43
## 118  49            65             59
## 119  51            67             43
## 120  50            67             57
## 121  27            67             56
## 122  38            67             40
## 123  40            69             58
## 124  39            69             91
## 125  23            70             29
## 126  31            70             77
## 127  43            71             35
## 128  40            71             95
## 129  59            71             11
## 130  38            71             75
## 131  47            71              9
## 132  39            71             75
## 133  25            72             34
## 134  31            72             71
## 135  20            73              5
## 136  29            73             88
## 137  44            73              7
## 138  32            73             73
## 139  19            74             10
## 140  35            74             72
## 141  57            75              5
## 142  32            75             93
## 143  28            76             40
## 144  32            76             87
## 145  25            77             12
## 146  28            77             97
## 147  48            77             36
## 148  32            77             74
## 149  34            78             22
## 150  34            78             90
## 151  43            78             17
## 152  39            78             88
## 153  44            78             20
## 154  38            78             76
## 155  47            78             16
## 156  27            78             89
## 157  37            78              1
## 158  30            78             78
## 159  34            78              1
## 160  30            78             73
## 161  56            79             35
## 162  29            79             83
## 163  19            81              5
## 164  31            81             93
## 165  50            85             26
## 166  36            85             75
## 167  42            86             20
## 168  33            86             95
## 169  36            87             27
## 170  32            87             63
## 171  40            87             13
## 172  28            87             75
## 173  36            87             10
## 174  36            87             92
## 175  52            88             13
## 176  30            88             86
## 177  58            88             15
## 178  27            88             69
## 179  59            93             14
## 180  35            93             90
## 181  37            97             32
## 182  32            97             86
## 183  46            98             15
## 184  29            98             88
## 185  41            99             39
## 186  30            99             97
## 187  54           101             24
## 188  28           101             68
## 189  41           103             17
## 190  36           103             85
## 191  34           103             23
## 192  32           103             69
## 193  33           113              8
## 194  38           113             91
## 195  47           120             16
## 196  35           120             79
## 197  45           126             28
## 198  32           126             74
## 199  32           137             18
## 200  30           137             83

Για να αφαιρέσουμε διπλές εγγραφές που τυχόν υπάρχουν στο dataset εκτελούμε την εξής εντολή:

mall = unique(mall) 
nrow(mall)
## [1] 200

Αφού ο αριθμός των εγγραφών παραμένει ίδιος αυτό μας υποδεικνύει ότι δεν υπάρχουν διπλότυπες εγγραφές.

Hierarchical Clustering στην R

Πριν προχωρήσουμε στη συσταδοποίηση, πρέπει να υπολογίσουμε τις αποστάσεις μεταξύ όλων των παρατηρήσεων στο dataset. Επιλέγουμε ευκλείδεια απόσταση και γράφουμε:

distances = dist(mall[0:3], method = "euclidean")

Κάνουμε Ιεραρχική Συσταδοποίηση:

clusterCustomers = hclust(distances, method = "ward.D2") 

Δημιουργία του Δενδρογράμματος

Χρησιμοποιούμε την εντολή plot:

plot(clusterCustomers)

Συμπερασματικά,η ιεραρχική ομαδοποίηση με βάση την ηλικία, το ετήσιο εισόδημα και τη βαθμολογία δαπανών έδειξε ότι οι πελάτες μπορούν να χωριστούν σε περίπου 4–5 διακριτές ομάδες. Αυτές οι ομάδες παρουσιάζουν παρόμοια δημογραφικά και αγοραστικά χαρακτηριστικά, γεγονός που μπορεί να αξιοποιηθεί για την ανάπτυξη στοχευμένων στρατηγικών marketing και προσαρμοσμένων προσφορών. Το δενδρόγραμμα δείχνει σαφή δομή και επιβεβαιώνει την ύπαρξη υπο-ομάδων μέσα στο πελατολόγιο του καταστήματος.

Clustering με K-means

Επιλέγουμε 4 clusters

clusterGroups = cutree(clusterCustomers, k = 4)
tapply(mall$Age, clusterGroups, mean)
##        1        2        3        4 
## 42.82075 24.85000 32.69231 41.68571
tapply(mall$Annual_Income, clusterGroups, mean)
##        1        2        3        4 
## 48.58491 24.95000 86.53846 88.22857
tapply(mall$Spending_Score, clusterGroups, mean)
##        1        2        3        4 
## 43.50943 81.00000 82.12821 17.28571

✅ Τι δείχνουν τα clusters στο Mall_Customers

Η λογική είναι η εξής:

Συνδυάζεται ηλικία, εισόδημα και καταναλωτική δαπάνη για να βρεθεί προφίλ πελατών με παρόμοια αγοραστική συμπεριφορά.

Τα clusters συνήθως ξεχωρίζουν ομάδες που έχουν παρόμοια δημογραφικά & μοτίβα αγορών.

Με βάση παρόμοιες αναλύσεις, τα μοτίβα που εμφανίζονται είναι τα εξής:

Cluster Income Spending Interpretation
1 Μέτριο Μέτριο Κανονικοί πελάτες, με σταθερή μέση δαπάνη
2 Χαμηλό Πολύ Υψηλό Παρά το χαμηλό εισόδημα, ξοδεύουν πολύ — πιθανόν νεαροί που ξοδεύουν ό,τι έχουν
3 Υψηλό Πολύ Υψηλό Πολύτιμοι πελάτες: υψηλό εισόδημα & ξοδεύουν πολύ
4 Υψηλό Πολύ Χαμηλό Παρά το υψηλό εισόδημα, ξοδεύουν πολύ λίγο — διστακτικοί, πιθανόν συντηρητικοί ή πελάτες που δεν ενδιαφέρονται

Αν πάρουμε την μέση τιμή της πρώτης στήλης για το cluster 1 θα έχουμε:

colMeans(subset(mall[0:3], clusterGroups == 1)) 
##            Age  Annual_Income Spending_Score 
##       42.82075       48.58491       43.50943

Συμπερασματικά,το Cluster 1 αποτελείται κυρίως από πελάτες με μέση ηλικία περίπου 43 ετών, μέσο ετήσιο εισόδημα περίπου 49 χιλιάδες δολάρια και μέση βαθμολογία δαπανών γύρω στο 43. Αυτό υποδηλώνει μια ομάδα σταθερών, τυπικών πελατών, χωρίς ακραία αγοραστική συμπεριφορά, που πιθανότατα αντιπροσωπεύει τον «μέσο» πελάτη του καταστήματος.