Δείτε πώς λειτουργεί ο αλγόριθμος Naive Bayes
April 13, 2023Σε Μηχανική Μάθηση, Ο Naive Bayes είναι ένας αλγόριθμος που χρησιμοποιεί πιθανότητες για να κάνει προβλέψεις. Χρησιμοποιείται για προβλήματα ταξινόμησης, όπου ο στόχος είναι να προβλεφθεί η κλάση στην οποία ανήκει μια είσοδος. Έτσι, εάν είστε νέος στη Μηχανική Μάθηση και θέλετε να μάθετε πώς λειτουργεί ο αλγόριθμος Naive Bayes, αυτό το άρθρο είναι για εσάς. Σε αυτό το άρθρο, θα παρουσιάσω πώς λειτουργεί ο αλγόριθμος Naive Bayes και την υλοποίησή του χρησιμοποιώντας Python.
Δείτε πώς λειτουργεί ο αλγόριθμος Naive Bayes
Ας υποθέσουμε ότι είστε μια υπηρεσία ροής ταινιών όπως το Netflix και θέλετε να προτείνετε ταινίες στους χρήστες σας με βάση τα ενδιαφέροντά τους. Έχετε ένα σύνολο δεδομένων ταινιών και των ετικετών του είδους τους, καθώς και πληροφορίες σχετικά με τις προηγούμενες αξιολογήσεις ταινιών των χρηστών σας.
Για να κάνετε συστάσεις, μπορείτε να χρησιμοποιήσετε τον αλγόριθμο Naive Bayes. Ο Naive Bayes είναι ένας στατιστικός αλγόριθμος που μπορεί να προβλέψει την πιθανότητα να συμβεί ένα συμβάν με βάση τα χαρακτηριστικά εισόδου.
Για παράδειγμα, ας υποθέσουμε ότι ένας χρήστης έχει παρακολουθήσει στο παρελθόν ταινίες δράσης και περιπέτειας και θέλετε να προτείνετε μια νέα ταινία. Σε αυτήν την περίπτωση, ο αλγόριθμος Naive Bayes θα υπολογίσει την πιθανότητα να αρέσει στον χρήστη μια νέα ταινία με βάση το είδος της.
Για να γίνει αυτό, ο Naive Bayes θα υποθέσει ότι οι ετικέτες είδους είναι ανεξάρτητες μεταξύ τους, πράγμα που σημαίνει ότι η παρουσία μιας ετικέτας δεν επηρεάζει την παρουσία μιας άλλης ετικέτας. Είναι η «αφελής» υπόθεση και απλοποιεί τους υπολογισμούς. Χρησιμοποιώντας αυτήν την υπόθεση, ο Naive Bayes μπορεί να υπολογίσει την πιθανότητα να αρέσει στον χρήστη μια ταινία με βάση την παρουσία κάθε ετικέτας είδους.
Υλοποίηση του αλγορίθμου Naive Bayes με χρήση Python
Τώρα ας δούμε πώς να εφαρμόσουμε τον αλγόριθμο Naive Bayes χρησιμοποιώντας Python. Για να το εφαρμόσουμε χρησιμοποιώντας Python, μπορούμε να χρησιμοποιήσουμε το scikit-μαθαίνω βιβλιοθήκη σε Python, η οποία παρέχει τη λειτουργικότητα της υλοποίησης όλων των αλγορίθμων και των εννοιών Machine Learning χρησιμοποιώντας Python.
Ας εισάγουμε πρώτα τις απαραίτητες βιβλιοθήκες Python και ας δημιουργήσουμε ένα δείγμα δεδομένων με βάση το παράδειγμα που συζητήσαμε παραπάνω:
import pandas as pd from sklearn.model_selection import train_test_split from sklearn.naive_bayes import MultinomialNB from sklearn.metrics import accuracy_score #sample movie data with genre tags and user ratings movies = pd.DataFrame({ 'movie_title': ['Movie A', 'Movie B', 'Movie C', 'Movie D', 'Movie E'], 'genre_action': [1, 1, 0, 1, 0], 'genre_adventure': [1, 0, 1, 0, 1], 'genre_comedy': [0, 1, 1, 0, 0], 'genre_drama': [0, 0, 0, 1, 1], 'user_rating': [5, 4, 3, 2, 1] }) print(movies.head())
movie_title genre_action genre_adventure genre_comedy genre_drama \ 0 Movie A 1 1 0 0 1 Movie B 1 0 1 0 2 Movie C 0 1 1 0 3 Movie D 1 0 0 1 4 Movie E 0 1 0 1 user_rating 0 5 1 4 2 3 3 2 4 1
Τώρα δείτε πώς να εκπαιδεύσετε ένα μοντέλο Μηχανικής Μάθησης χρησιμοποιώντας τον αλγόριθμο Naive Bayes:
#split the data into features (genre tags) and labels (user ratings) x = movies.drop(['movie_title', 'user_rating'], axis=1) y = movies['user_rating'] #training the model clf = MultinomialNB() clf.fit(x, y)
Καθώς αυτό το πρόβλημα βασίζεται στην Ταξινόμηση πολλαπλών κλάσεων, χρησιμοποιήσαμε τον αλγόριθμο πολυωνυμικού αφελούς Bayes. Τώρα δείτε πώς μπορούμε να κάνουμε προβλέψεις χρησιμοποιώντας τον αλγόριθμο Naive Bayes σε ένα νέο δείγμα δεδομένων:
new_movie = pd.DataFrame({ 'genre_action': [1], 'genre_adventure': [1], 'genre_comedy': [0], 'genre_drama': [0] }) user_rating_pred = clf.predict(new_movie) print("Predicted user rating for the new movie:", user_rating_pred[0])
Predicted user rating for the new movie: 5
Έτσι λειτουργεί ο αλγόριθμος Naive Bayes.
Πλεονεκτήματα και μειονεκτήματα του αλγορίθμου Naive Bayes
Ακολουθούν ορισμένα πλεονεκτήματα και μειονεκτήματα του αλγόριθμου Naive Bayes που πρέπει να γνωρίζετε:
Πλεονεκτήματα:
- Μπορεί να χειριστεί τόσο συνεχείς όσο και κατηγορικές μεταβλητές εισόδου.
- Είναι λιγότερο επιρρεπής στην υπερπροσαρμογή από άλλους αλγόριθμους, πράγμα που σημαίνει ότι μπορεί να γενικεύσει καλά σε νέα δεδομένα.
Μειονεκτήματα:
- Υποθέτει ότι τα χαρακτηριστικά εισόδου είναι ανεξάρτητα, κάτι που μπορεί να μην ισχύει σε όλες τις περιπτώσεις.
- Μπορεί να είναι ευαίσθητο στην ποιότητα των δεδομένων εισόδου, όπως τιμές που λείπουν ή θορυβώδη δεδομένα.
Περίληψη
Ελπίζω να καταλάβατε πώς λειτουργεί ο αλγόριθμος Naive Bayes. Ο Naive Bayes είναι ένας στατιστικός αλγόριθμος που μπορεί να προβλέψει την πιθανότητα να συμβεί ένα συμβάν με βάση τα χαρακτηριστικά εισόδου. Χρησιμοποιείται για προβλήματα ταξινόμησης, όπου ο στόχος είναι να προβλεφθεί η κλάση στην οποία ανήκει μια είσοδος. Μη διστάσετε να κάνετε πολύτιμες ερωτήσεις στην παρακάτω ενότητα σχολίων.