Θα θέλατε να ξεκινήσετε με μάθηση μηχανής?
Έχω δημιουργήσει ένα απλό και εύκολο σεμινάριο για εντελώς αρχάριους. Μαζί, θα εξετάσουμε τα βασικά βήματα της εκπαίδευσης ενός μοντέλου μηχανικής εκμάθησης.
Ενώ θα εξηγήσω τα βήματα της εκπαίδευσης ενός μοντέλου ένα προς ένα, θα δώσω επίσης ένα πολύ βασικό παράδειγμα ενός προβλήματος μηχανικής μάθησης. Επομένως, εάν θέλετε να ακολουθήσετε, μπορείτε να κάνετε λήψη αυτού του δείγματος συνόλου δεδομένων από αυτό σύνδεσμος.
Αυτό είναι απλώς ένα δείγμα δεδομένων για να σας βοηθήσει να ξεκινήσετε με τη μηχανική εκμάθηση.
Έχουμε 18 αξίες ανθρώπων διαφορετικών ηλικιών και φύλων που έχουν ορίσει την αγαπημένη τους μουσική. Χρησιμοποιώντας τα χαρακτηριστικά «ηλικία» και «φύλο» θα προσπαθήσουμε να μαντέψουμε ποιο είδος μουσικής είναι το αγαπημένο τους.
Σημείωση: Το 1 και το 0 αντιστοιχίζονται στα φύλα ως θηλυκό και αρσενικό σε αυτό το σύνολο δεδομένων.
Ωστόσο, αν δεν θέλετε να ακολουθήσετε το παράδειγμα, είναι επίσης μια χαρά. Θα εξηγήσω λεπτομερώς όλα αυτά τα βήματα. Λοιπόν, ας βουτήξουμε!
Πρώτα πράγματα που πρέπει να γνωρίζετε
Πριν προχωρήσουμε στα βήματα της εκπαίδευσης ενός μοντέλου, ας διευκρινίσουμε ορισμένα σημεία. Η μηχανική μάθηση είναι μια τεχνητή νοημοσύνη πειθαρχία που εστιάζει στην ανάπτυξη αλγορίθμων που μπορούν να μάθουν από δεδομένα.
Για να γίνει αυτό, τα μοντέλα μηχανικής μάθησης εκπαιδεύονται σε ένα σύνολο δεδομένων που διδάσκει στο μοντέλο πώς να κάνει σωστές προβλέψεις ή ταξινομήσεις σε νέα, προηγουμένως άγνωστα δεδομένα.
Λοιπόν, ποια είναι αυτά τα μοντέλα; ΕΝΑ μοντέλο μηχανικής μάθησης είναι παρόμοια με μια συνταγή που χρησιμοποιεί ένας υπολογιστής για να δημιουργήσει προβλέψεις δεδομένων ή επιλογές.
Ένα μοντέλο, όπως μια συνταγή, ακολουθεί ένα σύνολο οδηγιών για την αξιολόγηση δεδομένων και τη δημιουργία προβλέψεων ή κρίσεων με βάση τα μοτίβα που βρίσκονται στα δεδομένα. Όσο περισσότερα δεδομένα εκπαιδεύεται το μοντέλο, τόσο πιο ακριβείς γίνονται οι προβλέψεις του.
Τι είδους μοντέλα μπορούμε να εκπαιδεύσουμε;
Ας δούμε ποια είναι τα βασικά μοντέλα μηχανικής εκμάθησης.
- Γραμμική παλινδρόμηση: ένα μοντέλο που προβλέπει μια συνεχή μεταβλητή στόχο από μία ή περισσότερες μεταβλητές εισόδου.
- Νευρωνικά δίκτυα: ένα δίκτυο συνδεδεμένων κόμβων που μπορούν να μάθουν να ανιχνεύουν περίπλοκα μοτίβα στα δεδομένα.
- Δένδρα αποφάσεων: μια προσέγγιση λήψης αποφάσεων που βασίζεται σε μια αλυσίδα διακλαδώσεων δηλώσεων if-else.
- Ομαδοποίηση: ένα σύνολο μοντέλων που ομαδοποιούν συγκρίσιμα σημεία δεδομένων με βάση την ομοιότητα.
- Logistic Regression: ένα μοντέλο για προβλήματα δυαδικής ταξινόμησης στα οποία η μεταβλητή στόχος έχει δύο πιθανές τιμές.
- Δένδρα αποφάσεων: μια προσέγγιση λήψης αποφάσεων που βασίζεται σε μια αλυσίδα διακλαδώσεων δηλώσεων if-else.
- Random Forest: ένα μοντέλο συνόλου που αποτελείται από πολλά δέντρα απόφασης. Χρησιμοποιούνται συχνά για εφαρμογές ταξινόμησης και παλινδρόμησης.
- K-Nearest Neighbors: ένα μοντέλο που προβλέπει τη μεταβλητή στόχο χρησιμοποιώντας τα k-πλησιέστερα σημεία δεδομένων στο σύνολο εκπαίδευσης.
Ανάλογα με το πρόβλημα και το σύνολο δεδομένων μας, αποφασίζουμε ποιο μοντέλο μηχανικής εκμάθησης ταιριάζει περισσότερο στην περίπτωσή μας. Ωστόσο, θα επανέλθουμε σε αυτό αργότερα. Τώρα, ας αρχίσουμε να εκπαιδεύουμε το μοντέλο μας. Ελπίζω να έχετε ήδη κατεβάσει το σύνολο δεδομένων αν θέλετε να ακολουθήσετε το παράδειγμά μας.
Επίσης, προτείνω να έχετε Jupyter Notebook εγκατεστημένο στο τοπικό σας μηχάνημα και το χρησιμοποιείτε για τα έργα μηχανικής εκμάθησης.
1: Προσδιορίστε το πρόβλημα
Το πρώτο στάδιο στο εκπαίδευση μηχανικής μάθησης μοντέλο καθορίζει το ζήτημα που πρέπει να επιλυθεί. Αυτό συνεπάγεται την επιλογή των μεταβλητών που θέλετε να προβλέψετε (γνωστές ως μεταβλητή στόχου) και των μεταβλητών που θα χρησιμοποιηθούν για τη δημιουργία αυτών των προβλέψεων (γνωστές ως χαρακτηριστικά ή προγνωστικά).
Θα πρέπει επίσης να αποφασίσετε τι είδους πρόβλημα μηχανικής μάθησης προσπαθείτε να αντιμετωπίσετε (ταξινόμηση, παλινδρόμηση, ομαδοποίηση κ.λπ.) και τι είδους δεδομένα θα χρειαστεί να συγκεντρώσετε ή να λάβετε για να εκπαιδεύσετε το μοντέλο σας.
Το είδος του μοντέλου που χρησιμοποιείτε θα καθοριστεί από τον τύπο του προβλήματος μηχανικής εκμάθησης που σκοπεύετε να επιλύσετε. Η ταξινόμηση, η παλινδρόμηση και η ομαδοποίηση είναι οι τρεις κύριες κατηγορίες προκλήσεις μηχανικής μάθησης. Όταν θέλετε να προβλέψετε μια κατηγοριοποιημένη μεταβλητή, όπως αν ένα email είναι ανεπιθύμητο ή όχι, χρησιμοποιείτε ταξινόμηση.
Όταν θέλετε να προβλέψετε μια συνεχή μεταβλητή, όπως η τιμή ενός σπιτιού, χρησιμοποιείτε παλινδρόμηση. Η ομαδοποίηση χρησιμοποιείται για τη συγκέντρωση συγκρίσιμων στοιχείων δεδομένων με βάση τα κοινά σημεία τους.
Αν δούμε το παράδειγμά μας. Η πρόκληση μας είναι να προσδιορίσουμε το μουσικό στυλ που προτιμά ένα άτομο από το φύλο και την ηλικία του. Θα χρησιμοποιήσουμε ένα σύνολο δεδομένων 18 ατόμων για αυτό το παράδειγμα και πληροφορίες για την ηλικία, το φύλο και το αγαπημένο τους μουσικό στυλ.
2. Προετοιμάστε τα δεδομένα
Αφού καθορίσετε το πρόβλημα, θα πρέπει να προετοιμάσετε τα δεδομένα για την εκπαίδευση του μοντέλου. Αυτό συνεπάγεται καθαρισμό και επεξεργασία των δεδομένων. Έτσι, ώστε να μπορούμε να διασφαλίσουμε ότι είναι σε μια μορφή που το αλγόριθμος μηχανικής μάθησης μπορεί να χρησιμοποιηθεί.
Αυτό μπορεί να περιλαμβάνει δραστηριότητες όπως διαγραφή τιμών που λείπουν, μετατροπή κατηγορικών δεδομένων σε αριθμητικά δεδομένα και κλιμάκωση ή κανονικοποίηση των δεδομένων για να διασφαλιστεί ότι όλα τα χαρακτηριστικά είναι στην ίδια κλίμακα.
Για παράδειγμα, με αυτόν τον τρόπο διαγράφετε τις τιμές που λείπουν:
import pandas as pd
# Load the data into a pandas DataFrame
data = pd.read_csv('data.csv')
# Check for missing values
print(data.isnull().sum())
# Drop rows with missing values
data.dropna(inplace=True)
# Check that all missing values have been removed
print(data.isnull().sum())
Μικρή σημείωση: Στη γραμμή o "import pandas as pd",
εισάγουμε τη βιβλιοθήκη Pandas και της εκχωρούμε το ψευδώνυμο "pd" για να διευκολύνουμε την αναφορά των συναρτήσεων και των αντικειμένων της αργότερα στον κώδικα.
Το Pandas είναι μια πολύ γνωστή ενότητα για την Python για χειρισμό και ανάλυση δεδομένων, ιδιαίτερα όταν εργάζεστε με δομημένα ή πινακοποιημένα δεδομένα.
Στο παράδειγμά μας για τον προσδιορισμό των μουσικών ειδών. Θα εισάγουμε πρώτα το σύνολο δεδομένων. Το ονόμασα music.csv, ωστόσο, μπορείτε να το ονομάσετε όπως θέλετε.
Για να προετοιμάσουμε τα δεδομένα για την εκπαίδευση ενός μοντέλου μηχανικής μάθησης, τα χωρίζουμε σε χαρακτηριστικά (ηλικία και φύλο) και στόχους (είδος μουσικής).
Επιπλέον, θα χωρίσουμε τα δεδομένα σε σετ εκπαίδευσης και δοκιμών 80:20 για να αξιολογήσουμε την απόδοση του μοντέλου μας και να αποφύγουμε την υπερβολική προσαρμογή.
# Import necessary libraries
import pandas as pd
from sklearn.model_selection import train_test_split
# Load data from CSV file/code>
music_data = pd.read_csv('music.csv')
# Split data into features and target
X = music_data.drop(columns=['genre'])
y = music_data['genre']
# Split data into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
3. Επιλέξτε ένα μοντέλο μηχανικής εκμάθησης.
Αφού προετοιμάσετε τα δεδομένα, πρέπει να επιλέξετε ένα μοντέλο μηχανικής μάθησης που είναι κατάλληλο για την εργασία σας.
Υπάρχουν αρκετοί αλγόριθμοι από τους οποίους μπορείτε να επιλέξετε, όπως δέντρα αποφάσεων, λογιστική παλινδρόμηση, μηχανές διανυσμάτων υποστήριξης, νευρωνικά δίκτυα και άλλοι. Ο αλγόριθμος που θα επιλέξετε θα καθοριστεί από το είδος του ζητήματος που προσπαθείτε να απαντήσετε, τον τύπο των δεδομένων που έχετε και τις ανάγκες απόδοσης.
Θα χρησιμοποιήσουμε έναν ταξινομητή δέντρου αποφάσεων για αυτό το παράδειγμα επειδή εργαζόμαστε με ένα πρόβλημα ταξινόμησης (πρόβλεψη κατηγορικών δεδομένων).
# Import necessary libraries
from sklearn.tree import DecisionTreeClassifier
Ακολουθεί μια απεικόνιση του τρόπου λειτουργίας του ταξινομητή δένδρων αποφάσεων:
4. Εκπαιδεύστε το μοντέλο
Μπορείτε να ξεκινήσετε την εκπαίδευση του μοντέλου όταν έχετε επιλέξει έναν αποδεκτό αλγόριθμο μηχανικής μάθησης. Αυτό συνεπάγεται τη χρήση των δεδομένων που έχουν δημιουργηθεί προηγουμένως για την εκπαίδευση του αλγόριθμου σχετικά με το πώς να κάνετε προβλέψεις σε νέα, αόρατα στο παρελθόν δεδομένα.
Ο αλγόριθμος θα τροποποιήσει τις εσωτερικές του παραμέτρους κατά τη διάρκεια της εκπαίδευσης για να ελαχιστοποιήσει τη διαφορά μεταξύ των προβλεπόμενων τιμών του και των πραγματικών τιμών στα δεδομένα εκπαίδευσης. Η ποσότητα των δεδομένων που χρησιμοποιούνται για την εκπαίδευση, καθώς και οι συγκεκριμένες παράμετροι του αλγορίθμου, μπορούν όλα να έχουν επίδραση στην ακρίβεια του προκύπτοντος μοντέλου.
Στο συγκεκριμένο παράδειγμά μας, τώρα που αποφασίσαμε για μια μέθοδο, μπορούμε να εκπαιδεύσουμε το μοντέλο μας με τα δεδομένα εκπαίδευσης.
# Train the decision tree classifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
5. Αξιολογήστε το μοντέλο
Αφού το μοντέλο έχει εκπαιδευτεί, πρέπει να αξιολογηθεί με νέα δεδομένα για να διασφαλιστεί ότι είναι ακριβές και αξιόπιστο. Αυτό συνεπάγεται τη δοκιμή του μοντέλου με δεδομένα που δεν χρησιμοποιήθηκαν κατά την εκπαίδευση και τη σύγκριση των προβλεπόμενων τιμών του με τις πραγματικές τιμές στα δεδομένα δοκιμής.
Αυτή η αναθεώρηση μπορεί να βοηθήσει στον εντοπισμό τυχόν ελαττωμάτων του μοντέλου, όπως η υπερβολική τοποθέτηση ή η υποσυναρμολόγηση, και μπορεί να οδηγήσει σε οποιαδήποτε λεπτομέρεια που μπορεί να απαιτείται.
Χρησιμοποιώντας τα δεδομένα δοκιμών, θα αξιολογήσουμε την ορθότητα του μοντέλου μας.
# Import necessary libraries
from sklearn.metrics import accuracy_score
# Predict the music genre for the test data
predictions = model.predict(X_test)
# Evaluate the model's accuracy
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: ", accuracy)
Το σκορ ακρίβειας δεν είναι τόσο άσχημο προς το παρόν. 🙂 Για να βελτιώσετε τη βαθμολογία ακρίβειάς σας, μπορείτε πάντα να καθαρίσετε τα δεδομένα περισσότερο ή να δοκιμάσετε διαφορετικά μοντέλα μηχανικής εκμάθησης για να δείτε ποιο δίνει την υψηλότερη βαθμολογία.
6. Βελτιστοποιήστε το μοντέλο
Εάν η απόδοση του μοντέλου δεν είναι αρκετά επαρκής, μπορείτε να το ρυθμίσετε με ακρίβεια αλλάζοντας διάφορες παραμέτρους αλγορίθμου ή πειραματιζόμενοι εξ ολοκλήρου με νέους αλγόριθμους.
Αυτή η διαδικασία μπορεί να περιλαμβάνει πειραματισμό με εναλλακτικούς ρυθμούς εκμάθησης, τροποποίηση ρυθμίσεων τακτοποίησης ή αλλαγή του αριθμού ή του μεγέθους των κρυφών επιπέδων σε ένα νευρωνικό δίκτυο.
7. Χρησιμοποιήστε το μοντέλο
Μόλις είστε ικανοποιημένοι με την απόδοση του μοντέλου, μπορείτε να αρχίσετε να το χρησιμοποιείτε για να δημιουργήσετε προβλέψεις για νέα δεδομένα.
Αυτό μπορεί να συνεπάγεται την τροφοδοσία φρέσκων δεδομένων στο μοντέλο και τη χρήση των μαθησιακών παραμέτρων του μοντέλου για τη δημιουργία προβλέψεων για αυτά τα δεδομένα ή την ενσωμάτωση του μοντέλου σε μια ευρύτερη εφαρμογή ή σύστημα.
Μπορούμε να χρησιμοποιήσουμε το μοντέλο μας για να δημιουργήσουμε προβλέψεις για νέα δεδομένα αφού είμαστε ικανοποιημένοι με την ακρίβειά του. Μπορείτε να δοκιμάσετε διαφορετικές τιμές φύλου και ηλικίας.
# Test the model with new data
new_data = [[25, 1], [30, 0]]
predictions = model.predict(new_data)
print("Predictions: ", predictions)
Τύλιξε
Ολοκληρώσαμε την εκπαίδευση του πρώτου μας μοντέλου μηχανικής εκμάθησης.
Ελπίζω να το βρήκατε χρήσιμο. Τώρα μπορείτε να δοκιμάσετε να χρησιμοποιήσετε διαφορετικά μοντέλα μηχανικής εκμάθησης, όπως Γραμμική παλινδρόμηση ή Τυχαίο Δάσος.
Υπάρχουν πολλά σύνολα δεδομένων και προκλήσεις Kaggle εάν θέλετε να βελτιώσετε την κωδικοποίηση και την κατανόηση της μηχανικής εκμάθησης.
Αφήστε μια απάντηση