Το επιλεγμένο σύνολο δεδομένων περιέχει πληροφορίες σχετικά με διάφορα μοντέλα φορητών υπολογιστών, τις προδιαγραφές τους και τις αντίστοιχες τιμές τους. Είναι χρήσιμο για την ανάλυση του τρόπου με τον οποίο διάφορα χαρακτηριστικά (όπως η μάρκα, το μέγεθος της οθόνης, η μνήμη RAM και ο επεξεργαστής) επηρεάζουν την τιμή ενός φορητού υπολογιστή. Αυτό το σύνολο δεδομένων μπορεί να βοηθήσει τις επιχειρήσεις, τους καταναλωτές και τους αναλυτές να κατανοήσουν τις τάσεις της αγοράς και τις στρατηγικές τιμολόγησης.
Μετατροπή των Inches και RAM.
Στο αρχικό Dataset, τα attributes Inches,
Weight και RAM ήταν τύπου
Categorical, παρά το γεγονός ότι ήταν νούμερα.
Έγινε η μετατροπή τους σε Numeric για την καλύτερη
ερμηνεία του συνόλου.
Μετατροπή των τιμών.
Οι τιμές των φορητών υπολογιστών ήταν εκφρασμένες σε Ρουπία
Ινδίας.
Αυτές μετατράπηκαν σε ευρώ και έγινε στρογγυλοποίηση
των 2 δεκαδικών στοιχείων για καλύτερη κατανόηση του
συνόλου.
Έλεγχος και χειρισμός ελλιπών τιμών.
Τα αντικείμενα του συνόλου δεδομένων ήταν 1303.
Μετά τον έλεγχο για διπλότυπα και την αφαίρεση
των ελλιπών τιμών,
έμειναν 1273 αντικείμενα.
kable(df, format = "html", align = "c", escape = FALSE) %>%
kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE, position = "center") %>%
column_spec(3, bold = TRUE)| Χαρακτηριστικό | Περιγραφή | Τύπος |
|---|---|---|
| Εταιρεία | Η μάρκα του φορητού υπολογιστή (π.χ. Dell, HP, Apple). | Categorical |
| TypeName | Η κατηγορία/ο τύπος του φορητού υπολογιστή (π.χ. Gaming, Ultrabook, Notebook). | Categorical |
| Inches | Το μέγεθος της οθόνης του φορητού υπολογιστή σε ίντσες. | Numeric |
| ScreenResolution | Η ανάλυση της οθόνης (π.χ. 1920x1080, 4K). | Categorical |
| CPU | Τα στοιχεία του επεξεργαστή (π.χ. Intel Core i5, AMD Ryzen 7). | Categorical |
| RAM | Η ποσότητα της μνήμης τυχαίας προσπέλασης (RAM) σε gigabytes (GB). | Numeric |
| Μνήμη | Ο τύπος και το μέγεθος του αποθηκευτικού χώρου (π.χ. 256 GB SSD, 1 TB HDD). | Categorical |
| GPU | Η μονάδα επεξεργασίας γραφικών (π.χ. NVIDIA GTX 1650, Intel HD Graphics). | Categorical |
| Βάρος | Το βάρος του φορητού υπολογιστή σε κιλά(kg). | Numeric |
| Λειτουργικό Σύστημα | Το λειτουργικό σύστημα του φορητού υπολογιστή (π.χ. Windows, macOS, Linux). | Categorical |
| Τιμή | Η τιμή του φορητού υπολογιστή σε Ευρώ. | Numeric |
| IsExpensive | Κατηγοριοποιεί τα λάπτοπ σε ακριβά και μη ακριβά εάν η τιμή τους ξεπερνάει τα 800 ευρώ | Boolean |
Για την ανάλυση clustering επιλέχθηκαν οι μεταβλητές Ram και Weight, καθώς είναι αριθμητικές και ενδέχεται να αποκαλύψουν ομάδες laptops με παρόμοια χαρακτηριστικά. Πραγματοποιήθηκε κανονικοποίηση ώστε να αποφευχθεί η κυριαρχία κάποιας μεταβλητής λόγω διαφορετικής κλίμακας.
Υπολογίστηκε ο πίνακας αποστάσεων μεταξύ των παρατηρήσεων και κατασκευάστηκε ένα δενδροδιάγραμμα με τη μέθοδο Ward, η οποία ελαχιστοποιεί τη διασπορά εντός των ομάδων. Το διάγραμμα δείχνει τη διαδικασία συγχώνευσης των παρατηρήσεων σε ομάδες.
# Υπολογισμός αποστάσεων (ευκλείδεια απόσταση)
distMatrix <- dist(laptopClusterData, method = "euclidean")
# Δημιουργία του ιεραρχικού δέντρου με μέθοδο σύνδεσης ward.D2
hcModel <- hclust(distMatrix, method = "ward.D2")
# Οπτικοποίηση του δενδρογράμματος
plot(hcModel, labels = FALSE, main = "Δενδροδιάγραμμα Ιεραρχικής Συσταδοποίησης")Το δενδροδιάγραμμα «κόπηκε» σε 5 επίπεδα για να προκύψουν πέντε συστάδες. Οι κατηγορίες αποθηκεύτηκαν ως νέα μεταβλητή HC_Cluster στο dataset. Η επιλογή 5 clusters θεωρείται κατάλληλη γιατί οι ομάδες που προέκυψαν έχουν σαφή διαχωρισμό στο γράφημα και αντανακλούν διαφορετικούς τύπους laptops, όπως: ελαφριά με λίγη RAM, βασικά laptops, ισχυρά με πολλή RAM, βαριά (π.χ. gaming) κ.λπ. Αν είχαμε λιγότερα clusters, θα χάναμε χρήσιμη πληροφορία, ενώ περισσότερα θα δυσκόλευαν την ερμηνεία. Τα 5 clusters προσφέρουν καλή ισορροπία μεταξύ απλότητας και πληροφορίας. Στο κάθε cluster μπήκαν και ταιριαστά labels ανάλογα με τα χαραχτηριστικά τους.
# Κατηγοριοποίηση των παρατηρήσεων σε 5 clusters
clusters_hc <- cutree(hcModel, k = 5)
# Προσθήκη των clusters στο αρχικό dataset
laptopData$HC_Cluster <- factor(clusters_hc,
levels = c(1, 2, 3, 4, 5),
labels = c("Basic Lightweight",
"Basic Heavy",
"Balanced",
"High Performance",
"Gaming/Power Users"))
table(laptopData$HC_Cluster) %>%
kable(
col.names = c("Cluster", "Count"),
align = c("l", "l"), # l = left alignment
caption = "Αριθμός εγγραφών ανά συστάδα")| Cluster | Count |
|---|---|
| Basic Lightweight | 373 |
| Basic Heavy | 654 |
| Balanced | 178 |
| High Performance | 3 |
| Gaming/Power Users | 64 |
Οι πέντε συστάδες που προέκυψαν από την ιεραρχική συσταδοποίηση αποτυπώνονται σε διάγραμμα, με χρωματική διαφοροποίηση ανά ομάδα. Το γράφημα παρέχει οπτική κατανόηση του τρόπου με τον οποίο χωρίστηκαν τα laptops με βάση τη RAM και το βάρος.
ggplot(laptopData, aes(x = Ram, y = Weight, color = HC_Cluster)) +
geom_point(size = 2) +
labs(title = "Ιεραρχική Συσταδοποίηση Laptops (3 Clusters)",
x = "RAM (GB)", y = "Βάρος (kg)", color = "Cluster") +
theme_minimal()