24 KiB
Ξεκινήστε με Python και Scikit-learn για μοντέλα παλινδρόμησης
Σκίτσο από Tomomi Imura
Προ-μάθημα κουίζ
Αυτό το μάθημα είναι διαθέσιμο και σε R!
Εισαγωγή
Σε αυτά τα τέσσερα μαθήματα, θα ανακαλύψετε πώς να δημιουργείτε μοντέλα παλινδρόμησης. Θα συζητήσουμε σύντομα για το τι χρησιμεύουν. Αλλά πριν κάνετε οτιδήποτε, βεβαιωθείτε ότι έχετε τα κατάλληλα εργαλεία για να ξεκινήσετε τη διαδικασία!
Σε αυτό το μάθημα, θα μάθετε πώς να:
- Ρυθμίσετε τον υπολογιστή σας για τοπικές εργασίες μηχανικής μάθησης.
- Εργαστείτε με Jupyter notebooks.
- Χρησιμοποιήσετε το Scikit-learn, συμπεριλαμβανομένης της εγκατάστασης.
- Εξερευνήσετε την γραμμική παλινδρόμηση με μια πρακτική άσκηση.
Εγκαταστάσεις και ρυθμίσεις
🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα σύντομο βίντεο σχετικά με τη ρύθμιση του υπολογιστή σας για ML.
-
Εγκαταστήστε το Python. Βεβαιωθείτε ότι το Python είναι εγκατεστημένο στον υπολογιστή σας. Θα χρησιμοποιήσετε το Python για πολλές εργασίες επιστήμης δεδομένων και μηχανικής μάθησης. Οι περισσότεροι υπολογιστές έχουν ήδη εγκατεστημένο το Python. Υπάρχουν επίσης χρήσιμα Python Coding Packs για να διευκολύνουν τη ρύθμιση για ορισμένους χρήστες.
Ωστόσο, ορισμένες χρήσεις του Python απαιτούν μία έκδοση του λογισμικού, ενώ άλλες απαιτούν διαφορετική έκδοση. Για αυτόν τον λόγο, είναι χρήσιμο να εργάζεστε μέσα σε ένα εικονικό περιβάλλον.
-
Εγκαταστήστε το Visual Studio Code. Βεβαιωθείτε ότι έχετε εγκαταστήσει το Visual Studio Code στον υπολογιστή σας. Ακολουθήστε αυτές τις οδηγίες για να εγκαταστήσετε το Visual Studio Code για τη βασική εγκατάσταση. Θα χρησιμοποιήσετε το Python στο Visual Studio Code σε αυτό το μάθημα, οπότε ίσως θέλετε να εξοικειωθείτε με το πώς να ρυθμίσετε το Visual Studio Code για ανάπτυξη Python.
Εξοικειωθείτε με το Python δουλεύοντας μέσα από αυτή τη συλλογή Learn modules
🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο: χρήση Python μέσα στο VS Code.
-
Εγκαταστήστε το Scikit-learn, ακολουθώντας αυτές τις οδηγίες. Επειδή πρέπει να βεβαιωθείτε ότι χρησιμοποιείτε Python 3, συνιστάται να χρησιμοποιήσετε ένα εικονικό περιβάλλον. Σημειώστε ότι αν εγκαθιστάτε αυτήν τη βιβλιοθήκη σε Mac M1, υπάρχουν ειδικές οδηγίες στη σελίδα που συνδέεται παραπάνω.
-
Εγκαταστήστε το Jupyter Notebook. Θα χρειαστεί να εγκαταστήσετε το πακέτο Jupyter.
Το περιβάλλον συγγραφής ML σας
Θα χρησιμοποιήσετε notebooks για να αναπτύξετε τον κώδικα Python σας και να δημιουργήσετε μοντέλα μηχανικής μάθησης. Αυτός ο τύπος αρχείου είναι ένα κοινό εργαλείο για επιστήμονες δεδομένων και μπορεί να αναγνωριστεί από την κατάληξη .ipynb
.
Τα notebooks είναι ένα διαδραστικό περιβάλλον που επιτρέπει στον προγραμματιστή να γράφει κώδικα και να προσθέτει σημειώσεις και τεκμηρίωση γύρω από τον κώδικα, κάτι που είναι αρκετά χρήσιμο για πειραματικά ή ερευνητικά έργα.
🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα σύντομο βίντεο σχετικά με αυτήν την άσκηση.
Άσκηση - εργασία με ένα notebook
Σε αυτόν τον φάκελο, θα βρείτε το αρχείο notebook.ipynb.
-
Ανοίξτε το notebook.ipynb στο Visual Studio Code.
Ένας Jupyter server θα ξεκινήσει με Python 3+. Θα βρείτε περιοχές του notebook που μπορούν να
εκτελεστούν
, κομμάτια κώδικα. Μπορείτε να εκτελέσετε ένα μπλοκ κώδικα, επιλέγοντας το εικονίδιο που μοιάζει με κουμπί αναπαραγωγής. -
Επιλέξτε το εικονίδιο
md
και προσθέστε λίγο markdown, και το ακόλουθο κείμενο # Καλώς ήρθατε στο notebook σας.Στη συνέχεια, προσθέστε λίγο κώδικα Python.
-
Πληκτρολογήστε print('hello notebook') στο μπλοκ κώδικα.
-
Επιλέξτε το βέλος για να εκτελέσετε τον κώδικα.
Θα πρέπει να δείτε την εκτυπωμένη δήλωση:
hello notebook
Μπορείτε να ενσωματώσετε τον κώδικα σας με σχόλια για να τεκμηριώσετε το notebook.
✅ Σκεφτείτε για λίγο πόσο διαφορετικό είναι το περιβάλλον εργασίας ενός web developer σε σχέση με αυτό ενός επιστήμονα δεδομένων.
Ξεκινώντας με το Scikit-learn
Τώρα που το Python έχει ρυθμιστεί στο τοπικό σας περιβάλλον και είστε εξοικειωμένοι με τα Jupyter notebooks, ας εξοικειωθούμε εξίσου με το Scikit-learn (προφέρεται sci
όπως το science
). Το Scikit-learn παρέχει ένα εκτενές API για να σας βοηθήσει να εκτελέσετε εργασίες ML.
Σύμφωνα με την ιστοσελίδα τους, "Το Scikit-learn είναι μια βιβλιοθήκη μηχανικής μάθησης ανοιχτού κώδικα που υποστηρίζει εποπτευόμενη και μη εποπτευόμενη μάθηση. Παρέχει επίσης διάφορα εργαλεία για προσαρμογή μοντέλων, προεπεξεργασία δεδομένων, επιλογή και αξιολόγηση μοντέλων, και πολλές άλλες λειτουργίες."
Σε αυτό το μάθημα, θα χρησιμοποιήσετε το Scikit-learn και άλλα εργαλεία για να δημιουργήσετε μοντέλα μηχανικής μάθησης για να εκτελέσετε αυτό που αποκαλούμε 'παραδοσιακές εργασίες μηχανικής μάθησης'. Έχουμε σκόπιμα αποφύγει τα νευρωνικά δίκτυα και τη βαθιά μάθηση, καθώς καλύπτονται καλύτερα στο επερχόμενο πρόγραμμα σπουδών μας 'AI για Αρχάριους'.
Το Scikit-learn καθιστά απλό να δημιουργείτε μοντέλα και να τα αξιολογείτε για χρήση. Εστιάζει κυρίως στη χρήση αριθμητικών δεδομένων και περιέχει αρκετά έτοιμα σύνολα δεδομένων για χρήση ως εργαλεία μάθησης. Περιλαμβάνει επίσης προκατασκευασμένα μοντέλα για δοκιμή από τους μαθητές. Ας εξερευνήσουμε τη διαδικασία φόρτωσης προκατασκευασμένων δεδομένων και τη χρήση ενός ενσωματωμένου εκτιμητή για το πρώτο μοντέλο ML με το Scikit-learn με κάποια βασικά δεδομένα.
Άσκηση - το πρώτο σας notebook με Scikit-learn
Αυτό το σεμινάριο εμπνεύστηκε από το παράδειγμα γραμμικής παλινδρόμησης στην ιστοσελίδα του Scikit-learn.
🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα σύντομο βίντεο σχετικά με αυτήν την άσκηση.
Στο αρχείο notebook.ipynb που σχετίζεται με αυτό το μάθημα, διαγράψτε όλα τα κελιά πατώντας το εικονίδιο 'κάδος απορριμμάτων'.
Σε αυτήν την ενότητα, θα εργαστείτε με ένα μικρό σύνολο δεδομένων για τον διαβήτη που είναι ενσωματωμένο στο Scikit-learn για εκπαιδευτικούς σκοπούς. Φανταστείτε ότι θέλετε να δοκιμάσετε μια θεραπεία για ασθενείς με διαβήτη. Τα μοντέλα μηχανικής μάθησης μπορεί να σας βοηθήσουν να προσδιορίσετε ποιοι ασθενείς θα ανταποκριθούν καλύτερα στη θεραπεία, με βάση συνδυασμούς μεταβλητών. Ακόμη και ένα πολύ βασικό μοντέλο παλινδρόμησης, όταν οπτικοποιηθεί, μπορεί να δείξει πληροφορίες για μεταβλητές που θα σας βοηθήσουν να οργανώσετε τις θεωρητικές κλινικές σας δοκιμές.
✅ Υπάρχουν πολλοί τύποι μεθόδων παλινδρόμησης, και ποια θα επιλέξετε εξαρτάται από την απάντηση που ψάχνετε. Αν θέλετε να προβλέψετε το πιθανό ύψος ενός ατόμου μιας δεδομένης ηλικίας, θα χρησιμοποιούσατε γραμμική παλινδρόμηση, καθώς αναζητάτε μια αριθμητική τιμή. Αν ενδιαφέρεστε να ανακαλύψετε αν ένας τύπος κουζίνας πρέπει να θεωρείται vegan ή όχι, αναζητάτε μια κατηγοριοποίηση, οπότε θα χρησιμοποιούσατε λογιστική παλινδρόμηση. Θα μάθετε περισσότερα για τη λογιστική παλινδρόμηση αργότερα. Σκεφτείτε λίγο για κάποιες ερωτήσεις που μπορείτε να κάνετε στα δεδομένα και ποια από αυτές τις μεθόδους θα ήταν πιο κατάλληλη.
Ας ξεκινήσουμε αυτήν την εργασία.
Εισαγωγή βιβλιοθηκών
Για αυτήν την εργασία θα εισάγουμε κάποιες βιβλιοθήκες:
- matplotlib. Είναι ένα χρήσιμο εργαλείο γραφικών και θα το χρησιμοποιήσουμε για να δημιουργήσουμε ένα γραμμικό διάγραμμα.
- numpy. Το numpy είναι μια χρήσιμη βιβλιοθήκη για τη διαχείριση αριθμητικών δεδομένων στο Python.
- sklearn. Αυτή είναι η βιβλιοθήκη Scikit-learn.
Εισάγετε κάποιες βιβλιοθήκες για να σας βοηθήσουν στις εργασίες σας.
-
Προσθέστε εισαγωγές πληκτρολογώντας τον ακόλουθο κώδικα:
import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selection
Πάνω εισάγετε το
matplotlib
, τοnumpy
και εισάγετε τοdatasets
,linear_model
καιmodel_selection
από τοsklearn
. Τοmodel_selection
χρησιμοποιείται για τη διαίρεση δεδομένων σε σύνολα εκπαίδευσης και δοκιμής.
Το σύνολο δεδομένων για τον διαβήτη
Το ενσωματωμένο σύνολο δεδομένων για τον διαβήτη περιλαμβάνει 442 δείγματα δεδομένων σχετικά με τον διαβήτη, με 10 χαρακτηριστικές μεταβλητές, μερικές από τις οποίες περιλαμβάνουν:
- age: ηλικία σε χρόνια
- bmi: δείκτης μάζας σώματος
- bp: μέση αρτηριακή πίεση
- s1 tc: T-Cells (ένας τύπος λευκών αιμοσφαιρίων)
✅ Αυτό το σύνολο δεδομένων περιλαμβάνει την έννοια του 'φύλου' ως χαρακτηριστική μεταβλητή σημαντική για την έρευνα γύρω από τον διαβήτη. Πολλά ιατρικά σύνολα δεδομένων περιλαμβάνουν αυτόν τον τύπο δυαδικής ταξινόμησης. Σκεφτείτε λίγο πώς τέτοιες κατηγοριοποιήσεις μπορεί να αποκλείσουν ορισμένα μέρη του πληθυσμού από θεραπείες.
Τώρα, φορτώστε τα δεδομένα X και y.
🎓 Θυμηθείτε, αυτή είναι εποπτευόμενη μάθηση, και χρειαζόμαστε έναν ονομασμένο στόχο 'y'.
Σε ένα νέο κελί κώδικα, φορτώστε το σύνολο δεδομένων για τον διαβήτη καλώντας το load_diabetes()
. Η είσοδος return_X_y=True
σηματοδοτεί ότι το X
θα είναι ένας πίνακας δεδομένων και το y
θα είναι ο στόχος παλινδρόμησης.
-
Προσθέστε κάποιες εντολές εκτύπωσης για να δείξετε το σχήμα του πίνακα δεδομένων και το πρώτο του στοιχείο:
X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0])
Αυτό που λαμβάνετε ως απάντηση είναι ένα tuple. Αυτό που κάνετε είναι να αντιστοιχίσετε τις δύο πρώτες τιμές του tuple στο
X
καιy
αντίστοιχα. Μάθετε περισσότερα για τα tuples.Μπορείτε να δείτε ότι αυτά τα δεδομένα έχουν 442 στοιχεία διαμορφωμένα σε πίνακες των 10 στοιχείων:
(442, 10) [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]
✅ Σκεφτείτε λίγο τη σχέση μεταξύ των δεδομένων και του στόχου παλινδρόμησης. Η γραμμική παλινδρόμηση προβλέπει σχέσεις μεταξύ της χαρακτηριστικής μεταβλητής X και της μεταβλητής στόχου y. Μπορείτε να βρείτε τον στόχο για το σύνολο δεδομένων για τον διαβήτη στην τεκμηρίωση; Τι δείχνει αυτό το σύνολο δεδομένων, δεδομένου του στόχου;
-
Στη συνέχεια, επιλέξτε ένα μέρος αυτού του συνόλου δεδομένων για να το σχεδιάσετε επιλέγοντας την 3η στήλη του συνόλου δεδομένων. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας τον τελεστή
:
για να επιλέξετε όλες τις γραμμές και στη συνέχεια να επιλέξετε την 3η στήλη χρησιμοποιώντας τον δείκτη (2). Μπορείτε επίσης να αναδιαμορφώσετε τα δεδομένα ώστε να είναι ένας πίνακας 2D - όπως απαιτείται για σχεδίαση - χρησιμοποιώντας ✅ Σκέψου λίγο τι συμβαίνει εδώ. Μια ευθεία γραμμή περνάει μέσα από πολλά μικρά σημεία δεδομένων, αλλά τι ακριβώς κάνει; Μπορείς να δεις πώς θα μπορούσες να χρησιμοποιήσεις αυτή τη γραμμή για να προβλέψεις πού θα έπρεπε να τοποθετηθεί ένα νέο, άγνωστο σημείο δεδομένων σε σχέση με τον άξονα y του γραφήματος; Προσπάθησε να εκφράσεις με λόγια την πρακτική χρήση αυτού του μοντέλου.
Συγχαρητήρια, δημιούργησες το πρώτο σου μοντέλο γραμμικής παλινδρόμησης, έκανες μια πρόβλεψη με αυτό και την εμφάνισες σε ένα γράφημα!
🚀Πρόκληση
Σχεδίασε μια διαφορετική μεταβλητή από αυτό το σύνολο δεδομένων. Υπόδειξη: επεξεργάσου αυτή τη γραμμή: X = X[:,2]
. Δεδομένου του στόχου αυτού του συνόλου δεδομένων, τι μπορείς να ανακαλύψεις σχετικά με την εξέλιξη του διαβήτη ως ασθένεια;
Κουίζ μετά το μάθημα
Ανασκόπηση & Αυτομελέτη
Σε αυτό το σεμινάριο, εργάστηκες με απλή γραμμική παλινδρόμηση, αντί για μονομεταβλητή ή πολυμεταβλητή γραμμική παλινδρόμηση. Διάβασε λίγο για τις διαφορές μεταξύ αυτών των μεθόδων ή δες αυτό το βίντεο.
Διάβασε περισσότερα για την έννοια της παλινδρόμησης και σκέψου τι είδους ερωτήσεις μπορούν να απαντηθούν με αυτή την τεχνική. Πάρε αυτό το σεμινάριο για να εμβαθύνεις την κατανόησή σου.
Εργασία
Ένα διαφορετικό σύνολο δεδομένων
Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.