Το “Spotify Tracks Dataset”


Το “Spotify Tracks Dataset” αντλήθηκε από το Kaggle σε μορφή CSV. Κάθε γραμμή του αντιπροσωπεύει ένα μεμονωμένο τραγούδι (καλύπτοντας συνολικά 125 διαφορετικά μουσικά είδη), ενώ οι στήλες καταγράφουν τα χαρακτηριστικά του.

Τα δεδομένα χωρίζονται σε δύο βασικές κατηγορίες:

  • Μεταδεδομένα (Metadata): Αναγνωριστικές πληροφορίες, όπως το όνομα του κομματιού, ο καλλιτέχνης και το μουσικό είδος (genre).

  • Ηχητικά Χαρακτηριστικά (Audio Features): Ποσοτικές μετρικές που εξάγονται απευθείας από το Spotify, όπως η χορευτικότητα (danceability), η ενέργεια (energy), ο ρυθμός (tempo), η ακουστικότητα (acousticness) και η θετικότητα/διάθεση (valence).



Γιατί Spotify & Business Analysis;


Η Spotify αποτελεί χαρακτηριστικό παράδειγμα data-driven οργανισμού. Συγκεκριμένα, αποδεικνύει πώς τα τεχνικά χαρακτηριστικά ενός προϊόντος (στην προκειμένη περίπτωση των τραγουδιών) μπορούν να μετατραπούν σε στρατηγική πληροφόρηση. Χρησιμοποιώντας δεδομένα όπως το danceability, το tempo ή το energy, ένας αναλυτής δεν κάνει απλώς στατιστική, αλλά εφαρμόζει τεχνικές Product Analytics για να κατανοήσει τη “συνταγή” της επιτυχίας. Η ανάλυση αυτών των ιδιοτήτων επιτρέπει στην επιχείρηση να προχωρήσει σε Predictive Modeling για την πρόβλεψη μελλοντικών hits, αλλά και σε Market Segmentation, ομαδοποιώντας το περιεχόμενο με βάση τις τάσεις της αγοράς και όχι μόνο το είδος της μουσικής. Ουσιαστικά, το Spotify δείχνει πώς η βαθιά γνώση των ιδιοτήτων του προϊόντος επιτρέπει σε μια εταιρεία να βελτιστοποιήσει το inventory της, να κατευθύνει τις προωθητικές της ενέργειες με ακρίβεια και να παίρνει αποφάσεις που μειώνουν το επιχειρηματικό ρίσκο, βασιζόμενη σε αντικειμενικά μετρήσιμα δεδομένα.


Τι κερδίζει η Spotify μέσω της Επιχειρηματικής Ανάλυσης;


1. Ποια είναι η «συνταγή» ενός Hit για την τρέχουσα σεζόν;

Υπάρχουν συγκεκριμένα τεχνικά χαρακτηριστικά (π.χ. υψηλό danceability και χαμηλό duration) που μοιράζονται τα τραγούδια με υψηλό popularity score. Η ανάλυση datasets όπως αυτού που μελετάμε παρακάτω βοηθά τις δισκογραφικές εταιρείες ή το Spotify (για τις δικές του παραγωγές) να επενδύσουν σε κομμάτια που έχουν μεγαλύτερη πιθανότητα εμπορικής επιτυχίας.

2. Πώς εξελίσσονται οι μουσικές τάσεις διαχρονικά;

Πώς έχουν αλλάξει οι μέσες τιμές του acousticness ή του tempo τα τελευταία 20 χρόνια; Η Spotify μπορεί να προβλέψει τον επόμενο κύκλο της μόδας στη μουσική και να προσαρμόσει το marketing ή την απόκτηση νέου περιεχομένου (inventory) πριν ο ανταγωνισμός αντιληφθεί την αλλαγή.

3. Μπορούμε να εντοπίσουμε «κενά» στην αγορά μέσω Clustering;

Αν ομαδοποιήσουμε τα τραγούδια βάσει των χαρακτηριστικών τους, υπάρχουν συνδυασμοί (π.χ. high energy + high valence) που δεν παρατηρούνται συχνά αλλά έχουν υψηλή μέση δημοτικότητα. Μέσα από αυτή την έρευνα είναι δυνατός ο εντοπισμός ευκαιριών για δημιουργία νέου περιεχομένου που ζητάει το κοινό αλλά δεν προσφέρεται επαρκώς.

4. Ποια χαρακτηριστικά καθορίζουν την «καταλληλότητα» για συγκεκριμένα contexts;

Ποια είναι τα κοινά χαρακτηριστικά των τραγουδιών που ταξινομούνται ως π.χ. “Acoustic” Η ανάλυση των χαρακτηριστικών αυτών βελτιστοποιεί την αυτόματη κατηγοριοποίηση του καταλόγου, ώστε οι διαφημιστές να μπορούν να στοχεύσουν σε συγκεκριμένες στιγμές της ημέρας του χρήστη (Contextual Advertising).

5. Ποιοι καλλιτέχνες παρουσιάζουν τη μεγαλύτερη «σταθερότητα» στο στυλ τους;

Πόσο μεγάλη είναι η διακύμανση (variance) των ηχητικών χαρακτηριστικών στη δισκογραφία ενός καλλιτέχνη; Για την Spotify ένας καλλιτέχνης με σταθερό προφίλ είναι “ασφαλής επένδυση”, ενώ ένας με μεγάλες αποκλίσεις μπορεί να είναι upcoming ή καινοτόμος, αλλά υψηλού ρίσκου για μια καμπάνια.



Σύντομο walkthrough στο Dataset


Note: Το εύρος τιμών προκύπτει από τα πραγματικά δεδομένα, ενώ οι αναμενόμενες τιμές που αναγράφονται στην περιγραφή είναι τυπικές
Column (τύπος [εύρος]) Περιγραφή
track_id (string) Μοναδικός κωδικός αναγνώρισης κάθε τραγουδιού στο Spotify.
artists (string) Ονόματα των καλλιτεχνών. Πολλαπλοί καλλιτέχνες διαχωρίζονται με ερωτηματικό (;).
album_name (string) Ο τίτλος του άλμπουμ στο οποίο περιλαμβάνεται το τραγούδι.
track_name (string) Ο τίτλος του τραγουδιού.
popularity (int [0,100] ). Δείκτης δημοτικότητας. Υπολογίζεται βάσει του αριθμού και της πρόσφατης δραστηριότητας των αναπαραγωγών.
duration_ms (int) Η διάρκεια του τραγουδιού σε χιλιοστά του δευτερολέπτου (ms).
explicit (boolean) Ένδειξη για ύπαρξη ακατάλληλου περιεχομένου (True: Ναι, False: Όχι/Άγνωστο).
danceability (boolean) Καταλληλότητα για χορό (0: ελάχιστα κατάλληλο, 1: απόλυτα κατάλληλο).
energy (boolean) Το επίπεδο έντασης και δραστηριότητας του κομματιού (0: ήρεμο, 1: πολύ ενεργητικό).
key (int [-1,11]) Η μουσική κλίμακα (τόνος) του τραγουδιού. Η τιμή -1 υποδηλώνει άγνωστη κλίμακα.
loudness (double [-49.5 , 5.93]) Η συνολική ηχητική ένταση του τραγουδιού σε ντεσιμπέλ (dB).
mode (boolean) Η τροπικότητα της κλίμακας: 1 = Μείζονα (ευχάριστος ήχος), 0 = Ελάσσονα (μελαγχολικός ήχος).
speechiness (double [0.00 ,1.00]) Παρουσία ομιλούμενου λόγου: >0.66 (ομιλία), 0.33-0.66 (μίξη ομιλίας/μουσικής), <0.33 (μουσική).
acousticness (double [0.00 ,1.00]) Πιθανότητα το τραγούδι να είναι ακουστικό (1 = πολύ υψηλή πιθανότητα).
instrumentalness (double [0.00 ,1.00]) Πιθανότητα το τραγούδι να μην έχει φωνητικά (1 = καθαρά οργανική μουσική).
liveness (double [0.00 ,1.00]) Πιθανότητα το τραγούδι να είναι ζωντανή ηχογράφηση (υψηλή τιμή = live εκτέλεση).
valence (double [0.00 ,1.00]) Η συναισθηματική θετικότητα του κομματιού (Υψηλή: χαρούμενο/θετικό, Χαμηλή: λυπημένο/αρνητικό).
tempo (double [0,243]) Ο ρυθμός του τραγουδιού μετρημένος σε χτύπους ανά λεπτό (BPM).
time_signature (int [0,5]) Ο αριθμός των χτύπων σε κάθε μέτρο (συνήθως μεταξύ 3 και 7).
track_genre (string) Η κατηγορία μουσικού είδους (genre) στην οποία ανήκει το τραγούδι.



Σημαντικά Στατιστικά Μεγέθη

Πίνακας 1: Ανάλυση Κεντρικής Τάσης Δημοτικότητας
Στατιστικό Μέγεθος Τιμή
Μέσος Όρος 33.24
Διάμεσος 35
Επικρατούσα Τιμή 0

Όπως φαίνεται στον πίνακα, η επικρατούσα τιμή είναι η μηδενική. Αυτό δεν υποδηλώνει κάποια αδυναμία στην αντιπροσωπευτικότητα του δείγματος, καθώς τα περισσότερα τραγούδια στο Spotify έχουν πολύ χαμηλή δημοτικότητα. Βλέποντας όμως αυτή τη παράδοξη τιμή, έχει σημασία να δούμε σε τι βαθμό επικρατεί των υπόλοιπων τιμών

# Ιστόγραμμα Κατανομής Δημοτικότητας Τραγουδιών
ggplot(mydata, aes(x = popularity)) +
  geom_histogram(binwidth = 2, fill = "#1DB954", color = "white") + # Spotify green
  theme_minimal() +
  labs(title = "Κατανομή Δημοτικότητας Τραγουδιών", x = "Δείκτης Δημοτικότητας", y = "Πλήθος Τραγουδιών")

Βλέπουμε λοιπόν ότι υπάρχει ένα “βουνό” από μηδενικές τιμές. Η πληροφορία αυτή θα μας φανεί χρήσιμη στη συνέχεια στην ερμηνεία των επόμενων μετρήεων.


Πίνακας 2: Ανάλυση Διασποράς Δημοτικότητας
Μέτρο Διασποράς Τιμή
Τυπική Απόκλιση 22.31
Διακύμανση 497.52
Εύρος (Range) 100.00

Η τυπική απόκλιση της δημοτικότητας (σ=22.31) καθώς και η πολύ υψηλή διακύμανση (497,52) υποδηλώνει σημαντική διασπορά στα δεδομένα. Η τιμή αυτή επιβεβαιώνει ότι το dataset περιλαμβάνει μια μεγάλη ποικιλία τραγουδιών, από κομμάτια με μηδενική ή πολύ χαμηλή απήχηση έως παγκόσμιες επιτυχίες με υψηλά σκορ. Η υψηλή μεταβλητότητα δείχνει ότι ο μέσος όρος δεν αποτελεί απόλυτα αντιπροσωπευτικό δείκτη για το σύνολο των τραγουδιών, καθώς οι τιμές «απλώνουν» σε ένα ευρύ φάσμα της κλίμακας 0-100. Σε συνδυασμό με τη μεγάλη μεταβλητότητα, λαμβάνοντας υπόψιν και την επικρατούσα τιμή που παρατηρήθηκε παραπάνω (μηδέν), μπορούμε να αντιληφθούμε ότι υπάρχουν πολλές τιμές οι οποίες απέχουν κατά πολύ από την επικρατούσα τιμή (π.χ. 70,80,90) και αυξάνουν εκρηκτικά την μεταβλητότητα

#Boxplot Διασποράς Δημοτικότητας
ggplot(mydata, aes(y = popularity)) +
  geom_boxplot(fill = "green", outlier.color = "red",alpha=0.7) +
  labs(title = "Boxplot Δημοτικότητας: Οπτικοποίηση της Διασποράς",
       y = "Δείκτης Δημοτικότητας (0-100)") +
  theme_minimal()

Το γράφημα δείχνει μια ευρεία διασπορά στη δημοτικότητα, με το κεντρικό 50% των τραγουδιών (το box) να εκτείνεται από το 18 έως το 50 περίπου. Η διάμεσος εντοπίζεται κοντά στο 35, υποδεικνύοντας ότι τα μισά τραγούδια βρίσκονται κάτω από αυτό το όριο. Τα “μουστάκια” (whiskers) που φτάνουν από το 0 έως το 100 επιβεβαιώνουν ότι το δείγμα καλύπτει όλο το διαθέσιμο φάσμα τιμών, ενώ η κόκκινη τελεία στο 100 αποτελεί μια ακραία τιμή (outlier), αντιπροσωπεύοντας τα απόλυτα hits που ξεφεύγουν από τη συνήθη κατανομή.

Διευρεύνηση σχέσεων μεταξύ Μεταβλητών

Προκειμένου να αντλήσουμε πιθανές σχέσεις μεταξύ των μετρήσιμων χαρακτηριστικών των τραγουδιών μπορούμε να δημιουργήσουμε πίνακες συσχετίσεων για τις κρίσιμες μεταβλητές.

Εν προκειμένω, για επιχειρηματικούς σκοπούς θα ήταν σημαντικό να ερευνηθεί εάν υπάρχει κάποιο από τα στοιχεία των τραγουδιών που να επηρεάζει θετικά η αρνητικά την δημοτικότητά τους. Στοχεύοντας στο να αποφύγουμε την επίδραση της επικρατούσας τιμής (0) στην μέτρηση περιορίσαμε το δείγμα σε τιμές άνω του μηδενός.

Συσχέτιση Δημοτικότητας με τα Χαρακτηριστικά των Τραγουδιών
Χαρακτηριστικό Ήχου Συντελεστής Pearson (r)
instrumentalness -0.182
speechiness -0.090
loudness 0.072
danceability 0.061
duration_ms -0.052
liveness -0.052
energy -0.033
tempo -0.018
valence -0.013
acousticness -0.009
key -0.003

Όπως φαίνεται, δεν υπάρχει κάποιο από τα χαρακτηριστικά που να επηρεάζει τη δημοτικότητα σε βαθμό ικανό ώστε να καταδεικνύεται αιτιώδης σχέση, εφόσον η τιμή Pearson δεν ξεπερνά σε καμία περίπτωση το |0.2| ώστε να μπορεί να εννοηθεί η παραμικρή συσχέτιση, επομένως η δημοφιλία ενός κομματιού δεν κρίνεται από τα τεχνικά του χαρακτηριστικά (τουλάχιστον τα μετρήσιμα).

Ένα άλλο σημείο ενδιαφέροντος από άποψη επιχειρηματικής ανάλυσης όπως αναφέραμε, συνιστά η επίδοση των καλλιτεχνών, η οποία καθορίζει και τον βαθμό στον οποίο η Spotify αξίζει να επενδύσει σε αυτούς. Επομένως, θα ήταν ωφέλιμη η κατάταξη των καλλιτεχνών από άποψη δημοτικότητας ή και η εύρεση μοτίβων που αυξάνουν τη δημοτικότητα των τραγουδιών τους (π.χ. ο Χ καλλιτέχνης κάνει περισσότερη επιτυχία σε dance κομμάτια και όχι σε acoustic).

Σε πρώτη φάση, θα επιχειρήσουμε να εντοπίσουμε τους ανερχόμενους καλλιτέχνες οι οποίοι μπορεί να αποτελέσουν σημείο προσοχής για την Spotify μελλοντικά. Ως κριτήρια για να χαρακτηρίσουμε έναν καλλιτέχνη ως ανερχόμενο, λάβαμε τις εξής προϋποθέσεις:

  1. Να έχει κυκλοφορήσει επιτυχία (τραγούδι με σκορ δημοτικότητας>80)

  2. Να έχει κυκλοφορήσει έως 3 τραγούδια

### 1. Bar Chart: Rising Stars

# 1. Διαχωρισμός συνεργασιών (Unnesting)
mydata_long <- mydata %>%
  separate_rows(artists, sep = ";") %>%
  mutate(artists = str_trim(artists))

# 2. Αφαίρεση Διπλοτύπων (Deduplication)
# Για κάθε καλλιτέχνη, αν ένα τραγούδι υπάρχει 5 φορές, κρατάμε μόνο τη Max δημοτικότητα
mydata_unique_hits <- mydata_long %>%
  group_by(artists, track_name) %>%
  filter(popularity == max(popularity)) %>%
  distinct(artists, track_name, .keep_all = TRUE) %>%
  ungroup()

# 3. Συγκεντρωτικά Στατιστικά & Φίλτρο > 80
elite_artists_final <- mydata_unique_hits %>%
  group_by(artists) %>%
  summarise(
    max_popularity = max(popularity, na.rm = TRUE),
    unique_tracks = n(),                            # Τώρα αυτό είναι το ΠΡΑΓΜΑΤΙΚΟ πλήθος
    avg_popularity = mean(popularity, na.rm = TRUE)
  ) %>%
  filter(max_popularity > 80) %>% 
  arrange(desc(max_popularity))

# Προετοιμασία
rising_stars_final <- elite_artists_final %>%
  filter(unique_tracks <= 3) %>%
  arrange(desc(avg_popularity)) %>%
  head(10)

# Γράφημα
ggplot(rising_stars_final, aes(x = reorder(artists, avg_popularity), y = avg_popularity)) +
  geom_col(fill = "#3498db", width = 0.7) + 
  # Το n μέσα στη μπάρα
  geom_text(aes(label = paste0("n=", unique_tracks)), 
            position = position_stack(vjust = 0.5), color = "white", fontface = "bold") +
  # Η τιμή της δημοτικότητας στην άκρη (προαιρετικά, για ευκρίνεια)
  geom_text(aes(label = round(avg_popularity, 1)), hjust = -0.2, size = 3) +
  coord_flip() +
  labs(title = "Rising Stars: Μέση Δημοτικότητα (n < 3)",
       subtitle = "Ο αριθμός n αντιπροσωπεύει τα μοναδικά tracks",
       x = "Καλλιτέχνης",
       y = "Μέση Δημοτικότητα") +
  theme_minimal()

Η κατηγορία αυτή αναδεικνύει τους καλλιτέχνες που, παρά το περιορισμένο εύρος του ρεπερτορίου τους στο δείγμα (n<3), καταγράφουν εξαιρετικά υψηλή μέση δημοτικότητα. Το γεγονός ότι κατάφεραν να “χτυπήσουν” σκορ άνω του 80 με ελάχιστες προσπάθειες υποδηλώνει μια εκρηκτική δυναμική και υψηλή αποδοτικότητα περιεχομένου. Επιχειρηματικά, οι Rising Stars αντιπροσωπεύουν τις “χρυσές ευκαιρίες” της Spotify, καθώς διαθέτουν το απαραίτητο momentum για να εξελιχθούν σε μελλοντικούς ηγέτες της αγοράς μέσω στοχευμένης προώθησης.

Ένα άλλο σημαντικό σημείο, είναι να μπορέσουμε να αποκωδικοποιήσουμε την συνταγή της επιτυχίας αυτών τον νέων καλλιτεχνών, αλλά και να ανακαλύψουμε μοτίβα που υποδεικνύουν πιθανότητες επιτυχίας από έναν ανερχόμενο καλλιτέχνη. Στο πλαίσιο αυτό, εξετάζουμε παρακάτω τον βαθμό στον οποίο η ένταση στα κομμάτια ανερχόμενων καλλιτεχνών συσχετίζεται με την δημοτικότητα τους, σε αντιδιαστολή με την αντίστοιχη σχέση έντασης-δημοτικότητας σε καλλιτέχνες που είναι διαχρονικά επιτυχημένοι.

#Scatterplot σχέσης δημοτικότητας-έντασης ανά κατηγορία καλλιτέχνη
library(tidyverse)

# 1. Δημιουργούμε τη βάση με τα όρια: >5 για Consistent και <3 για Rising
comparison_data <- elite_artists_final %>%
  mutate(category = case_when(
    unique_tracks > 5 ~ "Consistent Hitmaker",
    unique_tracks < 3 ~ "Rising Star",
    TRUE ~ "Intermediate" # Όσοι έχουν 3, 4 ή 5 κομμάτια
  )) %>%
  # Κρατάμε μόνο τις δύο κατηγορίες που μας ενδιαφέρουν για το γράφημα
  filter(category != "Intermediate") %>%
  select(artists, category) %>%
  inner_join(mydata_unique_hits, by = "artists")

# 2. Scatterplot με τις νέες κατηγοριοποιήσεις
ggplot(comparison_data, aes(x = loudness, y = popularity, color = category)) +
  geom_point(alpha = 0.3, size = 1.5) + 
  geom_smooth(method = "lm", se = TRUE, size = 1.2) + 
  scale_color_manual(values = c("#27ae60", "blue")) +
  labs(title = "Συσχέτιση Έντασης (Loudness) και Δημοτικότητας",
       subtitle = "Όρια: Consistent (>5 tracks) vs Rising (<3 tracks)",
       x = "Loudness (dB)",
       y = "Δημοτικότητα",
       color = "Κατηγορία Καλλιτέχνη") +
  theme_minimal() +
  theme(legend.position = "bottom")

Η ανάλυση συσχέτισης Loudness και Δημοτικότητας αναδεικνύει μια σαφή διαφορά στη στρατηγική επιτυχίας. Ενώ για τους Consistent Hitmakers η ένταση της παραγωγής παίζει δευτερεύοντα ρόλο –καθώς η δημοτικότητά τους διασφαλίζεται από το ισχυρό Brand Name τους– για τους Rising Stars η ένταση λειτουργεί ως καταλύτης. Η έντονη θετική κλίση της γραμμής τάσης των Rising Stars υποδηλώνει ότι η «δυνατή» παραγωγή αποτελεί σχεδόν προϋπόθεση για την είσοδο ενός νέου καλλιτέχνη στο mainstream στερέωμα, καθιστώντας το Loudness έναν κρίσιμο δείκτη για την πρόβλεψη της επιτυχίας νέων κυκλοφοριών.