Ομοιότητα Jaccard

Τι είναι η Ομοιότητα Jaccard (Jaccard Similarity);

Η Ομοιότητα Jaccard είναι ένα στατιστικό μέτρο που χρησιμοποιείται για τη σύγκριση της ομοιότητας και της ποικιλομορφίας δύο διαφορετικών συνόλων δεδομένων. Υπολογίζει την αναλογία των κοινών στοιχείων μεταξύ των συνόλων προς τον συνολικό αριθμό των διακριτών στοιχείων και στα δύο σύνολα συνδυαστικά. Το αποτέλεσμα είναι μια βαθμολογία που κυμαίνεται από 0 έως 1, όπου το 0 υποδηλώνει ότι τα σύνολα δεν έχουν κανένα κοινό στοιχείο, και το 1 υποδηλώνει ότι τα σύνολα περιέχουν ακριβώς τα ίδια στοιχεία.

Πώς διαφέρει η Ομοιότητα Jaccard από άλλες μετρικές ομοιότητας;

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

Σε ποια σενάρια είναι πιο χρήσιμο το Jaccard Similarity;

Είναι κυρίως χρήσιμο κατά την ανάλυση κατηγορικών δεδομένων, δυαδικών δεδομένων ή μη δομημένου κειμένου. Οι κοινές εφαρμογές περιλαμβάνουν τη σύγκριση εγγράφων κειμένου για τον εντοπισμό αντιγραφής ή λογοκλοπής, την ομαδοποίηση (clustering) κατηγορικών συνόλων δεδομένων, την αξιολόγηση μοντέλων ανίχνευσης αντικειμένων στην όραση υπολογιστών (όπου η μετρική είναι γνωστή ως Intersection over Union - IoU), και την ομαδοποίηση χρηστών με βάση συγκεκριμένες ενέργειες ή χαρακτηριστικά.

Ποιο είναι το θεωρητικό υπόβαθρο πίσω από το Jaccard Similarity;

Το θεωρητικό θεμέλιο του Jaccard Similarity προέρχεται από τη θεωρία συνόλων στα μαθηματικά και εισήχθη από τον βοτανολόγο Paul Jaccard στις αρχές του 20ού αιώνα. Βασίζεται στις βασικές πράξεις συνόλων της τομής (τα στοιχεία που είναι κοινά και στα δύο σύνολα) και της ένωσης (όλα τα μοναδικά στοιχεία που υπάρχουν σε οποιοδήποτε από τα δύο σύνολα). Η μετρική υπολογίζεται διαιρώντας το συνολικό πλήθος της τομής με το συνολικό πλήθος της ένωσης.

Ποιες γλώσσες προγραμματισμού και βιβλιοθήκες υποστηρίζουν την Ομοιότητα Jaccard;

Το Jaccard Similarity αποτελεί πρότυπο στις κύριες γλώσσες προγραμματισμού της επιστήμης δεδομένων. Στην Python, υλοποιείται ευρέως χρησιμοποιώντας τη βιβλιοθήκη scikit-learn μέσω της συνάρτησης jaccard_score για εργασίες ταξινόμησης, ή μέσω της μονάδας scipy.spatial.distance η οποία υπολογίζει τη σχετική απόσταση Jaccard (Jaccard distance). Στην R, οι data scientists την υπολογίζουν συχνά χρησιμοποιώντας πακέτα όπως το vegan ή το proxy.

Παράδειγμα Χρήσης στο Data Science: Πώς χρησιμοποιείται το Jaccard Similarity για recommendation systems;

Ένας data scientist μπορεί να χρησιμοποιήσει το Jaccard Similarity για να προτείνει προϊόντα στους χρήστες με βάση τα καλάθια αγορών τους.

Αν ο Χρήστης Α αγοράσει έναν υπολογιστή, ένα ποντίκι και ένα πληκτρολόγιο, και ο Χρήστης Β αγοράσει έναν υπολογιστή, ένα ποντίκι και μια οθόνη, ο αλγόριθμος συγκρίνει τα σύνολα των προϊόντων τους. Τα κοινά προϊόντα είναι ο υπολογιστής και το ποντίκι, ενώ τα συνολικά διακριτά προϊόντα και των δύο χρηστών είναι ο υπολογιστής, το ποντίκι, το πληκτρολόγιο και η οθόνη. Διαιρώντας τον αριθμό των κοινών προϊόντων με τον αριθμό των συνολικών διακριτών προϊόντων, το σύστημα καθορίζει τη βαθμολογία ομοιότητας μεταξύ των αγοραστικών συμπεριφορών των δύο χρηστών. Μια υψηλή βαθμολογία ομοιότητας ωθεί το σύστημα να προτείνει την οθόνη στον Χρήστη Α και το πληκτρολόγιο στον Χρήστη Β.