You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/el/5-Clustering/1-Visualize/README.md

38 KiB

Εισαγωγή στην ομαδοποίηση

Η ομαδοποίηση είναι ένας τύπος Ανεπίβλεπτου Μάθησης που προϋποθέτει ότι ένα σύνολο δεδομένων δεν έχει ετικέτες ή ότι οι είσοδοί του δεν αντιστοιχούν σε προκαθορισμένες εξόδους. Χρησιμοποιεί διάφορους αλγόριθμους για να ταξινομήσει τα μη επισημασμένα δεδομένα και να παρέχει ομαδοποιήσεις σύμφωνα με τα μοτίβα που διακρίνει στα δεδομένα.

No One Like You by PSquare

🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο. Ενώ μελετάτε μηχανική μάθηση με ομαδοποίηση, απολαύστε μερικά τραγούδια από Nigerian Dance Hall - αυτό είναι ένα ιδιαίτερα αξιολογημένο τραγούδι του 2014 από τους PSquare.

Κουίζ πριν την διάλεξη

Εισαγωγή

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

Σκεφτείτε για ένα λεπτό τις χρήσεις της ομαδοποίησης. Στην πραγματική ζωή, η ομαδοποίηση συμβαίνει κάθε φορά που έχετε ένα σωρό άπλυτα και πρέπει να διαχωρίσετε τα ρούχα των μελών της οικογένειάς σας 🧦👕👖🩲. Στη επιστήμη δεδομένων, η ομαδοποίηση συμβαίνει όταν προσπαθείτε να αναλύσετε τις προτιμήσεις ενός χρήστη ή να προσδιορίσετε τα χαρακτηριστικά οποιουδήποτε μη επισημασμένου συνόλου δεδομένων. Η ομαδοποίηση, με κάποιο τρόπο, βοηθά να φέρει τάξη στο χάος, όπως ένα συρτάρι με κάλτσες.

Introduction to ML

🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο: Ο John Guttag του MIT παρουσιάζει την ομαδοποίηση

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

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

🎓 Ενδιαφέρον, η ανάλυση ομαδοποίησης προήλθε από τους τομείς της Ανθρωπολογίας και της Ψυχολογίας τη δεκαετία του 1930. Μπορείτε να φανταστείτε πώς μπορεί να είχε χρησιμοποιηθεί;

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

Μόλις τα δεδομένα σας οργανωθούν σε ομάδες, τους αναθέτετε ένα αναγνωριστικό ομάδας (cluster Id), και αυτή η τεχνική μπορεί να είναι χρήσιμη για τη διατήρηση της ιδιωτικότητας ενός συνόλου δεδομένων· μπορείτε αντί να αναφέρεστε σε ένα σημείο δεδομένων με βάση το αναγνωριστικό του, αντί για πιο αποκαλυπτικά αναγνωρίσιμα στοιχεία. Μπορείτε να σκεφτείτε άλλους λόγους για τους οποίους θα αναφερόσασταν σε ένα αναγνωριστικό ομάδας παρά σε άλλα στοιχεία της ομάδας για να την ταυτοποιήσετε;

Εμβαθύνετε την κατανόηση των τεχνικών ομαδοποίησης σε αυτή τη Μονάδα Μάθησης

Ξεκινώντας με την ομαδοποίηση

Το Scikit-learn προσφέρει ένα μεγάλο φάσμα μεθόδων για την εκτέλεση ομαδοποίησης. Ο τύπος που θα επιλέξετε εξαρτάται από τη χρήση σας. Σύμφωνα με την τεκμηρίωση, κάθε μέθοδος έχει διάφορα πλεονεκτήματα. Εδώ είναι ένας απλοποιημένος πίνακας των μεθόδων που υποστηρίζονται από το Scikit-learn και των κατάλληλων περιπτώσεων χρήσης τους:

Όνομα μεθόδου Περίπτωση χρήσης
K-Means γενικής χρήσης, επαγωγική
Affinity propagation πολλές, ανισομερείς ομάδες, επαγωγική
Mean-shift πολλές, ανισομερείς ομάδες, επαγωγική
Spectral clustering λίγες, ομοιόμορφες ομάδες, μεταγωγική
Ward hierarchical clustering πολλές, περιορισμένες ομάδες, μεταγωγική
Agglomerative clustering πολλές, περιορισμένες, μη Ευκλείδειες αποστάσεις, μεταγωγική
DBSCAN μη επίπεδη γεωμετρία, ανισομερείς ομάδες, μεταγωγική
OPTICS μη επίπεδη γεωμετρία, ανισομερείς ομάδες με μεταβλητή πυκνότητα, μεταγωγική
Gaussian mixtures επίπεδη γεωμετρία, επαγωγική
BIRCH μεγάλο σύνολο δεδομένων με εκτός ορίων, επαγωγική

🎓 Ο τρόπος που δημιουργούμε ομάδες έχει πολύ να κάνει με το πώς συγκεντρώνουμε τα σημεία δεδομένων σε ομάδες. Ας αναλύσουμε μερικό λεξιλόγιο:

🎓 'Μεταγωγική' έναντι 'επαγωγικής'

Η μεταγωγική συμπερασματολογία προέρχεται από παρατηρούμενες περιπτώσεις εκπαίδευσης που αντιστοιχούν σε συγκεκριμένες περιπτώσεις δοκιμής. Η επαγωγική συμπερασματολογία προέρχεται από περιπτώσεις εκπαίδευσης που οδηγούν σε γενικούς κανόνες που εφαρμόζονται μόνο μετά σε περιπτώσεις δοκιμής.

Ένα παράδειγμα: Φανταστείτε ότι έχετε ένα σύνολο δεδομένων που είναι μόνο εν μέρει επισημασμένο. Κάποια είναι 'δίσκοι', κάποια 'cds', και κάποια είναι κενά. Η δουλειά σας είναι να παρέχετε ετικέτες για τα κενά. Αν επιλέξετε επαγωγική προσέγγιση, θα εκπαιδεύσετε ένα μοντέλο που αναζητά 'δίσκους' και 'cds', και θα εφαρμόσετε αυτές τις ετικέτες στα μη επισημασμένα δεδομένα σας. Αυτή η προσέγγιση θα δυσκολευτεί να ταξινομήσει πράγματα που είναι στην πραγματικότητα 'κασέτες'. Αντίθετα, μια μεταγωγική προσέγγιση χειρίζεται αυτά τα άγνωστα δεδομένα πιο αποτελεσματικά καθώς προσπαθεί να ομαδοποιήσει παρόμοια αντικείμενα μαζί και μετά να εφαρμόσει μια ετικέτα σε μια ομάδα. Σε αυτή την περίπτωση, οι ομάδες μπορεί να αντικατοπτρίζουν 'στρογγυλά μουσικά πράγματα' και 'τετράγωνα μουσικά πράγματα'.

🎓 'Μη-επίπεδη' έναντι 'επίπεδη' γεωμετρία

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

'Επίπεδη' σε αυτό το πλαίσιο αναφέρεται στην Ευκλείδεια γεωμετρία (μέρος της οποίας διδάσκεται ως 'επίπεδη' γεωμετρία), και μη-επίπεδη αναφέρεται στη μη-Ευκλείδεια γεωμετρία. Τι σχέση έχει η γεωμετρία με τη μηχανική μάθηση; Ως δύο τομείς που έχουν ως βασικό υπόβαθρο τα μαθηματικά, πρέπει να υπάρχει ένας κοινός τρόπος μέτρησης των αποστάσεων ανάμεσα σε σημεία σε ομάδες, και αυτό μπορεί να γίνει είτε με 'επίπεδη' είτε μη-επίπεδη μέθοδο, ανάλογα με τη φύση των δεδομένων. Οι Ευκλείδειες αποστάσεις μετρώνται ως το μήκος ενός ευθύγραμμου τμήματος ανάμεσα σε δύο σημεία. Οι Μη-Ευκλείδειες αποστάσεις μετρώνται κατά μήκος μιας καμπύλης. Αν τα δεδομένα σας, οπτικοποιημένα, φαίνεται να μην υπάρχουν σε ένα επίπεδο, ίσως χρειαστεί να χρησιμοποιήσετε έναν εξειδικευμένο αλγόριθμο για να τα χειριστείτε.

Flat vs Nonflat Geometry Infographic

Γραφικό από τον Dasani Madipalli

🎓 'Αποστάσεις'

Οι ομάδες ορίζονται από τον πίνακα αποστάσεων τους, π.χ. τις αποστάσεις μεταξύ των σημείων. Αυτή η απόσταση μπορεί να μετρηθεί με διάφορους τρόπους. Οι Ευκλείδειες ομάδες ορίζονται από τον μέσο όρο των τιμών των σημείων και περιέχουν ένα 'κέντρο' ή κεντρικό σημείο. Οι αποστάσεις μετρώνται ως η απόσταση προς αυτό το κέντρο. Οι μη Ευκλείδειες αποστάσεις αναφέρονται σε 'κλαστρόειδες', το σημείο που είναι πιο κοντά στα άλλα σημεία. Οι κλαστρόειδες με τη σειρά τους μπορούν να οριστούν με διάφορους τρόπους.

🎓 'Περιορισμένες'

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

Ένα παράδειγμα: Αν ένας αλγόριθμος απελευθερωθεί σε ένα σύνολο μη επισημασμένων ή ημι-επισημασμένων δεδομένων, οι ομάδες που παράγει μπορεί να είναι κακής ποιότητας. Στο παραπάνω παράδειγμα, οι ομάδες μπορεί να ομαδοποιούν 'στρογγυλά μουσικά πράγματα' και 'τετράγωνα μουσικά πράγματα' και 'τριγωνικά πράγματα' και 'μπισκότα'. Αν δοθούν κάποιοι περιορισμοί ή κανόνες προς τήρηση ("το αντικείμενο πρέπει να είναι από πλαστικό", "το αντικείμενο πρέπει να μπορεί να παράγει μουσική"), αυτό μπορεί να βοηθήσει να 'περιοριστεί' ο αλγόριθμος για να κάνει καλύτερες επιλογές.

🎓 'Πυκνότητα'

Δεδομένα που είναι 'θορυβώδη' θεωρούνται 'πυκνά'. Οι αποστάσεις μεταξύ των σημείων σε κάθε ομάδα μπορεί να αποδειχθούν, κατά την εξέταση, πιο ή λιγότερο πυκνές ή 'συνωστισμένες' και κατά συνέπεια αυτά τα δεδομένα πρέπει να αναλυθούν με την κατάλληλη μέθοδο ομαδοποίησης. Αυτό το άρθρο δείχνει τη διαφορά μεταξύ χρήσης K-Means clustering έναντι HDBSCAN αλγορίθμων για να εξερευνήσετε ένα θορυβώδες σύνολο δεδομένων με ανισομερή πυκνότητα ομάδων.

Αλγόριθμοι ομαδοποίησης

Υπάρχουν πάνω από 100 αλγόριθμοι ομαδοποίησης και η χρήση τους εξαρτάται από τη φύση των δεδομένων που έχετε. Ας συζητήσουμε μερικούς από τους σημαντικούς:

  • Ιεραρχική ομαδοποίηση. Αν ένα αντικείμενο ταξινομείται με βάση την εγγύτητά του με ένα κοντινό αντικείμενο, παρά με ένα πιο μακρινό, σχηματίζονται ομάδες βάσει της απόστασης των μελών τους προς και από άλλα αντικείμενα. Η συγκεντρωτική ομαδοποίηση του Scikit-learn είναι ιεραρχική.

    Hierarchical clustering Infographic

    Γραφικό από τον Dasani Madipalli

  • Ομαδοποίηση με κέντρο (Centroid clustering). Αυτός ο δημοφιλής αλγόριθμος απαιτεί την επιλογή του 'k', δηλαδή του αριθμού των ομάδων που θα σχηματιστούν, μετά απο τον οποίο ο αλγόριθμος προσδιορίζει το κεντρικό σημείο μιας ομάδας και συγκεντρώνει δεδομένα γύρω από αυτό το σημείο. Το K-means clustering είναι μια δημοφιλής εκδοχή της ομαδοποίησης με κέντρο. Το κέντρο προσδιορίζεται από τον πλησιέστερο μέσο όρο, εξ ου και το όνομα. Η τετραγωνική απόσταση από την ομάδα ελαχιστοποιείται.

    Centroid clustering Infographic

    Γραφικό από τον Dasani Madipalli

  • Ομαδοποίηση βάσει κατανομής. Βασισμένη στο στατιστικό μοντέλο, η ομαδοποίηση βάσει κατανομής επικεντρώνεται στον προσδιορισμό της πιθανότητας ότι ένα σημείο δεδομένων ανήκει σε μια ομάδα, και στην ανάθεση με αυτόν τον τρόπο. Οι μέθοδοι Gaussian mixtures ανήκουν σε αυτό τον τύπο.

  • Ομαδοποίηση βάσει πυκνότητας. Τα σημεία δεδομένων ανατίθενται σε ομάδες βάσει της πυκνότητάς τους, ή της συγκέντρωσής τους γύρω το ένα από το άλλο. Τα σημεία που είναι μακριά από την ομάδα θεωρούνται εκτός ορίων ή θόρυβος. Οι DBSCAN, Mean-shift και OPTICS ανήκουν σε αυτόν τον τύπο ομαδοποίησης.

  • Ομαδοποίηση βάσει πλέγματος. Για πολυδιάστατα σύνολα δεδομένων, δημιουργείται ένα πλέγμα και τα δεδομένα διαιρούνται ανάμεσα στα κελιά του πλέγματος, δημιουργώντας έτσι ομάδες.

Άσκηση - ομαδοποιήστε τα δεδομένα σας

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

  1. Ανοίξτε το αρχείο notebook.ipynb σε αυτόν τον φάκελο.

  2. Εισάγετε το πακέτο Seaborn για καλή οπτικοποίηση δεδομένων.

    !pip install seaborn
    
  3. Προσθέστε τα δεδομένα τραγουδιών από το nigerian-songs.csv. Φορτώστε ένα dataframe με κάποια δεδομένα για τα τραγούδια. Ετοιμαστείτε να εξερευνήσετε αυτά τα δεδομένα εισάγοντας τις βιβλιοθήκες και εμφανίζοντας τα δεδομένα:

    import matplotlib.pyplot as plt
    import pandas as pd
    
    df = pd.read_csv("../data/nigerian-songs.csv")
    df.head()
    

    Ελέγξτε τις πρώτες γραμμές των δεδομένων:

    name album artist artist_top_genre release_date length popularity danceability acousticness energy instrumentalness liveness loudness speechiness tempo time_signature
    0 Sparky Mandy & The Jungle Cruel Santino alternative r&b 2019 144000 48 0.666 0.851 0.42 0.534 0.11 -6.699 0.0829 133.015 5
    1 shuga rush EVERYTHING YOU HEARD IS TRUE Odunsi (The Engine) afropop 2020 89488 30 0.71 0.0822 0.683 0.000169 0.101 -5.64 0.36 129.993 3
    2 LITT! LITT! AYLØ indie r&b 2018 207758 40 0.836 0.272 0.564 0.000537 0.11 -7.127 0.0424 130.005 4
    3 Confident / Feeling Cool Enjoy Your Life Lady Donli nigerian pop 2019 175135 14 0.894 0.798 0.611 0.000187 0.0964 -4.961 0.113 111.087 4
    4 wanted you rare. Odunsi (The Engine) afropop 2018 152049 25 0.702 0.116 0.833 0.91 0.348 -6.044 0.0447 105.115 4
  4. Πάρε λίγες πληροφορίες για το dataframe, καλώντας info():

    df.info()
    

    Η έξοδος φαίνεται ως εξής:

    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 530 entries, 0 to 529
    Data columns (total 16 columns):
     #   Column            Non-Null Count  Dtype  
    ---  ------            --------------  -----  
     0   name              530 non-null    object 
     1   album             530 non-null    object 
     2   artist            530 non-null    object 
     3   artist_top_genre  530 non-null    object 
     4   release_date      530 non-null    int64  
     5   length            530 non-null    int64  
     6   popularity        530 non-null    int64  
     7   danceability      530 non-null    float64
     8   acousticness      530 non-null    float64
     9   energy            530 non-null    float64
     10  instrumentalness  530 non-null    float64
     11  liveness          530 non-null    float64
     12  loudness          530 non-null    float64
     13  speechiness       530 non-null    float64
     14  tempo             530 non-null    float64
     15  time_signature    530 non-null    int64  
    dtypes: float64(8), int64(4), object(4)
    memory usage: 66.4+ KB
    
  5. Διπλός έλεγχος για τιμές null, καλώντας isnull() και επιβεβαιώνοντας ότι το άθροισμα είναι 0:

    df.isnull().sum()
    

    Φαίνεται καλά:

    name                0
    album               0
    artist              0
    artist_top_genre    0
    release_date        0
    length              0
    popularity          0
    danceability        0
    acousticness        0
    energy              0
    instrumentalness    0
    liveness            0
    loudness            0
    speechiness         0
    tempo               0
    time_signature      0
    dtype: int64
    
  6. Περιγράψτε τα δεδομένα:

    df.describe()
    
    release_date length popularity danceability acousticness energy instrumentalness liveness loudness speechiness tempo time_signature
    count 530 530 530 530 530 530 530 530 530 530 530 530
    mean 2015.390566 222298.1698 17.507547 0.741619 0.265412 0.760623 0.016305 0.147308 -4.953011 0.130748 116.487864 3.986792
    std 3.131688 39696.82226 18.992212 0.117522 0.208342 0.148533 0.090321 0.123588 2.464186 0.092939 23.518601 0.333701
    min 1998 89488 0 0.255 0.000665 0.111 0 0.0283 -19.362 0.0278 61.695 3
    25% 2014 199305 0 0.681 0.089525 0.669 0 0.07565 -6.29875 0.0591 102.96125 4
    50% 2016 218509 13 0.761 0.2205 0.7845 0.000004 0.1035 -4.5585 0.09795 112.7145 4
    75% 2017 242098.5 31 0.8295 0.403 0.87575 0.000234 0.164 -3.331 0.177 125.03925 4
    max 2020 511738 73 0.966 0.954 0.995 0.91 0.811 0.582 0.514 206.007 5

🤔 Εάν δουλεύουμε με ομαδοποίηση, μια μη εποπτευόμενη μέθοδο που δεν απαιτεί επισημασμένα δεδομένα, γιατί δείχνουμε αυτά τα δεδομένα με ετικέτες; Στη φάση εξερεύνησης των δεδομένων, αυτές είναι χρήσιμες, αλλά δεν είναι απαραίτητες για να λειτουργήσουν οι αλγόριθμοι ομαδοποίησης. Μπορείτε εξίσου καλά να αφαιρέσετε τους τίτλους στηλών και να αναφερθείτε στα δεδομένα με αριθμό στήλης.

Κοιτάξτε τις γενικές τιμές των δεδομένων. Σημειώστε ότι η δημοφιλία μπορεί να είναι '0', που δείχνει τραγούδια χωρίς κατάταξη. Ας τα αφαιρέσουμε αυτά σύντομα.

  1. Χρησιμοποιήστε ένα ραβδογράφημα για να βρείτε τα πιο δημοφιλή είδη:

    import seaborn as sns
    
    top = df['artist_top_genre'].value_counts()
    plt.figure(figsize=(10,7))
    sns.barplot(x=top[:5].index,y=top[:5].values)
    plt.xticks(rotation=45)
    plt.title('Top genres',color = 'blue')
    

    most popular

Αν θέλετε να δείτε περισσότερες κορυφαίες τιμές, αλλάξτε τον αριθμό [:5] σε μεγαλύτερο, ή αφαιρέστε τον για να δείτε όλα.

Σημείωση, όταν το κορυφαίο είδος περιγράφεται ως 'Missing', αυτό σημαίνει ότι το Spotify δεν το κατέταξε, οπότε ας το αφαιρέσουμε.

  1. Απαλλαγείτε από τα ελλιπή δεδομένα φιλτράροντάς τα

    df = df[df['artist_top_genre'] != 'Missing']
    top = df['artist_top_genre'].value_counts()
    plt.figure(figsize=(10,7))
    sns.barplot(x=top.index,y=top.values)
    plt.xticks(rotation=45)
    plt.title('Top genres',color = 'blue')
    

    Τώρα επανελέγξτε τα είδη:

    most popular

  2. Με διαφορά, τα τρία κορυφαία είδη κυριαρχούν σε αυτό το σύνολο δεδομένων. Ας εστιάσουμε στο afro dancehall, afropop και nigerian pop, επιπλέον φιλτράρουμε το dataset για να αφαιρέσουμε οτιδήποτε με τιμή δημοφιλίας 0 (που σημαίνει ότι δεν κατέταξαν την δημοφιλία στο dataset και μπορεί να θεωρηθεί θόρυβος για τις ανάγκες μας):

    df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
    df = df[(df['popularity'] > 0)]
    top = df['artist_top_genre'].value_counts()
    plt.figure(figsize=(10,7))
    sns.barplot(x=top.index,y=top.values)
    plt.xticks(rotation=45)
    plt.title('Top genres',color = 'blue')
    
  3. Κάντε ένα γρήγορο τεστ για να δείτε αν τα δεδομένα συσχετίζονται με κάποιον ιδιαίτερα ισχυρό τρόπο:

    corrmat = df.corr(numeric_only=True)
    f, ax = plt.subplots(figsize=(12, 9))
    sns.heatmap(corrmat, vmax=.8, square=True)
    

    correlations

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

    🎓 Σημειώστε ότι η συσχέτιση δεν υποδηλώνει αιτιότητα! Έχουμε απόδειξη συσχέτισης αλλά όχι απόδειξη αιτιότητας. Ένας αστείος ιστότοπος έχει οπτικοποιήσεις που τονίζουν αυτό το σημείο.

Υπάρχει σύγκλιση σε αυτό το σύνολο δεδομένων γύρω από την αντιληπτή δημοφιλία και τη χορευτικότητα ενός τραγουδιού; Μια FacetGrid δείχνει ότι υπάρχουν συγκεντρικοί κύκλοι που ευθυγραμμίζονται, ανεξαρτήτως είδους. Μπορεί να είναι ότι οι νιγηριανές προτιμήσεις συγκλίνουν σε ένα συγκεκριμένο επίπεδο χορευτικότητας για αυτό το είδος;

Δοκιμάστε διαφορετικά σημεία δεδομένων (ενέργεια, ένταση, ομιλητικότητα) και περισσότερα ή διαφορετικά μουσικά είδη. Τι μπορείτε να ανακαλύψετε; Ρίξτε μια ματιά στον πίνακα df.describe() για να δείτε τη γενική κατανομή των δεδομένων.

Άσκηση - κατανομή δεδομένων

Είναι αυτά τα τρία είδη σημαντικά διαφορετικά στην αντίληψή τους για τη χορευτικότητα, βάσει της δημοφιλίας τους;

  1. Εξετάστε τη κατανομή δεδομένων των τριών κορυφαίων ειδών όσον αφορά τη δημοφιλία και τη χορευτικότητα με δοσμένους άξονες x και y.

    sns.set_theme(style="ticks")
    
    g = sns.jointplot(
        data=df,
        x="popularity", y="danceability", hue="artist_top_genre",
        kind="kde",
    )
    

    Μπορείτε να ανακαλύψετε συγκεντρικούς κύκλους γύρω από ένα γενικό σημείο σύγκλισης, που δείχνουν την κατανομή των σημείων.

    🎓 Σημειώστε ότι αυτό το παράδειγμα χρησιμοποιεί γράφημα KDE (Kernel Density Estimate) που αναπαριστά τα δεδομένα με μια συνεχή καμπύλη πιθανότητας πυκνότητας. Αυτό μας επιτρέπει να ερμηνεύουμε τα δεδομένα όταν δουλεύουμε με πολλαπλές κατανομές.

    Γενικά, τα τρία είδη ευθυγραμμίζονται χαλαρά όσον αφορά τη δημοφιλία και τη χορευτικότητα. Ο καθορισμός clusters σε αυτό το χαλαρά ευθυγραμμισμένο σύνολο δεδομένων θα είναι πρόκληση:

    distribution

  2. Δημιουργήστε ένα διάγραμμα σκέδασης:

    sns.FacetGrid(df, hue="artist_top_genre", height=5) \
       .map(plt.scatter, "popularity", "danceability") \
       .add_legend()
    

    Ένα διάγραμμα σκέδασης των ίδιων αξόνων δείχνει ένα παρόμοιο μοτίβο σύγκλισης

    Facetgrid

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


🚀Πρόκληση

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

Quiz μετά το μάθημα

Ανασκόπηση & Αυτομάθηση

Πριν εφαρμόσετε αλγόριθμους ομαδοποίησης, όπως μάθαμε, είναι καλή ιδέα να κατανοήσετε τη φύση του συνόλου δεδομένων σας. Διαβάστε περισσότερα για αυτό το θέμα εδώ

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

Εργασία

Ερευνήστε άλλες οπτικοποιήσεις για ομαδοποίηση


Αποποίηση ευθυνών: Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία μετάφρασης με τεχνητή νοημοσύνη Co-op Translator. Ενώ επιδιώκουμε την ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.