Για να επιλέξετε έναν εκπαιδευμένο ταξινομητή στην Python χρησιμοποιώντας τη λειτουργική μονάδα 'pickle', μπορούμε να ακολουθήσουμε μερικά απλά βήματα. Το Pickling μας επιτρέπει να σειριοποιήσουμε ένα αντικείμενο και να το αποθηκεύσουμε σε ένα αρχείο, το οποίο στη συνέχεια μπορεί να φορτωθεί και να χρησιμοποιηθεί αργότερα. Αυτό είναι ιδιαίτερα χρήσιμο όταν θέλουμε να αποθηκεύσουμε ένα εκπαιδευμένο μοντέλο μηχανικής μάθησης, όπως έναν ταξινομητή παλινδρόμησης, για μελλοντική χρήση χωρίς να χρειάζεται να το εκπαιδεύουμε εκ νέου κάθε φορά.
Πρώτα, πρέπει να εισαγάγουμε τη λειτουργική μονάδα 'pickle' στο σενάριο Python μας:
python import pickle
Στη συνέχεια, πρέπει να εκπαιδεύσουμε τον ταξινομητή μας και να αποκτήσουμε το εκπαιδευμένο μοντέλο. Ας υποθέσουμε ότι έχουμε ήδη εκπαιδεύσει έναν ταξινομητή παλινδρόμησης και τον έχουμε αποθηκεύσει σε μια μεταβλητή που ονομάζεται 'regression_model'.
Για να κάνουμε τουρσί το εκπαιδευμένο μοντέλο, μπορούμε να χρησιμοποιήσουμε τη συνάρτηση 'pickle.dump()'. Αυτή η συνάρτηση παίρνει δύο παραμέτρους: το αντικείμενο που θέλουμε να τουρσί (σε αυτή την περίπτωση, τον εκπαιδευμένο ταξινομητή) και το αντικείμενο αρχείου στο οποίο θέλουμε να αποθηκεύσουμε το τουρσί αντικείμενο. Μπορούμε να ανοίξουμε ένα αρχείο σε δυαδική λειτουργία εγγραφής χρησιμοποιώντας τη συνάρτηση 'open()'.
python with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file)
Στον παραπάνω κώδικα, ανοίγουμε ένα αρχείο με το όνομα 'regression_model.pkl' σε λειτουργία δυαδικής εγγραφής ('wb') και το περνάμε ως δεύτερη παράμετρο στο 'pickle.dump()'. Ο εκπαιδευμένος ταξινομητής, που είναι αποθηκευμένος στη μεταβλητή 'regression_model', γίνεται τουρσί και αποθηκεύεται στο αρχείο.
Τώρα, έχουμε επιλέξει με επιτυχία τον εκπαιδευμένο ταξινομητή μας. Μπορούμε να το φορτώσουμε ξανά στη μνήμη όποτε το χρειαστούμε χρησιμοποιώντας τη συνάρτηση 'pickle.load()'.
python with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file)
Στον παραπάνω κώδικα, ανοίγουμε το αρχείο pickled σε λειτουργία ανάγνωσης δυαδικής λειτουργίας ('rb') και το περνάμε ως παράμετρο στο 'pickle.load()'. Το αντικείμενο pickled φορτώνεται στη μεταβλητή 'loaded_model', η οποία μπορεί να χρησιμοποιηθεί για πρόβλεψη ή άλλες λειτουργίες.
Ακολουθεί ένα πλήρες παράδειγμα που δείχνει την αποξήρανση και τη φόρτωση ενός εκπαιδευμένου ταξινομητή παλινδρόμησης:
python import pickle from sklearn.linear_model import LinearRegression # Training the regression model X_train = [[1], [2], [3], [4], [5]] y_train = [2, 4, 6, 8, 10] regression_model = LinearRegression() regression_model.fit(X_train, y_train) # Pickling the trained model with open('regression_model.pkl', 'wb') as file: pickle.dump(regression_model, file) # Loading the pickled model with open('regression_model.pkl', 'rb') as file: loaded_model = pickle.load(file) # Using the loaded model for prediction X_test = [[6]] predicted_value = loaded_model.predict(X_test) print(predicted_value)
Στο παραπάνω παράδειγμα, πρώτα εκπαιδεύουμε ένα απλό μοντέλο γραμμικής παλινδρόμησης χρησιμοποιώντας την κλάση 'LinearRegression' από την ενότητα 'sklearn.linear_model'. Στη συνέχεια, επιλέγουμε το εκπαιδευμένο μοντέλο σε ένα αρχείο με το όνομα 'regression_model.pkl'. Αργότερα, φορτώνουμε το μοντέλο pickled από το αρχείο και το χρησιμοποιούμε για να προβλέψουμε την τιμή για μια δοκιμαστική είσοδο «X_test».
Μαζεύοντας και φορτώνοντας τον εκπαιδευμένο ταξινομητή, μπορούμε να επαναχρησιμοποιήσουμε το μοντέλο χωρίς να χρειάζεται να το εκπαιδεύσουμε, κάτι που μπορεί να εξοικονομήσει σημαντικό χρόνο και υπολογιστικούς πόρους.
Άλλες πρόσφατες ερωτήσεις και απαντήσεις σχετικά με Μηχανική εκμάθηση EITC/AI/MLP με Python:
- Τι είναι το Support Vector Machine (SVM);
- Είναι ο αλγόριθμος K πλησιέστερων γειτόνων κατάλληλος για τη δημιουργία μοντέλων μηχανικής εκμάθησης που μπορούν να εκπαιδευτούν;
- Ο αλγόριθμος εκπαίδευσης SVM χρησιμοποιείται συνήθως ως δυαδικός γραμμικός ταξινομητής;
- Μπορούν οι αλγόριθμοι παλινδρόμησης να λειτουργήσουν με συνεχή δεδομένα;
- Είναι η γραμμική παλινδρόμηση ιδιαίτερα κατάλληλη για κλιμάκωση;
- Πώς το μέσο μετατόπισης δυναμικού εύρους ζώνης προσαρμόζει προσαρμοστικά την παράμετρο εύρους ζώνης με βάση την πυκνότητα των σημείων δεδομένων;
- Ποιος είναι ο σκοπός της ανάθεσης βαρών σε σύνολα χαρακτηριστικών στην υλοποίηση δυναμικού εύρους ζώνης μέσης μετατόπισης;
- Πώς προσδιορίζεται η νέα τιμή ακτίνας στην προσέγγιση δυναμικού εύρους ζώνης μέσης μετατόπισης;
- Πώς χειρίζεται η προσέγγιση δυναμικού εύρους ζώνης μέσης μετατόπισης τη σωστή εύρεση κεντροειδών χωρίς σκληρή κωδικοποίηση της ακτίνας;
- Ποιος είναι ο περιορισμός της χρήσης σταθερής ακτίνας στον αλγόριθμο μέσης μετατόπισης;
Δείτε περισσότερες ερωτήσεις και απαντήσεις στο EITC/AI/MLP Machine Learning με Python