# Εξερευνήστε το Εργαλείο Υπεύθυνης Τεχνητής Νοημοσύνης
# Εξερευνήστε το Responsible AI Toolbox
## Οδηγίες
Σε αυτό το μάθημα μάθατε για το Εργαλείο Υπεύθυνης Τεχνητής Νοημοσύνης, ένα "έργο ανοιχτού κώδικα που καθοδηγείται από την κοινότητα γιανα βοηθήσει τους επιστήμονες δεδομένων να αναλύσουν και να βελτιώσουν συστήματα τεχνητής νοημοσύνης." Για αυτήν την εργασία, εξερευνήστε ένα από τα [notebooks](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) του RAI Toolbox και αναφέρετε τα ευρήματά σας σε ένα έγγραφο ή μια παρουσίαση.
Σε αυτό το μάθημα μάθατε για το Responsible AI Toolbox, ένα «ανοιχτού κώδικα, κοινοτικό έργο γιανα βοηθήσει τους επιστήμονες δεδομένων να αναλύουν και να βελτιώνουν τα συστήματα ΤΝ.» Για αυτήν την εργασία, εξερευνήστε ένα από τα [notebooks](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) του RAI Toolbox και αναφέρετε τα ευρήματά σας σε μία εργασία ή παρουσίαση.
| | Παρουσιάζεται ένα έγγραφο ή μια παρουσίαση PowerPoint που συζητά τα συστήματα του Fairlearn, το notebook που εκτελέστηκε και τα συμπεράσματα που προέκυψαν από την εκτέλεσή του | Παρουσιάζεται ένα έγγραφο χωρίς συμπεράσματα | Δεν παρουσιάζεται κανένα έγγραφο |
| | Παρουσιάζεται εργασία ή παρουσίαση powerpoint που συζητά τα συστήματα του Fairlearn, το notebook που εκτελέστηκε, και τα συμπεράσματα από την εκτέλεσή του | Παρουσιάζεται εργασία χωρίς συμπεράσματα | Δεν παρουσιάζεται εργασία |
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Αποποίηση ευθυνών**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες, συνιστάται η επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
Η γραμμική παλινδρόμηση χρησιμοποιείται όταν θέλουμε να προβλέψουμε μια **αριθμητική τιμή** (για παράδειγμα, τιμή σπιτιού, θερμοκρασία ή πωλήσεις). Λειτουργεί βρίσκοντας μια ευθεία που αντιπροσωπεύει καλύτερα τη σχέση μεταξύ των εισαγόμενων χαρακτηριστικών και της εξόδου.
Σε αυτό το μάθημα, εστιάζουμε στην κατανόηση της έννοιας πριν εξερευνήσουμε πιο προχωρημένες τεχνικές παλινδρόμησης.
> Infographic από τον/την [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Προαιρετικό κουίζ πριν το μάθημα](https://ff-quizzes.netlify.app/en/ml/)
> ### [Αυτό το μάθημα είναι διαθέσιμο και σε R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Εισαγωγή
### Εισαγωγή
Μέχρι τώρα έχετε εξερευνήσει τι είναι η παλινδρόμηση με δείγματα δεδομένων από το σύνολο δεδομένων τιμολόγησης κολοκύθας που θα χρησιμοποιήσουμε σε όλο το μάθημα. Έχετε επίσης οπτικοποιήσει τα δεδομένα χρησιμοποιώντας το Matplotlib.
Μέχρι τώρα έχετε διερευνήσει τι είναι η παλινδρόμηση με δείγμα δεδομένων από το σύνολο δεδομένων τιμών κολοκύθας που θα χρησιμοποιήσουμε σε όλο αυτό το μάθημα. Επίσης, το έχετε απεικονίσει οπτικά με τη χρήση του Matplotlib.
Τώρα είστε έτοιμοι να εμβαθύνετε περισσότερο στην παλινδρόμηση για τη Μηχανική Μάθηση. Ενώ η οπτικοποίηση σας επιτρέπει να κατανοήσετε τα δεδομένα, η πραγματική δύναμη της Μηχανικής Μάθησης προέρχεται από την _εκπαίδευση μοντέλων_. Τα μοντέλα εκπαιδεύονται σε ιστορικά δεδομένα γιανα καταγράψουν αυτόματα τις εξαρτήσεις των δεδομένων και σας επιτρέπουν να προβλέψετε αποτελέσματα για νέα δεδομένα που το μοντέλο δεν έχει δει πριν.
Τώρα είστε έτοιμοι να εμβαθύνετε στην παλινδρόμηση για την Μηχανική Μάθηση. Ενώ η οπτικοποίηση σας επιτρέπει να κατανοήσετε τα δεδομένα, η πραγματική δύναμη της Μηχανικής Μάθησης προέρχεται από το_εκπαίδευση μοντέλων_. Τα μοντέλα εκπαιδεύονται με ιστορικά δεδομένα γιανα συλλάβουν αυτόματα τις εξαρτήσεις δεδομένων, και σας επιτρέπουν να προβλέπετε αποτελέσματα για νέα δεδομένα, τα οποία το μοντέλο δεν έχει δει προηγουμένως.
Σε αυτό το μάθημα, θα μάθετε περισσότερα για δύο τύπους παλινδρόμησης: _βασική γραμμική παλινδρόμηση_ και _πολυωνυμική παλινδρόμηση_, μαζί με λίγα μαθηματικά που υποστηρίζουν αυτές τις τεχνικές. Αυτά τα μοντέλα θα μας επιτρέψουν να προβλέψουμε τις τιμές κολοκύθας ανάλογα με διαφορετικά δεδομένα εισόδου.
Σε αυτό το μάθημα, θα μάθετε περισσότερα για δύο τύπους παλινδρόμησης: _βασική γραμμική παλινδρόμηση_ και _πολυωνυμική παλινδρόμηση_, μαζί με κάποια από τα μαθηματικά που βασίζονται αυτές οι τεχνικές. Αυτά τα μοντέλα θα μας επιτρέψουν να προβλέψουμε τις τιμές κολοκύθας ανάλογα με διαφορετικά εισαγόμενα δεδομένα.
[](https://youtu.be/CRxFT8oTDMg "MLγια αρχάριους - Κατανόηση της Γραμμικής Παλινδρόμησης")
[](https://youtu.be/CRxFT8oTDMg "Μηχανική Μάθησηγια αρχάριους - Κατανόηση της Γραμμικής Παλινδρόμησης")
> 🎥 Κάντε κλικ στην εικόνα παραπάνω γιαένα σύντομο βίντεο επισκόπησης της γραμμικής παλινδρόμησης.
> 🎥 Κάντε κλικ στην εικόνα παραπάνω γιασύντομη επισκόπηση βίντεο σχετικά με τη γραμμική παλινδρόμηση.
> Σε όλο το πρόγραμμα σπουδών, υποθέτουμε ελάχιστη γνώση μαθηματικών και προσπαθούμε να το κάνουμε προσιτό για μαθητές που προέρχονται από άλλους τομείς, οπότε προσέξτε σημειώσεις, 🧮 υποδείξεις, διαγράμματα και άλλα εργαλεία μάθησης γιανα βοηθήσουν στην κατανόηση.
> Σε όλη τη διάρκεια αυτού του προγράμματος σπουδών, θεωρούμε ελάχιστες γνώσεις μαθηματικών, και στοχεύουμε να το κάνουμε προσβάσιμο για φοιτητές από άλλους κλάδους, οπότε παρατηρήστε τις σημειώσεις, 🧮 επισήμανσεις, διαγράμματα και άλλα εργαλεία μάθησης για βοήθεια στην κατανόηση.
### Προαπαιτούμενα
Θα πρέπει να είστε εξοικειωμένοι πλέον με τη δομή των δεδομένων κολοκύθας που εξετάζουμε. Μπορείτε να τα βρείτε προφορτωμένα και προ-καθαρισμένα στο αρχείο _notebook.ipynb_ αυτού του μαθήματος. Στο αρχείο, η τιμή της κολοκύθας εμφανίζεται ανά bushel σε ένα νέο πλαίσιο δεδομένων. Βεβαιωθείτε ότι μπορείτε να εκτελέσετε αυτά τα notebooks σε kernels στο Visual Studio Code.
Πρέπει να είστε εξοικειωμένοι πια με τη δομή των δεδομένων κολοκύθας που εξετάζουμε. Μπορείτε να τα βρείτε προφορτωμένα και καθαρισμένα στο αρχείο _notebook.ipynb_ αυτού του μαθήματος. Στο αρχείο, η τιμή της κολοκύθας εμφανίζεται ανά μπουσέλ σε νέο πλαίσιο δεδομένων. Βεβαιωθείτε ότι μπορείτε να εκτελέσετε αυτά τα notebooks σε kernels στο Visual Studio Code.
### Προετοιμασία
Ως υπενθύμιση, φορτώνετε αυτά τα δεδομένα γιανα θέσετε ερωτήσεις σχετικά με αυτά.
Ως υπενθύμιση, φορτώνετε αυτά τα δεδομένα γιανα θέσετε ερωτήματα πάνω σε αυτά.
- Ποια είναι η καλύτερη εποχή να αγοράσουμε κολοκύθες;
- Τι τιμή μπορώ να αναμένω για μια περίπτωση μικρών κολοκύθων;
- Πρέπει να τις αγοράσω σε καλάθια μισού μπουσέλ ή σε συσκευασία 1 1/9 μπουσέλ;
Ας συνεχίσουμε να ερευνούμε αυτά τα δεδομένα.
Στο προηγούμενο μάθημα, δημιουργήσατε ένα πλαίσιο δεδομένων Pandas και το γεμίσατε με μέρος του αρχικού συνόλου δεδομένων, τυποποιώντας τις τιμές ανά μπουσέλ. Με αυτόν τον τρόπο, ωστόσο, καταφέρατε να συλλέξετε μόνο περίπου 400 σημεία δεδομένων και μόνο για τους φθινοπωρινούς μήνες.
Ρίξτε μια ματιά στα δεδομένα που προφορτώσαμε στο συνοδευτικό notebook αυτού του μαθήματος. Τα δεδομένα είναι προφορτωμένα και έχει γίνει αρχικό scatterplot γιανα δείξει δεδομένα ανά μήνα. Ίσως μπορέσουμε να πάρουμε λίγο περισσότερες λεπτομέρειες για τη φύση των δεδομένων με περαιτέρω καθαρισμό.
- Ποια είναι η καλύτερη στιγμή γιανα αγοράσετε κολοκύθες;
- Τι τιμή μπορώ να περιμένω για μια θήκη μίνι κολοκύθες;
- Να τις αγοράσω σε μισά bushel καλάθια ή σε κουτιά 1 1/9 bushel;
Ας συνεχίσουμε να εξετάζουμε αυτά τα δεδομένα.
## Μια γραμμική γραμμή παλινδρόμησης
Στο προηγούμενο μάθημα, δημιουργήσατε ένα πλαίσιο δεδομένων Pandas και το γεμίσατε με μέρος του αρχικού συνόλου δεδομένων, τυποποιώντας την τιμολόγηση ανά bushel. Με αυτόν τον τρόπο, ωστόσο, καταφέρατε να συγκεντρώσετε μόνο περίπου 400 σημεία δεδομένων και μόνο για τους φθινοπωρινούς μήνες.
Όπως μάθατε στο Μάθημα 1, ο στόχος μιας άσκησης γραμμικής παλινδρόμησης είναι να μπορέσουμε να σχεδιάσουμε μια γραμμή που:
Ρίξτε μια ματιά στα δεδομένα που προφορτώσαμε στο συνοδευτικό notebook αυτού του μαθήματος. Τα δεδομένα είναι προφορτωμένα και ένα αρχικό scatterplot έχει σχεδιαστεί γιανα δείξει δεδομένα μήνα. Ίσως μπορέσουμε να πάρουμε λίγο περισσότερες λεπτομέρειες για τη φύση των δεδομένων καθαρίζοντάς τα περισσότερο.
- **Δείχνει τις σχέσεις μεταβλητών**. Δείχνει τη σχέση μεταξύ μεταβλητών
- **Κάνει προβλέψεις**. Κάνει ακριβείς προβλέψεις για το πού θα βρίσκεται ένα νέο δεδομένο σε σχέση με αυτή τη γραμμή.
## Μια γραμμή γραμμικής παλινδρόμησης
Είναι τυπικό της **Παλινδρόμησης Ελαχίστων Τετραγώνων** να σχεδιάζει αυτό το είδος γραμμής. Ο όρος "Ελαχίστη Τετραγωνική" αναφέρεται στη διαδικασία ελαχιστοποίησης του συνολικού σφάλματος στο μοντέλο μας. Για κάθε σημείο δεδομένων, μετράμε την κάθετη απόσταση (που ονομάζεται υπολειπόμενο) μεταξύ του πραγματικού σημείου και της γραμμής παλινδρόμησης.
Όπως μάθατε στο Μάθημα 1, ο στόχος μιας άσκησης γραμμικής παλινδρόμησης είναι να μπορέσετε να σχεδιάσετε μια γραμμή για:
Αυτές τις αποστάσεις τις τετραγωνίζουμε για δύο κύριους λόγους:
- **Να δείξετε σχέσεις μεταβλητών**. Να δείξετε τη σχέση μεταξύ μεταβλητών
- **Να κάνετε προβλέψεις**. Να κάνετε ακριβείς προβλέψεις για το πού θα βρισκόταν ένα νέο σημείο δεδομένων σε σχέση με αυτή τη γραμμή.
1. **Μέγεθος αντί για κατεύθυνση:** Θέλουμε να αντιμετωπίσουμε ένα σφάλμα -5 το ίδιο με ένα σφάλμα +5. Η τετραγωνική μετατρέπει όλες τις τιμές σε θετικές.
Είναι τυπικό της **Παλινδρόμησης Ελαχίστων Τετραγώνων** να σχεδιάζει αυτόν τον τύπο γραμμής. Ο όρος 'ελάχιστα τετράγωνα' σημαίνει ότι όλα τα σημεία δεδομένων γύρω από τη γραμμή παλινδρόμησης τετραγωνίζονται και στη συνέχεια προστίθενται. Ιδανικά, αυτό το τελικό άθροισμα είναι όσο το δυνατόν μικρότερο, επειδή θέλουμε έναν χαμηλό αριθμό σφαλμάτων ή `ελάχιστα τετράγωνα`.
2. **Τιμωρία για Εκτός Ορίων Σφάλματα:** Η τετραγωνική δίνει μεγαλύτερο βάρος στα μεγαλύτερα σφάλματα, αναγκάζοντας τη γραμμή να παραμείνει πιο κοντά σε σημεία που είναι μακριά.
Το κάνουμε αυτό επειδή θέλουμε να μοντελοποιήσουμε μια γραμμή που έχει τη μικρότερη σωρευτική απόσταση από όλα τα σημεία δεδομένων μας. Επίσης, τετραγωνίζουμε τους όρους πριν τους προσθέσουμε, καθώς μας ενδιαφέρει το μέγεθός τους και όχι η κατεύθυνσή τους.
Έπειτα προσθέτουμε όλες αυτές τις τετραγωνισμένες τιμές μαζί. Ο στόχος μας είναι να βρούμε την συγκεκριμένη γραμμή όπου αυτό το τελικό άθροισμα είναι το μικρότερο δυνατό — εξ ου και το όνομα "Ελαχίστων Τετραγώνων".
> **🧮 Δείξτε μου τα μαθηματικά**
> **🧮 Δείξε μου τα μαθηματικά**
>
> Αυτή η γραμμή, που ονομάζεται _γραμμή καλύτερης προσαρμογής_, μπορεί να εκφραστεί από [μια εξίσωση](https://en.wikipedia.org/wiki/Simple_linear_regression):
> Αυτή η γραμμή, που ονομάζεται _γραμμή της καλύτερης προσαρμογής_, μπορεί να εκφραστεί με [μια εξίσωση](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` είναι η 'επεξηγηματική μεταβλητή'. `Y` είναι η 'εξαρτημένη μεταβλητή'. Η κλίση της γραμμής είναι `b` και `a` είναι η τομή στον άξονα y, που αναφέρεται στην τιμή του `Y` όταν `X = 0`.
> `X` είναι η 'εξηγηματική μεταβλητή'. `Y` είναι η 'εξαρτημένη μεταβλητή'. Η κλίση της γραμμής είναι `b` και το `a` είναι η τομή στον άξονα y, που αναφέρεται στην τιμή του `Y` όταν `X = 0`.
>
>
>
>
> Πρώτα, υπολογίστε την κλίση `b`. Infographic από [Jen Looper](https://twitter.com/jenlooper)
> Πρώτα, υπολογίστε την κλίση `b`. Infographic από την [Jen Looper](https://twitter.com/jenlooper)
>
> Με άλλα λόγια, και αναφερόμενοι στην αρχική ερώτηση των δεδομένων κολοκύθας: "προβλέψτε την τιμή μιας κολοκύθας ανά bushel ανά μήνα", το `X` θα αναφέρεται στην τιμή και το `Y` στον μήνα πώλησης.
> Με άλλα λόγια, και αναφερόμενοι στην αρχική ερώτηση των δεδομένων κολοκύθας μας: "προβλέψτε την τιμή μιας κολοκύθας ανά μπουσέλ ανά μήνα", το `X` θα αναφερόταν στην τιμή και το `Y` στον μήνα πώλησης.
>
>
>
>
> Υπολογίστε την τιμή του Y. Αν πληρώνετε περίπου $4, πρέπει να είναι Απρίλιος! Infographic από [Jen Looper](https://twitter.com/jenlooper)
> Υπολογίστε την τιμή του Y. Αν πληρώνετε γύρω στα 4 δολάρια, πρέπει να είναι Απρίλιος! Infographic από την [Jen Looper](https://twitter.com/jenlooper)
>
> Τα μαθηματικά που υπολογίζουν τη γραμμή πρέπει να δείξουν την κλίση της γραμμής, η οποία εξαρτάται επίσης από την τομή, ή πού βρίσκεται το `Y` όταν `X = 0`.
> Τα μαθηματικά που υπολογίζουν τη γραμμή πρέπει να δείχνουν την κλίση της γραμμής, η οποία εξαρτάται επίσης από την τομή, ή το σημείο όπου βρίσκεται το `Y` όταν `X = 0`.
>
> Μπορείτε ναπαρατηρήσετε τη μέθοδο υπολογισμού αυτών των τιμών στον ιστότοπο [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Επισκεφθείτε επίσης [αυτόν τον υπολογιστή ελαχίστων τετραγώνων](https://www.mathsisfun.com/data/least-squares-calculator.html) γιανα δείτε πώς οιτιμές των αριθμών επηρεάζουν τη γραμμή.
> Μπορείτε ναδείτε τη μέθοδο υπολογισμού αυτών των τιμών στην ιστοσελίδα [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Επισκεφθείτε επίσης [τον υπολογιστή Ελαχίστων Τετραγώνων](https://www.mathsisfun.com/data/least-squares-calculator.html) γιανα δείτε πώς οιαριθμητικές τιμές επιδρούν στη γραμμή.
## Συσχέτιση
## Συνάφεια
Ένας ακόμη όρος που πρέπει να κατανοήσετε είναι ο**Συντελεστής Συσχέτισης** μεταξύ των μεταβλητών X και Y. Χρησιμοποιώντας ένα scatterplot, μπορείτε γρήγορα να οπτικοποιήσετε αυτόν τον συντελεστή. Ένα διάγραμμα με σημεία δεδομένων που είναι διασκορπισμένα σε μια τακτική γραμμή έχει υψηλή συσχέτιση, αλλά ένα διάγραμμα με σημεία δεδομένων που είναι διασκορπισμένα παντού μεταξύ X και Y έχει χαμηλή συσχέτιση.
Ένας ακόμη όρος προς κατανόηση είναι ο**Συντελεστής Συσχέτισης** μεταξύ των δοσμένων μεταβλητών X και Y. Χρησιμοποιώντας ένα scatterplot, μπορείτε γρήγορα να οπτικοποιήσετε αυτόν τον συντελεστή. Ένα γράφημα με σημεία δεδομένων συγκεντρωμένα σε μια καθαρή γραμμή έχει υψηλή συσχέτιση, ενώ ένα γράφημα με σημεία δεδομένων σκορπισμένα παντού μεταξύ X και Y έχει χαμηλή συσχέτιση.
Ένα καλό μοντέλο γραμμικής παλινδρόμησης θα είναι αυτό που έχει υψηλό (πιο κοντά στο 1 παρά στο 0) Συντελεστή Συσχέτισης χρησιμοποιώντας τη μέθοδο Ελαχίστων Τετραγώνων με μια γραμμή παλινδρόμησης.
Ένα καλό μοντέλο γραμμικής παλινδρόμησης θα είναι αυτό που έχει υψηλό (πιο κοντά στο 1 παρά στο 0) Συντελεστή Συσχέτισης με χρήση της μεθόδου Ελαχίστων Τετραγώνων με γραμμή παλινδρόμησης.
✅ Εκτελέστε το notebook που συνοδεύει αυτό το μάθημα και κοιτάξτε το scatterplot Μήνα προς Τιμή. Φαίνεται ότι τα δεδομένα που συνδέουν τον Μήνα με την Τιμή για τις πωλήσεις κολοκύθας έχουν υψηλή ή χαμηλή συσχέτιση, σύμφωνα με την οπτική σας ερμηνεία του scatterplot; Αλλάζει αυτό αν χρησιμοποιήσετε πιο λεπτομερή μέτρηση αντί για`Μήνα`, π.χ. *ημέρα του έτους* (δηλαδή αριθμός ημερών από την αρχή του έτους);
✅ Εκτελέστε το notebook που συνοδεύει αυτό το μάθημα και δείτε το scatterplot μήνα προς τιμή. Φαίνεται να υπάρχει υψηλή ή χαμηλή συσχέτιση στα δεδομένα που συνδέουν τον μήνα με την τιμή των πωλήσεων κολοκύθας σύμφωνα με την οπτική σας ερμηνεία του scatterplot; Αλλάζει κάτι αν χρησιμοποιήσετε πιο λεπτομερή μέτρο αντί για`Month`, π.χ. *ημέρα του έτους* (δηλαδή αριθμός ημερών από την αρχή του έτους);
Στον παρακάτω κώδικα, θα υποθέσουμε ότι έχουμε καθαρίσει τα δεδομένα και έχουμε αποκτήσει ένα πλαίσιο δεδομένων που ονομάζεται`new_pumpkins`, παρόμοιο με το εξής:
Στον παρακάτω κώδικα, υποθέτουμε ότι έχουμε καθαρίσει τα δεδομένα και έχουμε αποκτήσει ένα πλαίσιο δεδομένων με το όνομα`new_pumpkins`, παρόμοιο με το εξής:
ID | Μήνας | ΗμέραΈτους | Ποικιλία | Πόλη | Συσκευασία | Χαμηλή Τιμή | Υψηλή Τιμή | Τιμή
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
> Ο κώδικας για τον καθαρισμό των δεδομένων είναι διαθέσιμος στο [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Έχουμε εκτελέσει τα ίδια βήματα καθαρισμού όπως στο προηγούμενο μάθημα και έχουμε υπολογίσει τη στήλη `ΗμέραΈτους` χρησιμοποιώντας την ακόλουθη έκφραση:
> Ο κώδικας για τον καθαρισμό των δεδομένων είναι διαθέσιμος στο [`notebook.ipynb`](notebook.ipynb). Έχουμε πραγματοποιήσει τα ίδια βήματα καθαρισμού όπως στο προηγούμενο μάθημα, και έχουμε υπολογίσει τη στήλη `DayOfYear` με την ακόλουθη έκφραση:
Τώρα που έχετε κατανοήσει τα μαθηματικά πίσω από τη γραμμική παλινδρόμηση, ας δημιουργήσουμε ένα μοντέλο Παλινδρόμησης γιανα δούμε αν μπορούμε να προβλέψουμε ποια συσκευασία κολοκύθας θα έχει τις καλύτερες τιμές κολοκύθας. Κάποιος που αγοράζει κολοκύθες για ένα εποχιακό αγρόκτημα κολοκύθας μπορεί να θέλει αυτές τις πληροφορίεςγιανα βελτιστοποιήσει τις αγορές του.
Τώρα που έχετε κατανοήσει τα μαθηματικά πίσω από τη γραμμική παλινδρόμηση, ας δημιουργήσουμε ένα μοντέλο παλινδρόμησης γιανα δούμε αν μπορούμε να προβλέψουμε ποια συσκευασία κολοκύθας θα έχει τις καλύτερες τιμές. Κάποιος που αγοράζει κολοκύθες για ένα εποχιακό παρτέρι κολοκύθας μπορεί να θέλει αυτή την πληροφορίαγιανα βελτιστοποιήσει τις αγορές του σε συσκευασίες κολοκύθας.
## Αναζήτηση Συσχέτισης
## Αναζήτηση συσχέτισης
[](https://youtu.be/uoRq-lW2eQo "ML για αρχάριους - Αναζήτηση Συσχέτισης: Το Κλειδί για τη Γραμμική Παλινδρόμηση")
[](https://youtu.be/uoRq-lW2eQo "Μηχανική Μάθηση για αρχάριους - Αναζήτηση συσχέτισης: Το κλειδί για τη γραμμική παλινδρόμηση")
> 🎥 Κάντε κλικ στην εικόνα παραπάνω γιαένα σύντομο βίντεο επισκόπησης της συσχέτισης.
> 🎥 Κάντε κλικ στην εικόνα παραπάνω γιασύντομη επισκόπηση βίντεο σχετικά με τη συσχέτιση.
Από το προηγούμενο μάθημα πιθανότατα έχετε δει ότι η μέση τιμή για διαφορετικούς μήνες μοιάζει με αυτή:
Από το προηγούμενο μάθημα πιθανότατα έχετε δει ότι η μέση τιμή ανά μήνα μοιάζει κάπως έτσι:
<imgalt="Μέση τιμή ανά μήνα"src="../../../../translated_images/el/barchart.a833ea9194346d76.webp"width="50%"/>
Αυτό υποδηλώνει ότι θα πρέπει να υπάρχει κάποια συσχέτιση και μπορούμε να δοκιμάσουμε να εκπαιδεύσουμε ένα μοντέλο γραμμικής παλινδρόμησης γιανα προβλέψουμε τη σχέση μεταξύ `Μήνα` και `Τιμής`, ή μεταξύ `ΗμέραΈτους` και `Τιμής`. Εδώ είναι το scatterplot που δείχνει τη δεύτερη σχέση:
Αυτό υποδηλώνει ότι πρέπει να υπάρχει κάποια συσχέτιση, και μπορούμε να δοκιμάσουμε να εκπαιδεύσουμε γραμμικό μοντέλο παλινδρόμησης γιανα προβλέψουμε τη σχέση μεταξύ `Month` και `Price`, ή μεταξύ `DayOfYear` και `Price`. Ιδού το scatter plot που δείχνει τη δεύτερη σχέση:
<imgalt="Scatter plot Τιμής vs Ημέρα του Έτους" src="../../../../translated_images/el/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
<imgalt="Διάγραμμα διασποράς Τιμής vs. Ημέρα του Έτους" src="../../../../translated_images/el/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
Ας δούμε αν υπάρχει συσχέτιση χρησιμοποιώντας τη συνάρτηση `corr`:
Φαίνεται ότι η συσχέτιση είναι αρκετά μικρή, -0.15 για τον `Μήνα` και -0.17 για την `ΗμέραΈτους`, αλλά μπορεί να υπάρχει μια άλλη σημαντική σχέση. Φαίνεται ότι υπάρχουν διαφορετικά clusters τιμών που αντιστοιχούν σε διαφορετικές ποικιλίες κολοκύθας. Για να επιβεβαιώσουμε αυτήν την υπόθεση, ας σχεδιάσουμε κάθε κατηγορία κολοκύθας χρησιμοποιώντας διαφορετικό χρώμα. Με τη χρήση της παραμέτρου `ax` στη συνάρτηση σχεδίασης scatter μπορούμε να σχεδιάσουμε όλα τα σημεία στο ίδιο γράφημα:
Φαίνεται ότι η συσχέτιση είναι αρκετά μικρή, -0.15 με βάση τον `Month` και -0.17 με βάση τον `DayOfMonth`, αλλά μπορεί να υπάρχει μια άλλη σημαντική σχέση. Φαίνεται ότι υπάρχουν διαφορετικές ομάδες τιμών που αντιστοιχούν σε διαφορετικές ποικιλίες κολοκύθας. Για να επιβεβαιώσουμε αυτή την υπόθεση, ας σχεδιάσουμε κάθε κατηγορία κολοκύθας με διαφορετικό χρώμα. Με τη μετάδοση της παραμέτρου `ax` στη συνάρτηση σχεδίασης `scatter`, μπορούμε να σχεδιάσουμε όλα τα σημεία στο ίδιο γράφημα:
```python
ax=None
@ -128,42 +139,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<imgalt="Scatter plot Τιμής vs Ημέρα του Έτους" src="../../../../translated_images/el/scatter-dayofyear-color.65790faefbb9d54f.webp"width="50%"/>
<imgalt="Διάγραμμα διασποράς Τιμής vs. Ημέρα του Έτους με χρώματα" src="../../../../translated_images/el/scatter-dayofyear-color.65790faefbb9d54f.webp"width="50%"/>
Η έρευνά μας υποδηλώνει ότι η ποικιλία έχει μεγαλύτερη επίδραση στη συνολική τιμή από την πραγματική ημερομηνία πώλησης. Μπορούμε να το δούμε με ένα γράφημα μπαρ:
Η έρευνά μας υποδηλώνει ότι η ποικιλία έχει μεγαλύτερη επίδραση στην συνολική τιμή από την πραγματική ημερομηνία πώλησης. Το διαπιστώνουμε και με ένα ραβδόγραμμα:
<imgalt="Scatter plot Τιμής vs Ημέρα του Έτους" src="../../../../translated_images/el/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
<imgalt="Διάγραμμα διασποράς Τιμής vs. Ημέρα του Έτους για pie pumpkins" src="../../../../translated_images/el/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
Αν τώρα υπολογίσουμε τη συσχέτιση μεταξύ `Τιμής` και `ΗμέραΈτους` χρησιμοποιώντας τη συνάρτηση `corr`, θα πάρουμε κάτι σαν`-0.27` - που σημαίνει ότι η εκπαίδευση ενός προβλεπτικού μοντέλου έχει νόημα.
Αν τώρα υπολογίσουμε τη συσχέτιση μεταξύ `Price` και `DayOfYear` χρησιμοποιώντας τη συνάρτηση `corr`, θα πάρουμε κάτι σαν`-0.27` - που σημαίνει ότι η εκπαίδευση ενός προβλεπτικού μοντέλου έχει νόημα.
> Πριν εκπαιδεύσουμε ένα μοντέλο γραμμικής παλινδρόμησης, είναι σημαντικό να βεβαιωθούμε ότι τα δεδομένα μας είναι καθαρά. Η γραμμική παλινδρόμηση δεν λειτουργεί καλά με ελλιπείς τιμές, επομένως έχει νόημα να απαλλαγούμε από όλα τα κενά κελιά:
> Προτού εκπαιδεύσουμε ένα μοντέλο γραμμικής παλινδρόμησης, είναι σημαντικό να βεβαιωθούμε ότι τα δεδομένα μας είναι καθαρά. Η γραμμική παλινδρόμηση δεν λειτουργεί καλά με ελλιπείς τιμές, οπότε έχει νόημα να απαλλαγούμε από όλα τα κενά κελιά:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Μια άλλη προσέγγιση θα ήταν ναγεμίσουμε αυτές τις κενές τιμές με μέσες τιμές από την αντίστοιχη στήλη.
Μια άλλη προσέγγιση θα ήταν νασυμπληρώσουμε αυτές τις κενές τιμές με τις μέσες τιμές των αντίστοιχων στηλών.
## Απλή Γραμμική Παλινδρόμηση
## Απλή γραμμική παλινδρόμηση
[](https://youtu.be/e4c_UP2fSjg "MLγια αρχάριους - Γραμμική και Πολυωνυμική Παλινδρόμηση με χρήση Scikit-learn")
[](https://youtu.be/e4c_UP2fSjg "Μηχανική Μάθησηγια αρχάριους - Γραμμική και Πολυωνυμική Παλινδρόμηση με χρήση Scikit-learn")
> 🎥 Κάντε κλικ στην εικόνα παραπάνω γιαένα σύντομο βίντεο επισκόπησης της γραμμικής και πολυωνυμικής παλινδρόμησης.
> 🎥 Κάντε κλικ στην εικόνα παραπάνω γιασύντομη επισκόπηση βίντεο σχετικά με γραμμική και πολυωνυμική παλινδρόμηση.
Για να εκπαιδεύσουμε το μοντέλο Γραμμικής Παλινδρόμησης, θα χρησιμοποιήσουμε τη βιβλιοθήκη **Scikit-learn**.
Για να εκπαιδεύσουμε το μοντέλο μας Γραμμικής Παλινδρόμησης, θα χρησιμοποιήσουμε τη βιβλιοθήκη **Scikit-learn**.
```python
from sklearn.linear_model import LinearRegression
@ -171,37 +182,70 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Ξεκινάμε δια
Το σφάλμα μας φαίνεται να είναι γύρω στα 2 σημεία, δηλαδή ~17%. Όχι και τόσο καλό. Ένας άλλος δείκτης της ποιότητας του μοντέλου είναι ο**συντελεστής προσδιορισμού**, ο οποίος μπορεί να υπολογιστεί ως εξής:
Ξεκινάμε με τον διαχωρισμό των εισόδων (χαρακτηριστικά) και της αναμενόμενης εξόδου (ετικέτα) σε ξεχωριστά numpy arrays:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Σημειώστε ότι έπρεπε να πραγματοποιήσουμε `reshape` στα εισαγόμενα δεδομένα ώστε το πακέτο Γραμμικής Παλινδρόμησης να τα κατανοήσει σωστά. Η Γραμμική Παλινδρόμηση αναμένει ως είσοδο έναν πίνακα 2 διαστάσεων, όπου κάθε σειρά του πίνακα αντιστοιχεί σε ένα διάνυσμα χαρακτηριστικών εισόδου. Στη δική μας περίπτωση, καθώς έχουμε μόνο μία είσοδο, χρειάζεται ένας πίνακας με διάσταση N×1, όπου N είναι το μέγεθος του συνόλου δεδομένων.
Έπειτα, πρέπει να χωρίσουμε τα δεδομένα σε σύνολα εκπαίδευσης και δοκιμής, ώστε να μπορέσουμε να επαληθεύσουμε το μοντέλο μας μετά την εκπαίδευση:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Τέλος, η εκπαίδευση του πραγματικού μοντέλου Γραμμικής Παλινδρόμησης γίνεται με δύο μόνο γραμμές κώδικα. Ορίζουμε το αντικείμενο της `LinearRegression` και το εφαρμόζουμε στα δεδομένα μας χρησιμοποιώντας τη μέθοδο `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Το αντικείμενο `LinearRegression` μετά το `fit`-άρισμα περιέχει όλους τους συντελεστές της παλινδρόμησης, τους οποίους μπορούμε να προσεγγίσουμε χρησιμοποιώντας την ιδιότητα `.coef_`. Στη δική μας περίπτωση, υπάρχει μόνο ένας συντελεστής, που θα πρέπει να είναι περίπου `-0.017`. Αυτό σημαίνει ότι οι τιμές φαίνεται να μειώνονται λίγο με το χρόνο, αλλά όχι πολύ, περίπου 2 λεπτά την ημέρα. Μπορούμε επίσης να προσεγγίσουμε το σημείο τομής της παλινδρόμησης με τον άξονα Y χρησιμοποιώντας το `lin_reg.intercept_` - θα είναι περίπου `21` στη δική μας περίπτωση, που δείχνει την τιμή στην αρχή του έτους.
Για να δούμε πόσο ακριβές είναι το μοντέλο μας, μπορούμε να προβλέψουμε τιμές σε ένα σετ δοκιμής και στη συνέχεια να μετρήσουμε πόσο κοντά είναι οι προβλέψεις μας στις αναμενόμενες τιμές. Αυτό μπορεί να γίνει χρησιμοποιώντας το μέσο τετραγωνικό σφάλμα (MSE), που είναι ο μέσος όρος όλων των τετραγωνικών διαφορών μεταξύ της αναμενόμενης και της προβλεπόμενης τιμής.
Το σφάλμα μας φαίνεται να είναι περίπου 2 μονάδες, που είναι ~17%. Όχι και τόσο καλό. Ένας άλλος δείκτης ποιότητας μοντέλου είναι ο**συντελεστής προσδιορισμού (coefficient of determination)**, που μπορεί να προκύψει έτσι:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Αν η τιμή είναι 0, σημαίνει ότι το μοντέλο δεν λαμβάνει υπόψη τα δεδομένα εισόδου και λειτουργεί ως ο*χειρότερος γραμμικός προβλέπτης*, που είναι απλώς η μέση τιμή του αποτελέσματος. Η τιμή 1 σημαίνει ότι μπορούμε να προβλέψουμε τέλεια όλα τα αναμενόμενα αποτελέσματα. Στην περίπτωσή μας, ο συντελεστής είναι περίπου 0.06, που είναι αρκετά χαμηλός.
```
Αν η τιμή είναι 0, σημαίνει ότι το μοντέλο δεν λαμβάνει υπόψη τα δεδομένα εισόδου και λειτουργεί ως ο*χειρότερος γραμμικός προβλέπων*, που απλώς είναι η μέση τιμή του αποτελέσματος. Η τιμή 1 σημαίνει ότι μπορούμε να προβλέψουμε τέλεια όλες τις αναμενόμενες εξόδους. Στη δική μας περίπτωση, ο συντελεστής είναι περίπου 0.06, που είναι αρκετά χαμηλός.
Μπορούμε επίσης να σχεδιάσουμε τα δεδομένα δοκιμής μαζί με τη γραμμή παλινδρόμησης γιανα δούμε καλύτερα πώς λειτουργεί η παλινδρόμηση στην περίπτωσή μας:
Μπορούμε επίσης να σχεδιάσουμε τα δεδομένα δοκιμής μαζί με τη γραμμή παλινδρόμησης γιανα δούμε καλύτερα πώς λειτουργεί η παλινδρόμηση στη δική μας περίπτωση:
Ένας άλλος τύπος Γραμμικής Παλινδρόμησης είναι η Πολυωνυμική Παλινδρόμηση. Ενώ μερικές φορές υπάρχει γραμμική σχέση μεταξύ των μεταβλητών - όσο μεγαλύτερος ο όγκος της κολοκύθας, τόσο υψηλότερη η τιμή - μερικές φορές αυτές οι σχέσεις δεν μπορούν να σχεδιαστούν ως επίπεδο ή ευθεία γραμμή.
Ένας άλλος τύπος Γραμμικής Παλινδρόμησης είναι η Πολυωνυμική Παλινδρόμηση. Ενώ μερικές φορές υπάρχει γραμμική σχέση μεταξύ των μεταβλητών - όσο μεγαλύτερη είναι η κολοκύθα σε όγκο, τόσο υψηλότερη η τιμή - κάποιες φορές αυτές οι σχέσεις δεν μπορούν να σχεδιαστούν ως επίπεδο ή ευθεία γραμμή.
✅ Εδώ είναι [μερικά παραδείγματα](https://online.stat.psu.edu/stat501/lesson/9/9.8) δεδομένων που θα μπορούσαν να χρησιμοποιήσουν Πολυωνυμική Παλινδρόμηση.
✅ Εδώ είναι [μερικά ακόμα παραδείγματα](https://online.stat.psu.edu/stat501/lesson/9/9.8) δεδομένων που θα μπορούσαν να χρησιμοποιήσουν Πολυωνυμική Παλινδρόμηση
Ρίξτε μια άλλη ματιά στη σχέση μεταξύ Ημερομηνίας και Τιμής. Φαίνεται αυτό το διάγραμμα διασποράς ότι πρέπει απαραίτητα να αναλυθεί με μια ευθεία γραμμή; Δεν μπορούν οι τιμές να κυμαίνονται; Σε αυτή την περίπτωση, μπορείτε να δοκιμάσετε την πολυωνυμική παλινδρόμηση.
Κοιτάξτε ξανά τη σχέση μεταξύ Ημερομηνίας και Τιμής. Φαίνεται αυτό το διάγραμμα διασποράς να πρέπει απαραίτητα να αναλυθεί από μια ευθεία γραμμή; Δεν μπορούν οι τιμές να κυμαίνονται; Σε αυτή την περίπτωση, μπορείτε να δοκιμάσετε πολυωνυμική παλινδρόμηση.
✅ Τα πολυώνυμα είναι μαθηματικές εκφράσεις που μπορεί να αποτελούνται από μία ή περισσότερες μεταβλητές και συντελεστές.
✅ Οι πολυώνυμοι είναι μαθηματικές εκφράσεις που μπορεί να αποτελούνται από μία ή περισσότερες μεταβλητές και συντελεστές
Η πολυωνυμική παλινδρόμηση δημιουργεί μια καμπύλη γραμμή γιανα ταιριάζει καλύτερα σε μη γραμμικά δεδομένα. Στην περίπτωσή μας, αν συμπεριλάβουμε μια τετραγωνική μεταβλητή `DayOfYear` στα δεδομένα εισόδου, θα πρέπει να μπορούμε να ταιριάξουμε τα δεδομένα μας με μια παραβολική καμπύλη, η οποία θα έχει ένα ελάχιστο σε ένα συγκεκριμένο σημείο μέσα στο έτος.
Η πολυωνυμική παλινδρόμηση δημιουργεί μια καμπύλη γραμμή γιανα ταιριάξει καλύτερα τα μη γραμμικά δεδομένα. Στη δική μας περίπτωση, αν συμπεριλάβουμε την τετραγωνική μεταβλητή `DayOfYear` στα δεδομένα εισόδου, θα μπορούμε να προσαρμόσουμε τα δεδομένα μας με μια παραβολική καμπύλη, που θα έχει ένα ελάχιστο σε κάποιο σημείο μέσα στο έτος.
Το Scikit-learn περιλαμβάνει ένα χρήσιμο [API pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) γιανα συνδυάσει διαφορετικά βήματα επεξεργασίας δεδομένων. Ένα **pipeline** είναι μια αλυσίδα από **εκτιμητές**. Στην περίπτωσή μας, θα δημιουργήσουμε ένα pipeline που πρώτα προσθέτει πολυωνυμικά χαρακτηριστικά στο μοντέλο μας και στη συνέχεια εκπαιδεύει την παλινδρόμηση:
Το Scikit-learn περιλαμβάνει ένα χρήσιμο [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) γιανα συνδυάσετε διάφορα βήματα της επεξεργασίας δεδομένων μαζί. Ένα **pipeline** είναι μια αλυσίδα **εκτιμητών (estimators)**. Στη δική μας περίπτωση, θα δημιουργήσουμε ένα pipeline που πρώτα προσθέτει πολυωνυμικά χαρακτηριστικά στο μοντέλο μας, και στη συνέχεια εκπαιδεύει την παλινδρόμηση:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -210,62 +254,62 @@ from sklearn.pipeline import make_pipeline
Η χρήση του `PolynomialFeatures(2)` σημαίνει ότι θα συμπεριλάβουμε όλα τα πολυώνυμα δεύτερου βαθμού από τα δεδομένα εισόδου. Στην περίπτωσή μας, αυτό θα σημαίνει απλώς`DayOfYear`<sup>2</sup>, αλλά δεδομένων δύο μεταβλητών εισόδου X και Y, αυτό θα προσθέσει X<sup>2</sup>, XY και Y<sup>2</sup>. Μπορούμε επίσης να χρησιμοποιήσουμε πολυώνυμα υψηλότερου βαθμού αν θέλουμε.
Η χρήση του `PolynomialFeatures(2)` σημαίνει ότι θα συμπεριλάβουμε όλους τους πολυώνυμους δεύτερου βαθμού από τα δεδομένα εισόδου. Στη δική μας περίπτωση αυτό θα σημαίνει μόνο`DayOfYear`<sup>2</sup>, αλλά με δύο μεταβλητές εισόδου X και Y, αυτό θα προσθέσει X<sup>2</sup>, XY και Y<sup>2</sup>. Μπορούμε επίσης να χρησιμοποιήσουμε πολυώνυμους υψηλότερου βαθμού αν θέλουμε.
Τα pipelines μπορούν να χρησιμοποιηθούν με τον ίδιο τρόπο όπως το αρχικό αντικείμενο `LinearRegression`, δηλαδή μπορούμε ναχρησιμοποιήσουμε `fit`στο pipeline και στη συνέχεια `predict`γιανα πάρουμε τα αποτελέσματα πρόβλεψης. Εδώ είναι το γράφημα που δείχνει τα δεδομένα δοκιμής και την καμπύλη προσέγγισης:
Τα pipelines μπορούν να χρησιμοποιηθούν με τον ίδιο τρόπο όπως το αρχικό αντικείμενο `LinearRegression`, δηλαδή μπορούμε να`fit` το pipeline και στη συνέχειανα χρησιμοποιήσουμε`predict`γιανα πάρουμε τα αποτελέσματα πρόβλεψης. Εδώ είναι το γράφημα που δείχνει τα δεδομένα δοκιμής και την καμπύλη προσέγγισης:
Χρησιμοποιώντας την Πολυωνυμική Παλινδρόμηση, μπορούμε να πετύχουμε ελαφρώς χαμηλότερο MSE και υψηλότερο συντελεστή προσδιορισμού, αλλά όχι σημαντικά. Πρέπει να λάβουμε υπόψη και άλλα χαρακτηριστικά!
Χρησιμοποιώντας Πολυωνυμική Παλινδρόμηση, μπορούμε να πετύχουμε λίγο μικρότερο MSE και υψηλότερο συντελεστή προσδιορισμού, αλλά όχι σημαντικά. Πρέπει να λάβουμε υπόψη και άλλα χαρακτηριστικά!
> Μπορείτε να δείτε ότι οι ελάχιστες τιμές κολοκύθας παρατηρούνται κάπου γύρω από το Halloween. Πώς μπορείτενα το εξηγήσετε;
> Μπορείτε να δείτε ότι οι ελάχιστες τιμές των κολοκυθών παρατηρούνται κάπου γύρω από το Halloween. Πώς μπορεί να το εξηγήσετε;
🎃 Συγχαρητήρια, μόλις δημιουργήσατε ένα μοντέλο που μπορεί να βοηθήσει στην πρόβλεψη της τιμής των κολοκύθων για πίτα. Πιθανότατα μπορείτενα επαναλάβετε την ίδια διαδικασία για όλους τους τύπους κολοκύθας, αλλά αυτό θα ήταν κουραστικό. Ας μάθουμε τώρα πώς να λαμβάνουμε υπόψη την ποικιλία κολοκύθας στο μοντέλο μας!
🎃 Συγχαρητήρια, μόλις δημιουργήσατε ένα μοντέλο που μπορεί να βοηθήσει στην πρόβλεψη της τιμής των κολοκυθών για πίτες. Μπορείτε πιθανώςνα επαναλάβετε την ίδια διαδικασία για όλους τους τύπους κολοκύθας, αλλά αυτό θα ήταν κουραστικό. Ας μάθουμε τώρα πώς να λάβουμε υπόψη την ποικιλία κολοκύθας στο μοντέλο μας!
## Κατηγορικά Χαρακτηριστικά
## Κατηγορικά Χαρακτηριστικά
Στον ιδανικό κόσμο, θέλουμε να μπορούμε να προβλέψουμε τιμές για διαφορετικές ποικιλίες κολοκύθας χρησιμοποιώντας το ίδιο μοντέλο. Ωστόσο, η στήλη `Variety` είναι κάπως διαφορετική από στήλες όπως το `Month`, επειδή περιέχει μη αριθμητικές τιμές. Τέτοιες στήλες ονομάζονται **κατηγορικές**.
Σε έναν ιδανικό κόσμο, θέλουμε να μπορούμε να προβλέψουμε τιμές για διαφορετικές ποικιλίες κολοκύθας χρησιμοποιώντας το ίδιο μοντέλο. Ωστόσο, η στήλη `Variety`διαφέρει κάπως από στήλες όπως το `Month`, επειδή περιέχει μη αριθμητικές τιμές. Τέτοιες στήλες λέγονται **κατηγορικές**.
[](https://youtu.be/DYGliioIAE0 "ML για αρχάριους - Προβλέψεις με κατηγορικά χαρακτηριστικά μέσω Γραμμικής Παλινδρόμησης")
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 Κάντε κλικ στην εικόνα παραπάνω γιαένα σύντομο βίντεο σχετικά με τη χρήση κατηγορικών χαρακτηριστικών.
> 🎥 Κάντε κλικ στην εικόνα παραπάνω γιαμια σύντομη βιντεοπαρουσίαση για τη χρήση κατηγορικών χαρακτηριστικών.
Εδώ μπορείτε να δείτε πώς η μέση τιμή εξαρτάται από την ποικιλία:
<imgalt="Μέση τιμή ανά ποικιλία" src="../../../../translated_images/el/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
<imgalt="Average price by variety" src="../../../../translated_images/el/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
Για να λάβουμε υπόψη την ποικιλία, πρέπει πρώτα να τη μετατρέψουμε σε αριθμητική μορφή ή να την **κωδικοποιήσουμε**. Υπάρχουν διάφοροι τρόποι να το κάνουμε:
Για να λάβουμε υπόψη την ποικιλία, πρέπει πρώτα να την μετατρέψουμε σε αριθμητική μορφή ή να την **κωδικοποιήσουμε (encode)**. Υπάρχουν αρκετοί τρόποι να το κάνουμε:
* Η απλή **αριθμητική κωδικοποίηση** θα δημιουργήσει έναν πίνακα με διαφορετικές ποικιλίες και στη συνέχεια θα αντικαταστήσει το όνομα της ποικιλίας με έναν δείκτη στον πίνακα. Αυτό δεν είναι η καλύτερη ιδέα γιατη γραμμική παλινδρόμηση, επειδή η γραμμική παλινδρόμηση λαμβάνει την πραγματική αριθμητική τιμή του δείκτη και την προσθέτει στο αποτέλεσμα, πολλαπλασιάζοντας με κάποιο συντελεστή. Στην περίπτωσή μας, η σχέση μεταξύ του αριθμού δείκτη και της τιμής είναι σαφώς μη γραμμική, ακόμα κι αν βεβαιωθούμε ότι οι δείκτες είναι ταξινομημένοι με κάποιο συγκεκριμένο τρόπο.
* Η**one-hot κωδικοποίηση** θα αντικαταστήσει τη στήλη `Variety` με 4 διαφορετικές στήλες, μία για κάθε ποικιλία. Κάθε στήλη θα περιέχει `1`αν η αντίστοιχη γραμμή ανήκει σε μια δεδομένη ποικιλία και `0` διαφορετικά. Αυτό σημαίνει ότι θα υπάρχουν τέσσερις συντελεστές στη γραμμική παλινδρόμηση, ένας για κάθε ποικιλία κολοκύθας, υπεύθυνος για την "αρχική τιμή" (ή μάλλον "πρόσθετη τιμή") γιααυτήν την συγκεκριμένη ποικιλία.
* Η απλή **αριθμητική κωδικοποίηση** θα κατασκευάσει έναν πίνακα με τις διαφορετικές ποικιλίες και στη συνέχεια θα αντικαταστήσει το όνομα της ποικιλίας με ένα δείκτη σε αυτόν τον πίνακα. Αυτό δεν είναι η καλύτερη ιδέα για γραμμική παλινδρόμηση, επειδή αυτή παίρνει την πραγματική αριθμητική τιμή του δείκτη και την προσθέτει στο αποτέλεσμα, πολλαπλασιάζοντάς την με κάποιο συντελεστή. Στη δική μας περίπτωση, η σχέση μεταξύ του αριθμού του δείκτη και της τιμής είναι σαφώς μη γραμμική, ακόμα κι αν βεβαιωθούμε ότι οι δείκτες είναι ταξινομημένοι με κάποιο συγκεκριμένο τρόπο.
* Η**one-hot κωδικοποίηση** θα αντικαταστήσει τη στήλη `Variety` με 4 διαφορετικές στήλες, μία για κάθε ποικιλία. Κάθε στήλη θα περιέχει `1`αν η αντίστοιχη σειρά ανήκει σε εκείνη την ποικιλία, και `0` διαφορετικά. Αυτό σημαίνει ότι θα υπάρχουν τέσσερις συντελεστές στη γραμμική παλινδρόμηση, ένας για κάθε ποικιλία κολοκύθας, υπεύθυνος για την "αρχική τιμή" (ή μάλλον "πρόσθετη τιμή") γιαεκείνη την συγκεκριμένη ποικιλία.
Ο παρακάτω κώδικας δείχνει πώς μπορούμε να κάνουμε one-hot κωδικοποίηση μιας ποικιλίας:
Ο παρακάτω κώδικας δείχνει πώς μπορούμε να κάνουμε one-hot κωδικοποίηση σε μια ποικιλία:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
Για να εκπαιδεύσουμε τη γραμμική παλινδρόμηση χρησιμοποιώντας την one-hot κωδικοποιημένη ποικιλία ως είσοδο, απλώς πρέπει να αρχικοποιήσουμε σωστά τα δεδομένα `X` και `y`:
Για να εκπαιδεύσουμε τη γραμμική παλινδρόμηση χρησιμοποιώντας την one-hot κωδικοποιημένη ποικιλία ως είσοδο, απλά πρέπει να αρχικοποιήσουμε σωστά τα δεδομένα `X` και `y`:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
Ο υπόλοιπος κώδικας είναι ίδιος με αυτόν που χρησιμοποιήσαμε παραπάνω γιανα εκπαιδεύσουμε τη Γραμμική Παλινδρόμηση. Αν το δοκιμάσετε, θα δείτε ότι το μέσο τετραγωνικό σφάλμα είναι περίπου το ίδιο, αλλά έχουμε πολύ υψηλότερο συντελεστή προσδιορισμού (~77%). Για να πετύχουμε ακόμα πιο ακριβείς προβλέψεις, μπορούμε να λάβουμε υπόψη περισσότερα κατηγορικά χαρακτηριστικά, καθώς και αριθμητικά χαρακτηριστικά, όπως το `Month` ή το`DayOfYear`. Για να πάρουμε έναν μεγάλο πίνακα χαρακτηριστικών, μπορούμε να χρησιμοποιήσουμε `join`:
Το υπόλοιπο του κώδικα είναι το ίδιο με αυτό που χρησιμοποιήσαμε παραπάνω γιανα εκπαιδεύσουμε τη Γραμμική Παλινδρόμηση. Αν το δοκιμάσετε, θα δείτε ότι το μέσο τετραγωνικό σφάλμα είναι περίπου το ίδιο, αλλά ο συντελεστής προσδιορισμού αυξάνεται πολύ (~77%). Για να πάρουμε ακόμα πιο ακριβείς προβλέψεις, μπορούμε να λάβουμε υπόψη περισσότερα κατηγορικά χαρακτηριστικά, καθώς και αριθμητικά, όπως `Month` ή `DayOfYear`. Για να πάρουμε ένα μεγάλο πίνακα χαρακτηριστικών, μπορούμε να χρησιμοποιήσουμε τη`join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -273,69 +317,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
```
Εδώ λαμβάνουμε επίσης υπόψη την `City` και τον τύπο `Package`, που μας δίνει MSE 2.84 (10%) και προσδιορισμό 0.94!
Εδώ λαμβάνουμε επίσης υπόψη τον τύπο `City` και `Package`, που μας δίνει MSE 2.84 (10%) και συντελεστή προσδιορισμού 0.94!
## Συνδυάζοντας τα όλα
## Όλα μαζί
Για να δημιουργήσουμε το καλύτερο μοντέλο, μπορούμε να χρησιμοποιήσουμε συνδυασμένα (one-hot κωδικοποιημένα κατηγορικά + αριθμητικά) δεδομένα από το παραπάνω παράδειγμα μαζί με την Πολυωνυμική Παλινδρόμηση. Εδώ είναι ο πλήρης κώδικας γιαευκολία:
Για να δημιουργήσουμε το καλύτερο μοντέλο, μπορούμε να χρησιμοποιήσουμε συνδυασμένα δεδομένα (one-hot κωδικοποιημένα κατηγορικά + αριθμητικά) από το παραπάνω παράδειγμα μαζί με την Πολυωνυμική Παλινδρόμηση. Εδώ είναι ο πλήρης κώδικας γιατη διευκόλυνσή σας:
```python
# set up training data
# ρύθμιση δεδομένων εκπαίδευσης
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# δημιουργία διαχωρισμού εκπαίδευσης-δοκιμής
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# setup and train the pipeline
# ρύθμιση και εκπαίδευση της αλυσίδας επεξεργασίας
Αυτό θα μας δώσει τον καλύτερο συντελεστή προσδιορισμού σχεδόν 97% και MSE=2.23 (~8% σφάλμα πρόβλεψης).
Αυτό θα μας δώσει τον καλύτερο συντελεστή προσδιορισμού σχεδόν 97%, και MSE=2.23 (~8% σφάλμα πρόβλεψης).
| Μοντέλο | MSE | Προσδιορισμός |
|---------|-----|---------------|
| `DayOfYear`Γραμμικό | 2.77 (17.2%) | 0.07 |
| `DayOfYear`Πολυωνυμικό | 2.73 (17.0%) | 0.08 |
| `Variety` Γραμμικό | 5.24 (19.7%) | 0.77 |
| Όλα τα χαρακτηριστικά Γραμμικό | 2.84 (10.5%) | 0.94 |
| Όλα τα χαρακτηριστικά Πολυωνυμικό | 2.23 (8.25%) | 0.97 |
| Μοντέλο | MSE | Συντελεστής προσδιορισμού |
|-------|-----|---------------|
| Γραμμική με `DayOfYear` | 2.77 (17.2%) | 0.07 |
| Πολυωνυμική με `DayOfYear` | 2.73 (17.0%) | 0.08 |
| Γραμμική με `Variety` | 5.24 (19.7%) | 0.77 |
| Όλα τα χαρακτηριστικά Γραμμική | 2.84 (10.5%) | 0.94 |
| Όλα τα χαρακτηριστικά Πολυωνυμική | 2.23 (8.25%) | 0.97 |
🏆 Μπράβο! Δημιουργήσατε τέσσερα μοντέλα Παλινδρόμησης σε ένα μάθημα και βελτιώσατε την ποιότητα του μοντέλου στο 97%. Στην τελική ενότητα για την Παλινδρόμηση, θα μάθετε για τη Λογιστική Παλινδρόμηση γιατον προσδιορισμό κατηγοριών.
🏆 Μπράβο! Δημιουργήσατε τέσσερα μοντέλα παλινδρόμησης σε ένα μάθημα, και βελτιώσατε την ποιότητα του μοντέλου στο 97%. Στην τελική ενότητα για την Παλινδρόμηση θα μάθετε για τη Λογιστική Παλινδρόμηση γιανα προσδιορίσετε κατηγορίες.
---
## 🚀Πρόκληση
## 🚀 Πρόκληση
Δοκιμάστε διάφορες μεταβλητές σε αυτό το notebook γιανα δείτε πώς η συσχέτιση αντιστοιχεί στην ακρίβεια του μοντέλου.
Δοκιμάστε διάφορες μεταβλητές σε αυτό το σημειωματάριο γιανα δείτε πώς η συσχέτιση αντιστοιχεί στην ακρίβεια του μοντέλου.
## [Κουίζ μετά το μάθημα](https://ff-quizzes.netlify.app/en/ml/)
## Ανασκόπηση & Αυτομελέτη
## Επανάληψη & Αυτοεκπαίδευση
Σε αυτό το μάθημα μάθαμε για τη Γραμμική Παλινδρόμηση. Υπάρχουν άλλοι σημαντικοί τύποι Παλινδρόμησης. Διαβάστε για τις τεχνικές Stepwise, Ridge, Lasso και Elasticnet. Ένα καλό μάθημα γιανα μάθετε περισσότερα είναι το [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
Σε αυτό το μάθημα μάθαμε για τη Γραμμική Παλινδρόμηση. Υπάρχουν κι άλλοι σημαντικοί τύποι Παλινδρόμησης. Διαβάστε για τις τεχνικές Stepwise, Ridge, Lasso και Elasticnet. Ένα καλό μάθημα γιαμελέτη είναι το [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Εργασία
## Καθήκον
[Δημιουργήστε ένα Μοντέλο](assignment.md)
[Δημιουργήστε ένα Μοντέλο](assignment.md)
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Αποποίηση Ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ενώ καταβάλλουμε προσπάθεια για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
Σε αυτό το δεύτερο μάθημα ταξινόμησης, θα εξερευνήσετε περισσότερους τρόπους ταξινόμησης αριθμητικών δεδομένων. Θα μάθετε επίσης για τις συνέπειες της επιλογής ενός ταξινομητή έναντι ενός άλλου.
Σε αυτό το δεύτερο μάθημα ταξινόμησης, θα εξερευνήσετε περισσότερους τρόπους γιανα ταξινομήσετε αριθμητικά δεδομένα. Θα μάθετε επίσης για τις επιπτώσεις της επιλογής ενός ταξινομητή έναντι του άλλου.
## [Quiz πριν το μάθημα](https://ff-quizzes.netlify.app/en/ml/)
### Προαπαιτούμενα
### Προαπαιτούμενο
Υποθέτουμε ότι έχετε ολοκληρώσει τα προηγούμενα μαθήματα και έχετε ένα καθαρισμένο σύνολο δεδομένων στον φάκελο `data` που ονομάζεται _cleaned_cuisines.csv_ στη ρίζα αυτού του φακέλου με τα 4 μαθήματα.
### Προετοιμασία
Έχουμε φορτώσει το αρχείο σας _notebook.ipynb_ με το καθαρισμένο σύνολο δεδομένων και το έχουμε χωρίσει σε X και y dataframes, έτοιμαγια τη διαδικασία δημιουργίας μοντέλου.
Έχουμε φορτώσει το αρχείο σας _notebook.ipynb_ με το καθαρισμένο σύνολο δεδομένων και το έχουμε χωρίσει σε πίνακες δεδομένων X και y, έτοιμουςγια τη διαδικασία δημιουργίας μοντέλου.
## Χάρτης ταξινόμησης
## Ένας χάρτης ταξινόμησης
Προηγουμένως, μάθατε για τις διάφορες επιλογές που έχετε όταν ταξινομείτε δεδομένα χρησιμοποιώντας το cheat sheet της Microsoft. Το Scikit-learn προσφέρει ένα παρόμοιο, αλλά πιο λεπτομερές cheat sheet που μπορεί να βοηθήσει περαιτέρω να περιορίσετε τους εκτιμητές σας (ένας άλλος όρος για τους ταξινομητές):
Προηγουμένως, μάθατε για τις διάφορες επιλογές που έχετε κατά την ταξινόμηση δεδομένων χρησιμοποιώντας το cheat sheet της Microsoft. Το Scikit-learn προσφέρει ένα παρόμοιο, αλλά πιο λεπτομερές cheat sheet που μπορεί να βοηθήσει περαιτέρω στο να περιορίσετε τους εκτιμητές σας (άλλος όρος για τους ταξινομητές):

> Συμβουλή: [επισκεφθείτε αυτόν τον χάρτη online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) και κάντε κλικ κατά μήκος της διαδρομήςγιανα διαβάσετε την τεκμηρίωση.

> Συμβουλή: [επισκεφτείτε αυτόν τον χάρτη διαδικτυακά](https://scikit-learn.org/stable/tutorial/machine_learning_map/) και κάντε κλικ στο μονοπάτιγιανα διαβάσετε την τεκμηρίωση.
### Το σχέδιο
Αυτός ο χάρτης είναι πολύ χρήσιμος μόλις έχετε μια σαφή κατανόηση των δεδομένων σας, καθώς μπορείτε να "περπατήσετε" κατά μήκος των διαδρομών του γιανα πάρετε μια απόφαση:
Αυτός ο χάρτης είναι πολύ χρήσιμος μόλις κατανοήσετε καλά τα δεδομένα σας, καθώς μπορείτε να 'περπατήσετε' κατά μήκος των διαδρομών του για μια απόφαση:
- Έχουμε >50 δείγματα
- Θέλουμε να προβλέψουμε μια κατηγορία
- Έχουμε δεδομένα με ετικέτες
- Έχουμε ετικετοποιημένα δεδομένα
- Έχουμε λιγότερα από 100K δείγματα
- ✨ Μπορούμε να επιλέξουμε Linear SVC
- Αν αυτό δεν λειτουργήσει, δεδομένου ότι έχουμε αριθμητικά δεδομένα
- Μπορούμε να δοκιμάσουμε ✨ KNeighbors Classifier
- Αν αυτό δεν λειτουργήσει, δοκιμάστε ✨ SVC και ✨ Ensemble Classifiers
- ✨ Μπορούμε να επιλέξουμε ένα Linear SVC
- Αν αυτό δεν δουλέψει, αφού έχουμε αριθμητικά δεδομένα
- Μπορούμε να δοκιμάσουμε έναν ✨ KNeighbors Classifier
- Αν αυτό δεν δουλέψει, δοκιμάστε ✨ SVC και ✨ Ensemble Classifiers
Αυτή είναι μια πολύ χρήσιμη διαδρομήγιανα ακολουθήσετε.
Αυτό είναι ένα πολύ χρήσιμο μονοπάτιγιανα ακολουθήσετε.
## Άσκηση - χωρίστε τα δεδομένα
## Άσκηση - διαχωρίστε τα δεδομένα
Ακολουθώντας αυτή τη διαδρομή, θα πρέπει να ξεκινήσουμε εισάγοντας κάποιες βιβλιοθήκες για χρήση.
Ακολουθώντας αυτό το μονοπάτι, πρέπει να ξεκινήσουμε εισάγοντας μερικές βιβλιοθήκες προς χρήση.
1. Εισάγετε τις απαραίτητες βιβλιοθήκες:
@ -50,25 +50,25 @@
import numpy as np
```
1. Χωρίστε τα δεδομένα εκπαίδευσης και δοκιμής:
1. Διαχωρίστε τα δεδομένα εκπαίδευσης και ελέγχου σας:
Ηταξινόμηση Support-Vector (SVC) είναι μέλος της οικογένειας τεχνικών ML Support-Vector Machines (μάθετε περισσότερα για αυτές παρακάτω). Σε αυτή τη μέθοδο, μπορείτε να επιλέξετε έναν 'πυρήνα' γιανα αποφασίσετε πώς να ομαδοποιήσετε τις ετικέτες. Η παράμετρος 'C' αναφέρεται στην 'κανονικοποίηση', η οποία ρυθμίζει την επιρροή των παραμέτρων. Ο πυρήνας μπορεί να είναι ένας από [διάφορους](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); εδώ τον ορίζουμε ως 'linear' γιανα διασφαλίσουμε ότι χρησιμοποιούμε Linear SVC. Η πιθανότητα έχει ως προεπιλογή την τιμή 'false'; εδώ την ορίζουμε ως 'true' γιανα συλλέξουμε εκτιμήσεις πιθανότητας. Ορίζουμε την τυχαία κατάσταση ως '0' γιανα ανακατέψουμε τα δεδομένα ώστε να πάρουμε πιθανότητες.
Ηομαδοποίηση Support-Vector (SVC) είναι ένας απόγονος της οικογένειας μηχανών Support-Vector για τεχνικές ML (μάθετε περισσότερα γι' αυτές παρακάτω). Σε αυτή τη μέθοδο, μπορείτε να επιλέξετε ένα 'kernel' γιανα αποφασίσετε πώς θα ομαδοποιηθούν οι ετικέτες. Η παράμετρος 'C' αναφέρεται στη 'κανονικοποίηση' που ρυθμίζει την επιρροή των παραμέτρων. Το kernel μπορεί να είναι ένα από [πολλά](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC· εδώ το ορίσαμε σε 'linear' γιανα διασφαλίσουμε ότι εκμεταλλευόμαστε το γραμμικό SVC. Η πιθανότητα έχει προεπιλογή το 'false'· εδώ την ορίσαμε σε 'true' γιανα συλλέξουμε εκτιμήσεις πιθανοτήτων. Ορίσαμε το random state σε '0' γιανα ανακατέψουμε τα δεδομένα ώστε να λάβουμε πιθανότητες.
### Άσκηση - εφαρμόστε Linear SVC
### Άσκηση - εφαρμόστε ένα γραμμικό SVC
Ξεκινήστε δημιουργώντας έναν πίνακα ταξινομητών. Θα προσθέσετε προοδευτικά σε αυτόν τον πίνακα καθώς δοκιμάζουμε.
Ξεκινήστε δημιουργώντας έναν πίνακα ταξινομητών. Θα προσθέσετε σταδιακά σε αυτόν τον πίνακα καθώς δοκιμάζουμε.
Ο K-Neighbors είναι μέρος της οικογένειας "neighbors" των μεθόδων ML, οι οποίες μπορούν να χρησιμοποιηθούν τόσο για εποπτευόμενη όσο και για μη εποπτευόμενη μάθηση. Σε αυτή τη μέθοδο, δημιουργείται ένας προκαθορισμένος αριθμός σημείων και τα δεδομένα συγκεντρώνονται γύρω από αυτά τα σημεία, ώστε να μπορούν να προβλεφθούν γενικευμένες ετικέτες για τα δεδομένα.
Ο K-Neighbors είναι μέρος της οικογένειας μεθόδων "neighbors" για ML, που μπορούν να χρησιμοποιηθούν για επιβλεπόμενη και μη επιβλεπόμενη μάθηση. Σε αυτή τη μέθοδο δημιουργείται ένας προκαθορισμένος αριθμός σημείων και τα δεδομένα συγκεντρώνονται γύρω από αυτά τα σημεία έτσι ώστε να μπορούν να προβλεφθούν γενικευμένες ετικέτες για τα δεδομένα.
### Άσκηση - εφαρμόστε τον ταξινομητή K-Neighbors
Ο προηγούμενος ταξινομητής ήταν καλός και λειτούργησε καλά με τα δεδομένα, αλλά ίσως μπορούμε να πετύχουμε καλύτερη ακρίβεια. Δοκιμάστε έναν ταξινομητή K-Neighbors.
Ο προηγούμενος ταξινομητής ήταν καλός και δούλεψε καλά με τα δεδομένα, αλλά ίσως μπορούμε να πετύχουμε καλύτερη ακρίβεια. Δοκιμάστε έναν ταξινομητή K-Neighbors.
1. Προσθέστε μια γραμμή στον πίνακα ταξινομητών σας (προσθέστε ένα κόμμα μετά το στοιχείο Linear SVC):
1. Προσθέστε μια γραμμή στον πίνακα ταξινομητών σας (προσθέστε κόμμα μετά από το στοιχείο Linear SVC):
```python
'KNN classifier': KNeighborsClassifier(C),
@ -136,17 +136,17 @@
weighted avg 0.76 0.74 0.74 1199
```
✅ Μάθετε για [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
Οι ταξινομητές Support-Vector είναι μέρος της οικογένειας [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) των μεθόδων ML που χρησιμοποιούνται για εργασίες ταξινόμησης και παλινδρόμησης. Οι SVMs "χαρτογραφούν παραδείγματα εκπαίδευσης σε σημεία στο χώρο" γιανα μεγιστοποιήσουν την απόσταση μεταξύ δύο κατηγοριών. Τα επόμενα δεδομένα χαρτογραφούνται σε αυτόν τον χώρο ώστε να μπορεί να προβλεφθεί η κατηγορία τους.
Οι ταξινομητές Support-Vector είναι μέρος της οικογένειας [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) τεχνικών ML που χρησιμοποιούνται για ταξινόμηση και εργασίες παλινδρόμησης. Τα SVM "χαρτογραφούν παραδείγματα εκπαίδευσης σε σημεία στο χώρο" γιανα μεγιστοποιήσουν την απόσταση μεταξύ δύο κατηγοριών. Μετέπειτα δεδομένα χαρτογραφούνται σε αυτόν τον χώρο ώστε να μπορεί να προβλεφθεί η κατηγορία τους.
### Άσκηση - εφαρμόστε έναν ταξινομητή Support Vector
Ας προσπαθήσουμε για λίγο καλύτερη ακρίβεια με έναν ταξινομητή Support Vector.
Ας δοκιμάσουμε για λίγο καλύτερη ακρίβεια με έναν ταξινομητή Support Vector.
1. Προσθέστε ένα κόμμα μετά το στοιχείο K-Neighbors και στη συνέχεια προσθέστε αυτή τη γραμμή:
1. Προσθέστε κόμμα μετά το στοιχείο K-Neighbors και κατόπιν προσθέστε αυτή τη γραμμή:
```python
'SVC': SVC(),
@ -169,11 +169,11 @@
weighted avg 0.84 0.83 0.83 1199
```
✅ Μάθετε για [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
Ας ακολουθήσουμε τη διαδρομή μέχρι το τέλος, παρόλο που η προηγούμενη δοκιμή ήταν αρκετά καλή. Ας δοκιμάσουμε κάποιους ταξινομητές Ensemble, συγκεκριμένα Random Forest και AdaBoost:
Ας ακολουθήσουμε τη διαδρομή μέχρι το τέλος, παρόλο που το προηγούμενο τεστ ήταν αρκετά καλό. Ας δοκιμάσουμε κάποιους 'Ensemble Classifiers', συγκεκριμένα Random Forest και AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ Μάθετε για [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
Αυτή η μέθοδος Μηχανικής Μάθησης "συνδυάζει τις προβλέψεις αρκετών βασικών εκτιμητών" γιανα βελτιώσει την ποιότητα του μοντέλου. Στο παράδειγμά μας, χρησιμοποιήσαμε Random Trees και AdaBoost.
Αυτή η μέθοδος Μηχανικής Μάθησης "συνδυάζει τις προβλέψεις πολλών βασικών εκτιμητών" γιανα βελτιώσει την ποιότητα του μοντέλου. Στο παράδειγμά μας, χρησιμοποιήσαμε τυχαία δέντρα (Random Trees) και AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), μια μέθοδος μέσου όρου, δημιουργεί ένα 'δάσος' από 'δέντρα αποφάσεων' με τυχαιότητα γιανα αποφύγει την υπερπροσαρμογή. Η παράμετρος n_estimators ορίζεται στον αριθμό των δέντρων.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), μια μέθοδος μέσης τιμής, κατασκευάζει ένα 'δάσος' από 'δέντρα αποφάσεων' με τυχαίο χαρακτήρα ώστε να αποφευχθεί η υπερεκπαίδευση. Η παράμετρος n_estimators ορίζεται στον αριθμό δέντρων.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) προσαρμόζει έναν ταξινομητή σε ένα σύνολο δεδομένων και στη συνέχεια προσαρμόζει αντίγραφα αυτού του ταξινομητή στο ίδιο σύνολο δεδομένων. Εστιάζει στα βάρη των αντικειμένων που ταξινομήθηκαν λανθασμένα και προσαρμόζει την προσαρμογή για τον επόμενο ταξινομητή ώστε να διορθώσει.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) προσαρμόζει έναν ταξινομητή σε ένα σύνολο δεδομένων και κατόπιν προσαρμόζει αντίγραφα αυτού του ταξινομητή στο ίδιο σύνολο δεδομένων. Επικεντρώνεται στα βάρη των εσφαλμένα ταξινομημένων στοιχείων και προσαρμόζει την εφαρμογή για τον επόμενο ταξινομητή για διόρθωση.
---
## 🚀Πρόκληση
Καθένα από αυτά τα τεχνικά έχει μεγάλο αριθμό παραμέτρων που μπορείτε να προσαρμόσετε. Ερευνήστε τις προεπιλεγμένες παραμέτρους του καθενός και σκεφτείτε τι θα σήμαινε η προσαρμογή αυτών των παραμέτρωνγια την ποιότητα του μοντέλου.
Καθένα από αυτά τα τεχνικές έχει μεγάλο αριθμό παραμέτρων που μπορείτε να προσαρμόσετε. Ερευνήστε τις προεπιλεγμένες παραμέτρους της καθεμίας και σκεφτείτε τι σημαίνειγια την ποιότητα του μοντέλου η τροποποίηση αυτών των παραμέτρων.
## [Μετά το μάθημα κουίζ](https://ff-quizzes.netlify.app/en/ml/)
## [Quiz μετά το μάθημα](https://ff-quizzes.netlify.app/en/ml/)
## Ανασκόπηση & Αυτομελέτη
## Ανασκόπηση & Αυτοδιδασκαλία
Υπάρχει πολλή ορολογία σε αυτά τα μαθήματα, οπότε αφιερώστε λίγο χρόνογιανα αναθεωρήσετε [αυτήν τη λίστα](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) χρήσιμης ορολογίας!
Υπάρχει πολύς όρος σε αυτά τα μαθήματα, οπότε αφιερώστε ένα λεπτόγιανα αναθεωρήσετε [αυτή τη λίστα](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) με χρήσιμες ορολογίες!
## Εργασία
## Ανάθεση
[Παίξτε με τις παραμέτρους](assignment.md)
---
**Αποποίηση ευθύνης**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Αποποίηση ευθυνών**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρότι επιδιώκουμε την ακρίβεια, παρακαλούμε να λάβετε υπόψη ότι οι αυτόματες μεταφράσεις μπορεί να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική μετάφραση από ανθρώπινο μεταφραστή. Δεν φέρουμε ευθύνη για οποιεσδήποτε παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
"\n---\n\n**Αποποίηση Ευθύνης**: \nΑυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Αποποίηση Ευθυνών**: \nΑυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρότι επιδιώκουμε ακρίβεια, παρακαλούμε να σημειώσετε ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η έγκυρη πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρανοήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"\n---\n\n**Αποποίηση ευθύνης**: \nΑυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη γιατυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Αποποίηση Ευθυνών**: \nΑυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας υπηρεσία μετάφρασης τεχνητής νοημοσύνης [Co-op Translator](https://github.com/Azure/co-op-translator). Παρότι επιδιώκουμε την ακρίβεια, παρακαλούμε να γνωρίζετε ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες, συνιστάται η επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη γιαοποιεσδήποτε παρεξηγήσεις ή λανθασμένες ερμηνείες προκύψουν από τη χρήση αυτής της μετάφρασης.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
> Αυτό το αποθετήριο περιλαμβάνει μεταφράσεις σε 50+ γλώσσες που αυξάνουν σημαντικά το μέγεθος λήψης. Για να κάνετε κλωνοποίηση χωρίς μεταφράσεις, χρησιμοποιήστε sparse checkout:
> **Προτιμάτε να κλωνοποιήσετε τοπικά;**
>
> Αυτό το αποθετήριο περιλαμβάνει πάνω από 50 μεταφράσεις γλωσσών οι οποίες αυξάνουν σημαντικά το μέγεθος λήψης. Για να κλωνοποιήσετε χωρίς μεταφράσεις, χρησιμοποιήστε το sparse checkout:
Διεξάγουμε μια σειρά Discord εκμάθησης με AI, μάθετε περισσότερα και συμμετέχετε στο [Learn with AI Series](https://aka.ms/learnwithai/discord) από 18 έως 30 Σεπτεμβρίου 2025. Θα λάβετε συμβουλές και κόλπα για τη χρήση του GitHub Copilot για Data Science.
Διαρκεί μια σειρά μαθήματος Discord για μάθηση με AI, μάθετε περισσότερα και συμμετέχετε στο [Learn with AI Series](https://aka.ms/learnwithai/discord) από 18 έως 30 Σεπτεμβρίου 2025. Θα λάβετε συμβουλές και κόλπα για τη χρήση του GitHub Copilot για Data Science.

# Μηχανική Μάθηση για Αρχάριους - Ένα Πρόγραμμα Σπουδών
# Μηχανική Μάθηση για Αρχάριους - Πρόγραμμα Σπουδών
> 🌍 Ταξιδέψτε σε όλο τον κόσμο καθώς εξερευνούμε τη Μηχανική Μάθηση μέσα από τους πολιτισμούς του κόσμου 🌍
> 🌍 Ταξιδέψτε σ' όλο τον κόσμο καθώς εξερευνούμε τη Μηχανική Μάθηση μέσω των πολιτισμών του κόσμου 🌍
Οι Cloud Advocates της Microsoft έχουν τη χαρά να προσφέρουν ένα 12-εβδομαδιαίο, 26-μαθημάτων πρόγραμμα σπουδών που αφορά τη **Μηχανική Μάθηση**. Σε αυτό το πρόγραμμα, θα μάθετε για ό,τι μερικές φορές ονομάζεται **κλασική μηχανική μάθηση**, χρησιμοποιώντας κυρίως τη βιβλιοθήκη Scikit-learn και αποφεύγοντας την βαθιά μάθηση, που καλύπτεται στο πρόγραμμά μας [AI για Αρχάριους](https://aka.ms/ai4beginners). Συνδυάστε αυτά τα μαθήματα με το πρόγραμμά μας ['Data Science για Αρχάριους'](https://aka.ms/ds4beginners), επίσης!
Οι Cloud Advocates της Microsoft με χαρά προσφέρουν ένα 12-εβδομάδων, 26-μαθημάτων πρόγραμμα σπουδών που αφορά τη **Μηχανική Μάθηση**. Σε αυτό το πρόγραμμα σπουδών, θα μάθετε για ό,τι ονομάζεται συχνά**κλασική μηχανική μάθηση**, χρησιμοποιώντας κυρίως τη βιβλιοθήκη Scikit-learn και αποφεύγοντας τη βαθιά μάθηση, η οποία καλύπτεται στο πρόγραμμα σπουδών [AI για Αρχάριους](https://aka.ms/ai4beginners). Συνδυάστε αυτά τα μαθήματα με το δικό μας πρόγραμμα σπουδών [Επιστήμη δεδομένων για Αρχάριους](https://aka.ms/ds4beginners) επίσης!
Ταξιδέψτε μαζί μας γύρω από τον κόσμο καθώς εφαρμόζουμε αυτές τις κλασικές τεχνικές σε δεδομένα από πολλές περιοχές του κόσμου. Κάθε μάθημα περιλαμβάνει κουίζ πριν και μετά το μάθημα, γραπτές οδηγίες για την ολοκλήρωση του μαθήματος, λύση, ανάθεση εργασίας και άλλα. Ηπαιδαγωγική μας βασισμένη σε έργα επιτρέπει να μαθαίνετε ενώ δημιουργείτε, ένας αποδεδειγμένος τρόπος γιανα «καρφιτσώνετε» νέες δεξιότητες.
Ταξιδέψτε μαζί μας σε όλο τον κόσμο καθώς εφαρμόζουμε αυτές τις κλασικές τεχνικές σε δεδομένα από πολλές περιοχές του κόσμου. Κάθε μάθημα περιλαμβάνει κουίζ πριν και μετά το μάθημα, γραπτές οδηγίες για την ολοκλήρωση του μαθήματος, λύση, ανάθεση εργασίας και άλλα. Ηδιδακτική μέθοδος βασισμένη σε έργα σάς επιτρέπει να μαθαίνετε καθώς κατασκευάζετε, ένας αποδεδειγμένος τρόπος γιανα "κολλήσουν" οι νέες δεξιότητες.
**✍️ Θερμές ευχαριστίες στους συγγραφείς μας** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu και Amy Boyd
**🎨 Ευχαριστίες επίσης στους εικονογράφους μας** Tomomi Imura, Dasani Madipalli και Jen Looper
**🎨 Ευχαριστίες επίσης στους εικονογράφους μας** Tomomi Imura, Dasani Madipalli, και Jen Looper
**🙏 Ειδικές ευχαριστίες 🙏 στους Microsoft Student Ambassador συγγραφείς, κριτές και συνεισφέροντες περιεχομένου**, ιδιαίτερα στους Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila και Snigdha Agarwal
**🙏 Ειδικές ευχαριστίες 🙏 στους Microsoft Student Ambassador συγγραφείς, αξιολογητές και συντελεστές περιεχομένου**, ιδιαίτερα στους Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, και Snigdha Agarwal
**🤩 Επιπλέον ευγνωμοσύνη στους Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi και Vidushi Gupta για τα μαθήματα R!**
**🤩 Επιπλέον ευγνωμοσύνη στους Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, και Vidushi Gupta για τα μαθήματα R!**
# Ξεκινώντας
Ακολουθήστε τα βήματα:
1. **Κάντε Fork το Αποθετήριο**: Πατήστε το κουμπί "Fork" στην πάνω δεξιά γωνία αυτής της σελίδας.
2. **Κλωνοποιήστε το Αποθετήριο**:`git clone https://github.com/microsoft/ML-For-Beginners.git`
Ακολουθήστε αυτά τα βήματα:
1. **Fork το αποθετήριο:** Κάντε κλικ στο κουμπί "Fork" στην επάνω δεξιά γωνία αυτής της σελίδας.
2. **Κλωνοποιήστε το αποθετήριο:**`git clone https://github.com/microsoft/ML-For-Beginners.git`
> [βρείτε όλους τους επιπλέον πόρους για αυτό το μάθημα στη συλλογή μας Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [βρείτε όλους τους επιπλέον πόρους για αυτό το μάθημα στη συλλογή Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Χρειάζεστε βοήθεια;** Ελέγξτε τον [Οδηγό Επίλυσης Προβλημάτων](TROUBLESHOOTING.md) για λύσεις σε κοινά θέματα με εγκατάσταση, ρύθμιση και εκτέλεση μαθημάτων.
> 🔧 **Χρειάζεστε βοήθεια;** Ελέγξτε τον [Οδηγό αντιμετώπισης προβλημάτων](TROUBLESHOOTING.md) για λύσεις σε κοινά θέματα εγκατάστασης, ρυθμίσεων και εκτέλεσης μαθημάτων.
**[Φοιτητές](https://aka.ms/student-page)**, γιανα χρησιμοποιήσετε αυτό το πρόγραμμα, κάντε fork ολόκληρο το αποθετήριο στο δικό σας λογαριασμό GitHub και ολοκληρώστε τις ασκήσεις μόνοι σας ή με ομάδα:
**[Φοιτητές](https://aka.ms/student-page)**, γιανα χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών, κάντε fork ολόκληρου του αποθετηρίου στο δικό σας λογαριασμό GitHub και ολοκληρώστε τις ασκήσεις μόνοι σας ή σε ομάδα:
- Ξεκινήστε με ένα κουίζ προ-διάλεξης.
- Διαβάστε τη διάλεξη και ολοκληρώστε τις δραστηριότητες, σταματώντας και σκεπτόμενοι σε κάθε έλεγχο γνώσης.
- Προσπαθήστε να δημιουργήσετε τα έργα κατανοώντας τα μαθήματα παρά τρέχοντας τον κώδικα λύσης· ωστόσο, αυτός ο κώδικας είναι διαθέσιμος στους φακέλους `/solution` σε κάθε μάθημα που βασίζεται σε έργο.
- Κάντε το κουίζ μετά τη διάλεξη.
- Ξεκινήστε με ένα κουίζ προετοιμασίας μαθήματος.
- Διαβάστε το μάθημα και ολοκληρώστε τις δραστηριότητες, σταματώντας και αναλογιζόμενοι σε κάθε έλεγχο γνώσης.
- Προσπαθήστε να δημιουργήσετε τα έργα κατανοώντας τα μαθήματα αντί να τρέχετε τον κώδικα λύσης· ωστόσο, αυτός ο κώδικας είναι διαθέσιμος στους φακέλους `/solution` σε κάθε μάθημα προσανατολισμένο σε έργα.
- Δώστε το κουίζ μετά το μάθημα.
- Ολοκληρώστε την πρόκληση.
- Ολοκληρώστε την ανάθεση.
- Μετά την ολοκλήρωση μιας ομάδας μαθημάτων, επισκεφθείτε το [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) και "μάθετε δυνατά" συμπληρώνοντας το αντίστοιχο PAT rubric. Ένα 'PAT' είναι ένα Εργαλείο Αξιολόγησης Προόδου που είναι ένα rubric που συμπληρώνετε γιανα προωθήσετε τη μάθησή σας. Μπορείτε επίσης να αντιδράσετε σε άλλα PATs ώστε να μαθαίνουμε μαζί.
- Αφού ολοκληρώσετε μια ομάδα μαθημάτων, επισκεφθείτε το [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) και "μάθετε δυνατά" συμπληρώνοντας το κατάλληλο πρότυπο PAT. Ένα 'PAT' είναι Ένα Εργαλείο Αξιολόγησης Προόδου που είναι ένα πρότυπο που συμπληρώνετε γιανα εξελίξετε τη μάθησή σας. Μπορείτε επίσης να αντιδράσετε σε άλλα PAT ώστε να μαθαίνουμε μαζί.
> Για περαιτέρω μελέτη, προτείνουμε να ακολουθήσετε αυτά τα [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) μαθήματα και διαδρομές εκμάθησης.
> Για περαιτέρω μελέτη, προτείνουμε να ακολουθήσετε αυτά τα [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) μαθήματα και διαδρομές μάθησης.
**Καθηγητές**, έχουμε [συμπεριλάβει κάποιες προτάσεις](for-teachers.md) για το πώς να χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών.
---
## Βίντεο επιδείξεις
## Βιντεομαθήματα
Μερικά από τα μαθήματα είναι διαθέσιμα ως βίντεο σύντομης μορφής. Μπορείτε να βρείτε όλα αυτά ενσωματωμένα στα μαθήματα ή στη [λίστα αναπαραγωγής ML for Beginners στο κανάλι Microsoft Developer στο YouTube](https://aka.ms/ml-beginners-videos) πατώντας την παρακάτω εικόνα.
Μερικά από τα μαθήματα διατίθενται ως σύντομα βίντεο. Μπορείτε να τα βρείτε όλα ενσωματωμένα στα μαθήματα ή στη [λίστα προβολής ML for Beginners στο κανάλι Microsoft Developer του YouTube](https://aka.ms/ml-beginners-videos) κάνοντας κλικ στην παρακάτω εικόνα.
[](https://aka.ms/ml-beginners-videos)
> 🎥 Πατήστε την εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο και τους ανθρώπους που το δημιούργησαν!
> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο και τους ανθρώπους που το δημιούργησαν!
---
## Παιδαγωγική
## Διδακτική μέθοδος
Έχουμε επιλέξει δύο παιδαγωγικές αρχές κατά τη δημιουργία αυτού του προγράμματος: να είναι πρακτικό και βασισμένο σε έργα και να περιλαμβάνει συχνά κουίζ. Επιπλέον, αυτό το πρόγραμμα έχει ένα κοινό θεματικό άξοναγιανα του δώσει συνοχή.
Έχουμε επιλέξει δύο διδακτικές αρχές κατά την ανάπτυξη αυτού του προγράμματος σπουδών: τη διασφάλιση ότι είναι πρακτικό και **βασισμένο σε έργα** και ότι περιλαμβάνει **συχνά κουίζ**. Επιπλέον, αυτό το πρόγραμμα σπουδών έχει ένα κοινό **θέμα**γιανα του δώσει συνοχή.
Εξασφαλίζοντας ότι το περιεχόμενο ευθυγραμμίζεται με έργα, η διαδικασία γίνεται πιο ελκυστική για τους φοιτητές και η διατήρηση των εννοιών ενισχύεται. Επιπλέον, ένα κουίζ χαμηλού ρίσκου πριν από το μάθημα θέτει τη διάθεση του φοιτητή για εκμάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά το μάθημα διασφαλίζει περαιτέρω διατήρηση. Το πρόγραμμα σχεδιάστηκε γιανα είναι ευέλικτο και διασκεδαστικό και μπορεί ναακολουθηθεί ολόκληρο ή μεμονωμένα μέρη. Τα έργα ξεκινούν μικρά και γίνονται διαρκώς πιο πολύπλοκα έως το τέλος των 12 εβδομάδων. Το πρόγραμμα περιλαμβάνει επίσης επίμετρο σχετικά με τις πραγματικές εφαρμογές της ΜΜ, που μπορεί να χρησιμοποιηθεί ως επιπλέον πόντοι ή ως βάση συζήτησης.
Με το να διασφαλίζουμε ότι το περιεχόμενο ευθυγραμμίζεται με τα έργα, η διαδικασία γίνεται πιο ελκυστική για τους μαθητές και η συγκράτηση των εννοιών θα βελτιωθεί. Επιπλέον, ένα κουίζ χαμηλού κινδύνου πριν από ένα μάθημα θέτει την πρόθεση του μαθητή προς την εκμάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά το μάθημα εξασφαλίζει περαιτέρω συγκράτηση. Αυτό το πρόγραμμα σπουδών σχεδιάστηκε γιανα είναι ευέλικτο και διασκεδαστικό και μπορεί ναληφθεί ολόκληρο ή σε μέρη. Τα έργα ξεκινούν μικρά και γίνονται όλο και πιο πολύπλοκα στο τέλος του 12-εβδομάδων κύκλου. Αυτό το πρόγραμμα σπουδών περιλαμβάνει επίσης ένα επίμετρο για πραγματικές εφαρμογές της ΜΜ, το οποίο μπορεί να χρησιμοποιηθεί ως επιπλέον αξιολόγηση ή ως βάση για συζήτηση.
> Βρείτε τις οδηγίες μας για τον [Κώδικα Συμπεριφοράς](CODE_OF_CONDUCT.md), τη [Συμμετοχή](CONTRIBUTING.md), τη [Μετάφραση](TRANSLATIONS.md) και την [Επίλυση Προβλημάτων](TROUBLESHOOTING.md). Καλωσορίζουμε την εποικοδομητική σας κριτική!
> Βρείτε τις οδηγίες μας [Κώδικας Συμπεριφοράς](CODE_OF_CONDUCT.md), [Συνεισφορά](CONTRIBUTING.md), [Μετάφραση](TRANSLATIONS.md), και [Αντιμετώπιση προβλημάτων](TROUBLESHOOTING.md). Καλωσορίζουμε τις εποικοδομητικές παρατηρήσεις σας!
## Κάθε μάθημα περιλαμβάνει
- προαιρετικό σημείωμα σκετς
- προαιρετικό σκίτσο
- προαιρετικό συμπληρωματικό βίντεο
- βίντεο-περιήγηση (σε ορισμένα μαθήματα μόνο)
- [κουίζ προθέρμανσης πριν τη διάλεξη](https://ff-quizzes.netlify.app/en/ml/)
- για μαθήματα βασισμένα σε project, βήμα-βήμα οδηγούς για το πώς να κατασκευάσετε το έργο
- ελέγχους γνώσης
- για μαθήματα βασισμένα σε έργα, βήμα προς βήμα οδηγίες για την κατασκευή του έργου
- έλεγχοι γνώσης
- μια πρόκληση
- συμπληρωματική ανάγνωση
- ανάθεση εργασίας
- [κουίζ μετά τη διάλεξη](https://ff-quizzes.netlify.app/en/ml/)
> **Μια σημείωση για τις γλώσσες**: Αυτά τα μαθήματα είναι κυρίως γραμμένα σε Python, αλλά πολλά είναι διαθέσιμα και σε R. Για να ολοκληρώσετε ένα μάθημα R, πηγαίνετε στον φάκελο `/solution` και αναζητήστε μαθήματα R. Περιλαμβάνουν επέκταση .rmd που αντιπροσωπεύει ένα αρχείο **R Markdown**, το οποίο μπορεί να οριστεί απλά ως ενσωμάτωση `κώδικα κομματιών` (σε R ή άλλες γλώσσες) και `επικεφαλίδα YAML` (που καθοδηγεί τη μορφοποίηση εξόδων όπως PDF) σε ένα `έγγραφο Markdown`. Ως εκ τούτου, λειτουργεί ως ένα εξαίρετο πλαίσιο συγγραφής για data science, καθώς σας επιτρέπει να συνδυάσετε τον κώδικά σας, τα αποτελέσματά του και τις σκέψεις σας γράφοντάς τα στο Markdown. Επιπλέον, τα έγγραφα R Markdown μπορούν να αποδοθούν σε μορφές εξόδου όπως PDF, HTML ή Word.
> **Μία σημείωση σχετικά με τα κουίζ**: Όλα τα κουίζ περιλαμβάνονται στον [φάκελο Quiz App](../../quiz-app), συνολικά 52 κουίζ με τρεις ερωτήσεις το καθένα. Είναι συνδεδεμένα μέσα στα μαθήματα, αλλά η εφαρμογή κουίζ μπορεί να τρέξει τοπικά· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app`γιανατο φιλοξενήσετε τοπικά ή να το αναπτύξετε στο Azure.
| Αριθμός Μαθήματος | Θέμα | Ομαδοποίηση Μαθήματος | Στόχοι Μάθησης | Συνδεδεμένο Μάθημα | Συγγραφέας |
| 01 | Εισαγωγή στη μηχανική μάθηση | [Εισαγωγή](1-Introduction/README.md) | Μάθετε τις βασικές έννοιες πίσω από τη μηχανική μάθηση | [Μάθημα](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Η ιστορία της μηχανικής μάθησης | [Εισαγωγή](1-Introduction/README.md) | Μάθετε την ιστορία που στηρίζεται αυτό το πεδίο | [Μάθημα](1-Introduction/2-history-of-ML/README.md) | Jen και Amy |
| 03 | Δικαιοσύνη και μηχανική μάθηση | [Εισαγωγή](1-Introduction/README.md) | Ποια είναι τα σημαντικά φιλοσοφικά ζητήματα σχετικά με τη δικαιοσύνη που οι μαθητές πρέπει να εξετάζουν κατά την κατασκευή και εφαρμογή μοντέλων ML; | [Μάθημα](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Τεχνικές για μηχανική μάθηση | [Εισαγωγή](1-Introduction/README.md) | Ποιες τεχνικές χρησιμοποιούν οι ερευνητές ML γιανακατασκευάσουν μοντέλα ML; | [Μάθημα](1-Introduction/4-techniques-of-ML/README.md) | Chris και Jen |
| 05 | Εισαγωγή στη γραμμική παλινδρόμηση | [Παλινδρόμηση](2-Regression/README.md) | Ξεκινήστε με Python και Scikit-learn για μοντέλα παλινδρόμησης| [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Τιμές κολοκύθας στη Βόρεια Αμερική 🎃 | [Παλινδρόμηση](2-Regression/README.md) | Οπτικοποιήστε και καθαρίστε δεδομένα ως προετοιμασία για ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Τιμές κολοκύθας στη Βόρεια Αμερική 🎃 | [Παλινδρόμηση](2-Regression/README.md) | Κατασκευάστε γραμμικά και πολυωνυμικά μοντέλα παλινδρόμησης | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen και Dmitry • Eric Wanjau |
| 08 | Τιμές κολοκύθας στη Βόρεια Αμερική 🎃 | [Παλινδρόμηση](2-Regression/README.md) | Κατασκευάστε μοντέλο λογιστικής παλινδρόμησης | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Μία web εφαρμογή 🔌 | [Web App](3-Web-App/README.md) | Δημιουργήστε μία web εφαρμογή για τη χρήση του εκπαιδευμένου μοντέλου σας |[Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Εισαγωγή στην ταξινόμηση | [Ταξινόμηση](4-Classification/README.md) | Καθαρίστε, προετοιμάστε και οπτικοποιήστε τα δεδομένα σας· εισαγωγή στην ταξινόμηση | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen και Cassie • Eric Wanjau |
| 11 | Νόστιμες ασιατικές και ινδικές κουζίνες 🍜 | [Ταξινόμηση](4-Classification/README.md) | Εισαγωγή σε ταξινομητές | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen και Cassie • Eric Wanjau |
| 12 | Νόστιμες ασιατικές και ινδικές κουζίνες 🍜 | [Ταξινόμηση](4-Classification/README.md) | Περισσότεροι ταξινομητές | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen και Cassie • Eric Wanjau |
| 13 | Νόστιμες ασιατικές και ινδικές κουζίνες 🍜 | [Ταξινόμηση](4-Classification/README.md) | Δημιουργήστε μία web εφαρμογή προτάσεων χρησιμοποιώντας το μοντέλο σας | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Εισαγωγή στο clustering | [Clustering](5-Clustering/README.md) | Καθαρίστε, προετοιμάστε και οπτικοποιήστε τα δεδομένα σας· εισαγωγή στο clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Εξερευνώντας τις μουσικές προτιμήσεις Νιγηρίας 🎧 | [Clustering](5-Clustering/README.md) | Εξερευνήστε τη μέθοδο clustering K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Εισαγωγή στη φυσική επεξεργασία γλώσσας ☕️ | [Φυσική επεξεργασία γλώσσας](6-NLP/README.md) | Μάθετε τα βασικά για την NLP δημιουργώντας ένα απλό bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Κοινές εργασίες NLP ☕️ | [Φυσική επεξεργασία γλώσσας](6-NLP/README.md) | Εμβαθύνετε τις γνώσεις σας στην NLP κατανοώντας κοινές εργασίες που απαιτούνται για την αντιμετώπιση δομών γλώσσας | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Μετάφραση και ανάλυση συναισθήματος ♥️ | [Φυσική επεξεργασία γλώσσας](6-NLP/README.md) | Μετάφραση και ανάλυση συναισθήματος με την Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Ρομαντικά ξενοδοχεία της Ευρώπης ♥️ | [Φυσική επεξεργασία γλώσσας](6-NLP/README.md) | Ανάλυση συναισθήματος με κριτικές ξενοδοχείων 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Ρομαντικά ξενοδοχεία της Ευρώπης ♥️ | [Φυσική επεξεργασία γλώσσας](6-NLP/README.md) | Ανάλυση συναισθήματος με κριτικές ξενοδοχείων 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Εισαγωγή στην πρόβλεψη χρονοσειρών | [Χρονοσειρές](7-TimeSeries/README.md) | Εισαγωγή στην πρόβλεψη χρονοσειρών | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 23 | ⚡️ Παγκόσμια κατανάλωση ενέργειας ⚡️ - πρόβλεψη χρονοσειρών με SVR | [Χρονοσειρές](7-TimeSeries/README.md) | Πρόβλεψη χρονοσειρών με Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Εισαγωγή στην ενισχυτική μάθηση | [Ενισχυτική μάθηση](8-Reinforcement/README.md) | Εισαγωγή στην ενισχυτική μάθηση με Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Βοηθήστε τον Πέτρο να αποφύγει τον λύκο! 🐺| [Ενισχυτική μάθηση](8-Reinforcement/README.md) | Ενισχυτική μάθηση με Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Επίμετρο | Σενάρια και εφαρμογές ML στον πραγματικό κόσμο | [ML στον Πραγματικό Κόσμο](9-Real-World/README.md) | Ενδιαφέρουσες και αποκαλυπτικές εφαρμογές κλασικής ML στον πραγματικό κόσμο | [Μάθημα](9-Real-World/1-Applications/README.md) | Ομάδα |
| Επίμετρο | Αποσφαλμάτωση μοντέλων ML χρησιμοποιώντας τον πίνακα εργαλείων RAI | [ML στον Πραγματικό Κόσμο](9-Real-World/README.md) | Αποσφαλμάτωση μοντέλων στη μηχανική μάθηση με χρήση συστατικών πίνακα εργαλείων Responsible AI | [Μάθημα](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> **Μια σημείωση για τις γλώσσες**: Αυτά τα μαθήματα είναι κυρίως γραμμένα σε Python, αλλά πολλά είναι διαθέσιμα και σε R. Για να ολοκληρώσετε ένα μάθημα σε R, πηγαίνετε στον φάκελο `/solution` και αναζητήστε μαθήματα σε R. Αυτά περιλαμβάνουν μια κατάληξη .rmd που αντιπροσωπεύει ένα **R Markdown** αρχείο, το οποίο μπορεί να οριστεί απλά ως ενσωμάτωση `κωδικοτμημάτων` (σε R ή άλλες γλώσσες) και `YAML κεφαλίδας` (που καθοδηγεί τον τρόπο μορφοποίησης των εξόδων, όπως PDF) σε ένα `Markdown έγγραφο`. Ως τέτοιο, λειτουργεί ως ένα υποδειγματικό πλαίσιο συγγραφής για την επιστήμη δεδομένων, αφού σας επιτρέπει να συνδυάσετε τον κώδικά σας, την έξοδό του και τις σκέψεις σας, επιτρέποντάς σας να τις γράψετε σε Markdown. Επιπλέον, τα έγγραφα R Markdown μπορούν να αποδοθούν σε μορφές εξόδου όπως PDF, HTML ή Word.
> **Μια σημείωση για τα κουίζ**: Όλα τα κουίζ περιλαμβάνονται στο [φάκελο Quiz App](../../quiz-app), συνολικά 52 κουίζ με τρεις ερωτήσεις το καθένα. Συνδέονται μέσα από τα μαθήματα, αλλά η εφαρμογή κουίζ μπορεί να τρέξει τοπικά· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app`γιανα φιλοξενήσετε τοπικά ή να αναπτύξετε στο Azure.
| Αριθμός Μαθήματος | Θέμα | Ομάδα Μαθημάτων | Μαθησιακοί Στόχοι | Συνδεδεμένο Μάθημα | Συγγραφέας |
| 01 | Εισαγωγή στη μηχανική μάθηση | [Εισαγωγή](1-Introduction/README.md) | Μάθετε τις βασικές έννοιες πίσω από τη μηχανική μάθηση | [Μάθημα](1-Introduction/1-intro-to-ML/README.md)| Muhammad |
| 02 | Η ιστορία της μηχανικής μάθησης | [Εισαγωγή](1-Introduction/README.md) | Μάθετε την ιστορία που διέπει αυτόν τον τομέα | [Μάθημα](1-Introduction/2-history-of-ML/README.md)| Jen και Amy |
| 03 | Δικαιοσύνη και μηχανική μάθηση | [Εισαγωγή](1-Introduction/README.md)| Ποια είναι τα σημαντικά φιλοσοφικά ζητήματα γύρω από τη δικαιοσύνη που πρέπει να λάβουν υπόψη οι μαθητές όταν δημιουργούν και εφαρμόζουν μοντέλα ML; | [Μάθημα](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Τεχνικές για μηχανική μάθηση |[Εισαγωγή](1-Introduction/README.md) | Ποιες τεχνικές χρησιμοποιούν οι ερευνητές ML γιαναδημιουργήσουν μοντέλα ML; | [Μάθημα](1-Introduction/4-techniques-of-ML/README.md) | Chris και Jen |
| 05 | Εισαγωγή στην παλινδρόμηση | [Παλινδρόμηση](2-Regression/README.md) | Ξεκινήστε με Python και το Scikit-learn για μοντέλα παλινδρόμησης | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Τιμές κολοκύθας στη Βόρεια Αμερική 🎃 | [Παλινδρόμηση](2-Regression/README.md) | Οπτικοποιήστε και καθαρίστε δεδομένα για προετοιμασία στη μηχανική μάθηση | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Τιμές κολοκύθας στη Βόρεια Αμερική 🎃 | [Παλινδρόμηση](2-Regression/README.md) | Δημιουργήστε γραμμικά και πολυωνυμικά μοντέλα παλινδρόμησης | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen και Dmitry • Eric Wanjau |
| 08 | Τιμές κολοκύθας στη Βόρεια Αμερική 🎃 | [Παλινδρόμηση](2-Regression/README.md) | Δημιουργήστε ένα μοντέλο λογιστικής παλινδρόμησης | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Μια Ιστό-εφαρμογή 🔌 | [Ιστό-εφαρμογή](3-Web-App/README.md) | Δημιουργήστε μια ιστοσελίδα γιανα χρησιμοποιήσετε το εκπαιδευμένο μοντέλο σας | [Python](3-Web-App/1-Web-App/README.md) |Jen |
| 10 | Εισαγωγή στην ταξινόμηση | [Ταξινόμηση](4-Classification/README.md) | Καθαρίστε, προετοιμάστε και οπτικοποιήστε τα δεδομένα σας· εισαγωγή στην ταξινόμηση | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen και Cassie • Eric Wanjau |
| 11 | Νόστιμες ασιατικές και ινδικές κουζίνες 🍜 | [Ταξινόμηση](4-Classification/README.md) | Εισαγωγή στους ταξινομητές | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen και Cassie • Eric Wanjau |
| 12 | Νόστιμες ασιατικές και ινδικές κουζίνες 🍜 | [Ταξινόμηση](4-Classification/README.md) | Επιπλέον ταξινομητές | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen και Cassie • Eric Wanjau |
| 13 | Νόστιμες ασιατικές και ινδικές κουζίνες 🍜 | [Ταξινόμηση](4-Classification/README.md) | Δημιουργήστε μια ιστοσελίδα σύστασης χρησιμοποιώντας το μοντέλο σας | [Python](4-Classification/4-Applied/README.md)| Jen |
| 14 | Εισαγωγή στο ομαδοποίηση | [Ομαδοποίηση](5-Clustering/README.md) | Καθαρίστε, προετοιμάστε και οπτικοποιήστε τα δεδομένα σας· Εισαγωγή στην ομαδοποίηση | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Εξερεύνηση μουσικών γούστων στη Νιγηρία 🎧 | [Ομαδοποίηση](5-Clustering/README.md) | Εξερευνήστε τη μέθοδο ομαδοποίησης K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Εισαγωγή στην επεξεργασία φυσικής γλώσσας ☕️ | [Επεξεργασία φυσικής γλώσσας](6-NLP/README.md) | Μάθετε τα βασικά για NLP δημιουργώντας ένα απλό bot |[Python](6-NLP/1-Introduction-to-NLP/README.md)| Stephen |
| 17 | Κοινές εργασίες NLP ☕️ | [Επεξεργασία φυσικής γλώσσας](6-NLP/README.md) | Εμβαθύνετε τις γνώσεις NLP κατανοώντας κοινές εργασίες που απαιτούνται στην επεξεργασία δομών γλώσσας | [Python](6-NLP/2-Tasks/README.md) |Stephen |
| 18 | Μετάφραση και ανάλυση συναισθήματος ♥️ | [Επεξεργασία φυσικής γλώσσας](6-NLP/README.md) | Μετάφραση και ανάλυση συναισθήματος με την Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) |Stephen |
| 23 | ⚡️ Κατανάλωση ρεύματος παγκοσμίως ⚡️ - πρόβλεψη χρονοσειρών με SVR | [Χρονοσειρές](7-TimeSeries/README.md) | Πρόβλεψη χρονοσειρών με Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md)| Anirban |
| 24 | Εισαγωγή στην ενισχυτική μάθηση | [Ενισχυτική μάθηση](8-Reinforcement/README.md) | Εισαγωγή στην ενισχυτική μάθηση με Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md)|Dmitry |
| 25 | Βοηθήστε τον Πέτρο να αποφύγει το λύκο! 🐺 | [Ενισχυτική μάθηση](8-Reinforcement/README.md) | Ενισχυτική μάθηση Gym | [Python](8-Reinforcement/2-Gym/README.md) |Dmitry |
| Επίλογος | Πραγματικά σενάρια και εφαρμογές ML | [ML στη Φύση](9-Real-World/README.md) | Ενδιαφέρουσες και αποκαλυπτικές εφαρμογές κλασικής μηχανικής μάθησης στον πραγματικό κόσμο | [Μάθημα](9-Real-World/1-Applications/README.md) |Ομάδα |
| Επίλογος | Αποσφαλμάτωση μοντέλων ML με χρήση RAI dashboard | [ML στη Φύση](9-Real-World/README.md) | Αποσφαλμάτωση μοντέλων μηχανικής μάθησης χρησιμοποιώντας συστατικά του πίνακα ελέγχου Responsible AI | [Μάθημα](9-Real-World/2-Debugging-ML-Models/README.md) |Ruth Yakubu |
> [βρείτε όλους τους επιπλέον πόρους για αυτό το μάθημα στη συλλογή Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [βρείτε όλους τους επιπλέον πόρους για αυτό το μάθημα στη συλλογή μας Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Πρόσβαση χωρίς σύνδεση
## Πρόσβαση εκτός σύνδεσης
Μπορείτε νατρέξετε αυτό το έγγραφο εκτός σύνδεσης χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Φτιάξτε ένα fork αυτού του αποθετηρίου, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στην τοπική σας μηχανή και στη συνέχεια στον ριζικό φάκελο του αποθετηρίου, πληκτρολογήστε `docsify serve`. Η ιστοσελίδα θα σερβιριστεί στην πόρτα 3000 στο localhost σας: `localhost:3000`.
Μπορείτε ναεκτελέσετε αυτή την τεκμηρίωση εκτός σύνδεσης χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κάντε fork το repo, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στον τοπικό σας υπολογιστή και μετά στο ριζικό φάκελο αυτού του repo, πληκτρολογήστε `docsify serve`. Ο ιστότοπος θα σερβιριστεί στην θύρα 3000 στο localhost σας: `localhost:3000`.
## Αρχεία PDF
## PDFs
Βρείτε το pdf του προγράμματος σπουδών με τους συνδέσμους [εδώ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
Βρείτε ένα pdf του προγράμματος σπουδών με συνδέσμους [εδώ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Άλλα Μαθήματα
## 🎒 Άλλα Μαθήματα
Η ομάδα μας παράγει και άλλα μαθήματα! Ρίξτε μια ματιά:
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Generative AI Series
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
Εάν κολλήσετε ή έχετε ερωτήσεις σχετικά με την κατασκευή εφαρμογών ΤΝ, συμμετάσχετε με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις σχετικά με το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα.
Αν κολλήσετε ή έχετε ερωτήσεις σχετικά με την κατασκευή εφαρμογών AI. Συμμετάσχετε με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις για το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα.
- Επανεξετάστε τα σημειωματάρια μετά από κάθε μάθημα για καλύτερη κατανόηση.
- Εξασκηθείτε στην υλοποίηση αλγορίθμων μόνοι σας.
- Εξερευνήστε πραγματικά σύνολα δεδομένων χρησιμοποιώντας τις έννοιες που μάθατε.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Αποποίηση ευθυνών**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Παρόλο που προσπαθούμε για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στην αρχική του γλώσσα πρέπει να θεωρείται η εξουσιοδοτημένη πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν είμαστε υπεύθυνοι για οποιεσδήποτε παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
**Αποποίηση Ευθυνών**:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ενώ προσπαθούμε για ακρίβεια, παρακαλούμε να λάβετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του αποτελεί την αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική μετάφραση από άνθρωπο. Δεν φέρουμε καμία ευθύνη για τυχόν παρερμηνείες ή λανθασμένες εντυπώσεις που προκύπτουν από τη χρήση αυτής της μετάφρασης.
I den här lektionen lärde du dig om Responsible AI Toolbox, ett "öppen källkod, community-drivet projekt för att hjälpa dataforskare att analysera och förbättra AI-system." För denna uppgift, utforska en av RAI Toolbox's [notebooks](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) och rapportera dina resultat i en uppsats eller presentation.
I den här lektionen lärde du dig om Responsible AI Toolbox, ett "öppet källkods-, communitydrivet projekt för att hjälpa data scientists att analysera och förbättra AI-system." För denna uppgift, utforska en av RAI Toolboxs [notebooks](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) och rapportera dina iakttagelser i ett papper eller en presentation.
| | En uppsats eller PowerPoint-presentation presenteras som diskuterar Fairlearns system, den notebook som kördes, och de slutsatser som drogs från att köra den | En uppsats presenteras utan slutsatser | Ingen uppsats presenteras |
| | Ett papper eller en PowerPoint-presentation presenteras som diskuterar Fairlearns system, notebooken som kördes och de slutsatser som drogs från att köra den | Ett papper presenteras utan slutsatser | Inget papper presenteras |
---
**Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, bör det noteras att automatiserade översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som kan uppstå vid användning av denna översättning.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, bör du vara medveten om att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål ska betraktas som den auktoritativa källan. För viktig information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår vid användning av denna översättning.
# Bygg en regressionsmodell med Scikit-learn: regression på fyra sätt

> Infografik av [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Quiz före föreläsningen](https://ff-quizzes.netlify.app/en/ml/)
## Nybörjarmeddelande
> ### [Den här lektionen finns tillgänglig i R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Introduktion
Linjär regression används när vi vill förutsäga ett **numeriskt värde** (till exempel huspris, temperatur eller försäljning).
Det fungerar genom att hitta en rät linje som bäst representerar sambandet mellan indatafunktioner och utdata.
Hittills har du utforskat vad regression är med exempeldata från pumpaprisdatamängden som vi kommer att använda genom hela denna lektion. Du har också visualiserat den med hjälp av Matplotlib.
I denna lektion fokuserar vi på att förstå konceptet innan vi utforskar mer avancerade regressionstekniker.

> Informationsgrafik av [Dasani Madipalli](https://twitter.com/dasani_decoded)
Nu är du redo att fördjupa dig i regression för maskininlärning. Medan visualisering hjälper dig att förstå data, ligger den verkliga styrkan i maskininlärning i _att träna modeller_. Modeller tränas på historisk data för att automatiskt fånga datadependenser, och de gör det möjligt att förutsäga resultat för ny data som modellen inte har sett tidigare.
> ### [Den här lektionen finns tillgänglig i R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Introduktion
I denna lektion kommer du att lära dig mer om två typer av regression: _grundläggande linjär regression_ och _polynomisk regression_, tillsammans med lite av matematiken bakom dessa tekniker. Dessa modeller kommer att hjälpa oss att förutsäga pumpapriser baserat på olika indata.
Hittills har du utforskat vad regression är med hjälp av exempeldata från pumpaprisdatasetet som vi kommer använda i hela denna lektion. Du har också visualiserat det med Matplotlib.
[](https://youtu.be/CRxFT8oTDMg "ML för nybörjare - Förstå linjär regression")
Nu är du redo att fördjupa dig i regression för ML. Medan visualisering hjälper dig att förstå data, kommer den verkliga styrkan i maskininlärning från _tränade modeller_. Modeller tränas på historisk data för att automatiskt fånga databeroenden, och de låter dig förutsäga utfall för nya data som modellen inte har sett tidigare.
> 🎥 Klicka på bilden ovan för en kort videogenomgång av linjär regression.
I denna lektion kommer du att lära dig mer om två typer av regression: _grundläggande linjär regression_ och _polynomregression_, tillsammans med en del av matematiken bakom dessa tekniker. Dessa modeller kommer att låta oss förutsäga pumpapris beroende på olika indata.
> Genom hela detta läroplan antar vi minimal kunskap om matematik och strävar efter att göra det tillgängligt för studenter från andra områden, så håll utkik efter anteckningar, 🧮 matematiska inslag, diagram och andra lärverktyg för att underlätta förståelsen.
[](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 Klicka på bilden ovan för en kort videoöversikt av linjär regression.
> Genom hela detta utbildningsprogram antar vi minimala kunskaper i matematik och strävar efter att göra det tillgängligt för studenter från andra områden, så håll utkik efter anteckningar, 🧮 markeringar, diagram och andra inlärningsverktyg för att underlätta förståelsen.
### Förkunskaper
Du bör nu vara bekant med strukturen för pumpadatan som vi undersöker. Du hittar den förladdad och förberedd i denna lektions _notebook.ipynb_-fil. I filen visas pumpapriset per skäppa i en ny dataram. Se till att du kan köra dessa notebooks i kärnor i Visual Studio Code.
Du bör nu vara bekant med strukturen i pumpadata som vi undersöker. Den finns förladdad och förberedd rengjord i denna lektions _notebook.ipynb_-fil.
I filen visas pumpapriset per bushel i en ny data frame. Se till att du kan köra dessa notebooks i kärnor i Visual Studio Code.
### Förberedelse
Som en påminnelse laddar du denna data för att kunna ställa frågor om den.
Som en påminnelse laddar du in denna data för att kunna ställa frågor om den.
- När är det bästa tillfället att köpa pumpor?
- Vilket pris kan jag förvänta mig för en låda med miniatyrpumpor?
- Ska jag köpa dem i halvskäppakorgar eller i lådor med 1 1/9 skäppa?
- När är bästa tidpunkten att köpa pumpor?
- Vilket pris kan jag förvänta mig för ett fall med miniatyrpumpor?
- Bör jag köpa dem i halva bushel-korgar eller i 1 1/9 bushel-lådor?
Låt oss fortsätta att gräva i denna data.
I den föregående lektionen skapade du en Pandas-dataram och fyllde den med en del av den ursprungliga datamängden, standardiserade prissättningen per skäppa. Genom att göra det kunde du dock bara samla in cirka 400 datapunkter och endast för höstmånaderna.
I föregående lektion skapade du en Pandas data frame och fyllde den med en del av den ursprungliga datasetet, standardiserande priser per bushel. Genom att göra detta kunde du dock bara samla in ungefär 400 datapunkter och endast för höstmånaderna.
Ta en titt på datan som vi har förladdat i denna lektions medföljande notebook. Datan är förladdad och ett initialt spridningsdiagram är skapat för att visa månatlig data. Kanske kan vi få lite mer detaljer om datans natur genom att rengöra den ytterligare.
Ta en titt på datan som vi förladdat i denna lektions tillhörande notebook. Data är förladdad och en initial spridningsdiagram är ritad för att visa månadsdata. Kanske kan vi få lite mer insikt om datan genom att rengöra den mer.
## En linjär regressionslinje
Som du lärde dig i Lektion 1 är målet med en linjär regressionsövning att kunna rita en linje för att:
Som du lärde dig i Lektion 1 är målet med ett linjärt regressionsövning att kunna rita en linje för att:
- **Visa variabelrelationer**. Visa relationen mellan variabler
- **Göra förutsägelser**. Göra noggranna förutsägelser om var en ny datapunkt skulle hamna i relation till den linjen.
Det är typiskt för **Minsta Kvadrat-regression** att rita denna typ av linje. Begreppet "Minsta Kvadrat" syftar på processen att minimera den totala felet i vår modell. För varje datapunkt mäter vi det vertikala avståndet (kallat residual) mellan den faktiska punkten och vår regressionslinje.
- **Visa variabelrelationer**. Visa relationen mellan variabler
- **Göra förutsägelser**. Göra korrekta förutsägelser om var en ny datapunkt skulle hamna i förhållande till den linjen.
Det är typiskt för **Least-Squares Regression** att dra denna typ av linje. Termen 'least-squares' betyder att alla datapunkter runt regressionslinjen kvadreras och sedan adderas. Idealiskt sett är den slutliga summan så liten som möjligt, eftersom vi vill ha ett lågt antal fel, eller `least-squares`.
Vi kvadrerar dessa avstånd av två huvudsakliga skäl:
Vi gör detta eftersom vi vill modellera en linje som har den minsta kumulativa avståndet från alla våra datapunkter. Vi kvadrerar också termerna innan vi adderar dem eftersom vi är intresserade av dess storlek snarare än dess riktning.
1. **Storlek över riktning:** Vi vill behandla ett fel på -5 lika som ett fel på +5. Kvadrering gör alla värden positiva.
> **🧮 Visa mig matematiken**
>
> Denna linje, kallad _linjen för bästa passform_, kan uttryckas med [en ekvation](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
2. **Straffa avvikare:** Kvadrering ger större vikt åt större fel och tvingar linjen att stanna närmare punkter som ligger långt ifrån.
Vi summerar sedan alla dessa kvadrerade värden. Vårt mål är att hitta den specifika linje där denna slutliga summa är som minst (det minsta möjliga värdet) – därav namnet "Minsta Kvadrat".
> **🧮 Visa mig matematiken**
>
> Denna linje, kallad _bästa anpassningslinje_ kan uttryckas med [en ekvation](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` är den 'förklarande variabeln'. `Y` är den 'beroende variabeln'. Lutningen på linjen är `b` och `a` är y-interceptet, vilket hänvisar till värdet på `Y` när `X = 0`.
> Först, beräkna lutningen `b`. Infografik av [Jen Looper](https://twitter.com/jenlooper)
>
> Med andra ord, och med hänvisning till vår ursprungliga fråga om pumpadata: "förutsäg priset på en pumpa per skäppa efter månad", skulle `X` hänvisa till priset och `Y` hänvisa till försäljningsmånaden.
> Beräkna värdet på Y. Om du betalar runt $4, måste det vara april! Infografik av [Jen Looper](https://twitter.com/jenlooper)
>
> Matematiken som beräknar linjen måste visa lutningen på linjen, vilket också beror på interceptet, eller var `Y` är placerad när `X = 0`.
>
> Du kan observera metoden för beräkning av dessa värden på [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) webbplatsen. Besök också [denna Least-squares kalkylator](https://www.mathsisfun.com/data/least-squares-calculator.html) för att se hur värdena påverkar linjen.
## Korrelation
Ett annat begrepp att förstå är **korrelationskoefficienten** mellan givna X- och Y-variabler. Med ett spridningsdiagram kan du snabbt visualisera denna koefficient. Ett diagram med datapunkter som är snyggt uppradade har hög korrelation, men ett diagram med datapunkter spridda överallt mellan X och Y har låg korrelation.
En bra linjär regressionsmodell är en som har en hög (närmare 1 än 0) korrelationskoefficient med hjälp av Least-Squares Regression-metoden med en regressionslinje.
✅ Kör notebooken som följer med denna lektion och titta på spridningsdiagrammet för månad till pris. Verkar datan som associerar månad till pris för pumpaförsäljning ha hög eller låg korrelation, enligt din visuella tolkning av spridningsdiagrammet? Förändras det om du använder en mer detaljerad mätning istället för `Månad`, t.ex. *dag på året* (dvs. antal dagar sedan årets början)?
I koden nedan antar vi att vi har rengjort datan och fått en dataram kallad `new_pumpkins`, liknande följande:
ID | Månad | DagPåÅret | Sort | Stad | Förpackning | Lägsta Pris | Högsta Pris | Pris
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 skäppakartonger | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 skäppakartonger | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 skäppakartonger | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 skäppakartonger | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 skäppakartonger | 15.0 | 15.0 | 13.636364
> Koden för att rengöra datan finns i [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Vi har utfört samma rengöringssteg som i föregående lektion och har beräknat kolumnen `DagPåÅret` med hjälp av följande uttryck:
>
> `X` är den 'förklarande variabeln'. `Y` är den 'beroende variabeln'. Linjens lutning är `b` och `a` är y-axelns intercept, vilket avser värdet på `Y` när `X = 0`.
>
>
>
> Först beräkna lutningen `b`. Informationsgrafik av [Jen Looper](https://twitter.com/jenlooper)
>
> Med andra ord, och med hänvisning till vår pumpadata ursprungliga fråga: "förutsäg priset på en pumpa per bushel efter månad", skulle `X` avse priset och `Y` avse försäljningsmånaden.
>
>
>
> Beräkna värdet på Y. Om du betalar runt 4 dollar måste det vara april! Informationsgrafik av [Jen Looper](https://twitter.com/jenlooper)
>
> Den matematik som beräknar linjen måste visa lutningen på linjen, som också beror på interceptet, eller var `Y` befinner sig när `X = 0`.
>
> Du kan observera beräkningsmetoden för dessa värden på [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) webbplats. Besök också [denna Minsta Kvadrat-kalkylator](https://www.mathsisfun.com/data/least-squares-calculator.html) för att se hur värdenas storlek påverkar linjen.
## Korrelationskoefficient
Ett till begrepp att förstå är **korrelationskoefficienten** mellan givna X- och Y-variabler. Med hjälp av ett spridningsdiagram kan du snabbt visualisera denna koefficient. Ett diagram med datapunkter utspridda i en prydlig linje har hög korrelation medan ett diagram med datapunkter utspridda överallt mellan X och Y har låg korrelation.
En bra linjär regressionsmodell är en som har hög (närmare 1 än 0) korrelationskoefficient med metoden Minsta Kvadrat Regression med regressionslinjen.
✅ Kör notebooken som hör till denna lektion och titta på spridningsdiagrammet Månad till Pris. Verkar datan som kopplar Månad till Pris för pumpaförsäljning ha hög eller låg korrelation enligt din visuella tolkning av spridningsdiagrammet? Ändras det om du använder en mer detaljerad mätning istället för `Month`, t.ex. *dag på året* (d.v.s. antal dagar sedan årets början)?
I koden nedan antar vi att vi har rengjort data och fått en dataframe kallad `new_pumpkins`, liknande följande:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
> Koden för att rengöra data finns tillgänglig i [`notebook.ipynb`](notebook.ipynb). Vi har utfört samma rengöringssteg som i föregående lektion och beräknat kolumnen `DayOfYear` med följande uttryck:
Nu när du har en förståelse för matematiken bakom linjär regression, låt oss skapa en regressionsmodell för att se om vi kan förutsäga vilken pumpkinförpackning som kommer att ha de bästa pumpapriserna. Någon som köper pumpor för en högtidlig pumpaplats kanske vill ha denna information för att kunna optimera sina inköp av pumpkinpaket för sin plats.
Nu när du har en förståelse för matematiken bakom linjär regression, låt oss skapa en regressionsmodell för att se om vi kan förutsäga vilken pumpaförpackning som kommer att ha de bästa pumpapriserna. Någon som köper pumpor för en högtidspumpaplats kanske vill ha denna information för att optimera sina inköp av pumpaförpackningar för platsen.
## Letar efter korrelation
## Söka efter korrelation
[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
[](https://youtu.be/uoRq-lW2eQo "ML för nybörjare - Söka efter korrelation: Nyckeln till linjär regression")
> 🎥 Klicka på bilden ovan för en kort videoöversikt över korrelation.
> 🎥 Klicka på bilden ovan för en kort videogenomgång av korrelation.
Från föregående lektion har du förmodligen sett att genomsnittspriset för olika månader ser ut så här:
Från föregående lektion har du förmodligen sett att det genomsnittliga priset för olika månader ser ut så här:
<imgalt="Average price by month"src="../../../../translated_images/sv/barchart.a833ea9194346d76.webp"width="50%"/>
<imgalt="Genomsnittligt pris per månad"src="../../../../translated_images/sv/barchart.a833ea9194346d76.webp"width="50%"/>
Detta antyder att det borde finnas någon korrelation, och vi kan försöka träna en linjär regressionsmodell för att förutsäga sambandet mellan `Month` och `Price`, eller mellan `DayOfYear` och `Price`. Här är spridningsdiagrammet som visar det senare förhållandet:
Detta antyder att det borde finnas någon korrelation, och vi kan försöka träna en linjär regressionsmodell för att förutsäga relationen mellan `Månad` och `Pris`, eller mellan `DagPåÅret` och `Pris`. Här är spridningsdiagrammet som visar den senare relationen:
<imgalt="Scatter plot of Price vs. Day of Year"src="../../../../translated_images/sv/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
<imgalt="Spridningsdiagram av Pris vs. Dag på året"src="../../../../translated_images/sv/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
Låt oss se om det finns en korrelation med hjälp av funktionen `corr`:
Låt oss se om det finns en korrelation med funktionen `corr`:
Det verkar som att korrelationen är ganska liten, -0.15 för `Månad` och -0.17 för `DagPåÅret`, men det kan finnas en annan viktig relation. Det verkar som att det finns olika kluster av priser som motsvarar olika pumpasorter. För att bekräfta denna hypotes, låt oss plotta varje pumpakategori med en annan färg. Genom att skicka en `ax`-parameter till spridningsplotfunktionen kan vi plotta alla punkter på samma diagram:
Det verkar som att korrelationen är ganska liten, -0,15 för `Month` och -0,17 för `DayOfYear`, men det kan finnas ett annat viktigt samband. Det ser ut som att det finns olika kluster av priser som motsvarar olika pumparter. För att bekräfta denna hypotes, låt oss plotta varje pumpkategori med en annan färg. Genom att skicka en `ax`-parameter till `scatter`-plotfunktionen kan vi rita alla punkter i samma diagram:
```python
ax=None
@ -127,75 +140,75 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<imgalt="Scatter plot of Price vs. Day of Year"src="../../../../translated_images/sv/scatter-dayofyear-color.65790faefbb9d54f.webp"width="50%"/>
<imgalt="Spridningsdiagram av Pris vs. Dag på året"src="../../../../translated_images/sv/scatter-dayofyear-color.65790faefbb9d54f.webp"width="50%"/>
Vår undersökning antyder att sorten har större effekt på det övergripande priset än det faktiska försäljningsdatumet. Vi kan se detta med ett stapeldiagram:
Vår undersökning tyder på att sorten har större effekt på priset än själva försäljningsdatumet. Vi kan se detta med ett stapeldiagram:
<imgalt="Spridningsdiagram av Pris vs. Dag på året" src="../../../../translated_images/sv/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
<imgalt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/sv/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
Om vi nu beräknar korrelationen mellan `Pris` och `DagPåÅret` med hjälp av funktionen `corr`, kommer vi att få något som `-0.27` - vilket betyder att det är meningsfullt att träna en prediktiv modell.
Om vi nu beräknar korrelationen mellan `Price` och `DayOfYear` med funktionen `corr`, får vi något runt `-0.27`– vilket betyder att det är vettigt att träna en prediktiv modell.
> Innan du tränar en linjär regressionsmodell är det viktigt att se till att vår data är ren. Linjär regression fungerar inte bra med saknade värden, så det är vettigt att ta bort alla tomma celler:
> Innan du tränar en linjär regressionsmodell är det viktigt att se till att vår data är ren. Linjär regression fungerar inte bra med saknade värden, så det är vettigt att bli av med alla tomma celler:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Ett annat tillvägagångssätt skulle vara att fylla dessa tomma värden med medelvärden från motsvarande kolumn.
Ett annat tillvägagångssätt är att fylla de tomma värdena med medelvärden från motsvarande kolumn.
## Enkel linjär regression
[](https://youtu.be/e4c_UP2fSjg "ML för nybörjare - Linjär och polynomisk regression med Scikit-learn")
[](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 Klicka på bilden ovan för en kort videogenomgång av linjär och polynomisk regression.
> 🎥 Klicka på bilden ovan för en kort videoöversikt över linjär och polynomisk regression.
För att träna vår linjära regressionsmodell kommer vi att använda biblioteket **Scikit-learn**.
För att träna vår linjära regressionsmodell kommer vi att använda **Scikit-learn**-biblioteket.
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Vi börjar med att separera indata (funktioner) och det förväntade resultatet (etikett) i separata numpy-arrayer:
Vi börjar med att separera indata (features) och förväntad utdata (label) i separata numpy-arrays:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Observera att vi var tvungna att göra en `reshape` på indatan för att Linear Regression-paketet ska förstå den korrekt. Linjär regression förväntar sig en 2D-array som indata, där varje rad i arrayen motsvarar en vektor av indatafunktioner. I vårt fall, eftersom vi bara har en indata, behöver vi en array med formen N×1, där N är datasetets storlek.
> Observera att vi var tvungna att utföra `reshape` på indata för att linjär regressionspaketet skulle förstå det korrekt. Linjär regression förväntar sig en 2D-array som indata, där varje rad i arrayen motsvarar en vektor av indatafunktioner. I vårt fall, eftersom vi bara har en indata - behöver vi en array med formen N×1, där N är datamängdens storlek.
Sedan behöver vi dela upp datan i tränings- och testdatamängder, så att vi kan validera vår modell efter träning:
Sedan måste vi dela datan i tränings- och testdatauppsättningar så att vi kan validera vår modell efter träning:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Slutligen tar det bara två rader kod att träna den faktiska linjära regressionsmodellen. Vi definierar `LinearRegression`-objektet och anpassar det till vår data med hjälp av metoden `fit`:
Slutligen tar det bara två kodrader att träna den faktiska linjära regressionsmodellen. Vi definierar `LinearRegression`-objektet och anpassar det till vår data med metoden `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression`-objektet efter att ha anpassats innehåller alla koefficienter för regressionen, som kan nås med egenskapen `.coef_`. I vårt fall finns det bara en koefficient, som bör vara runt `-0.017`. Det betyder att priser verkar sjunka lite med tiden, men inte mycket, runt 2 cent per dag. Vi kan också nå skärningspunkten för regressionen med Y-axeln med `lin_reg.intercept_` - det kommer att vara runt `21` i vårt fall, vilket indikerar priset i början av året.
`LinearRegression`-objektet efter att ha anpassats innehåller alla regressionskoefficienter, vilka kan nås via `.coef_`-egenskapen. I vårt fall finns det bara en koefficient, som bör vara runt `-0.017`. Det betyder att priserna verkar sjunka lite med tiden, men inte så mycket, ungefär 2 cent per dag. Vi kan också nå skärningspunkten för regressionen med Y-axeln genom `lin_reg.intercept_` - den kommer i vårt fall vara runt `21`, vilket indikerar priset i början av året.
För att se hur exakt vår modell är kan vi förutsäga priser på en testdatamängd och sedan mäta hur nära våra förutsägelser är de förväntade värdena. Detta kan göras med hjälp av metrik för medelkvadratfel (MSE), vilket är medelvärdet av alla kvadrerade skillnader mellan förväntat och förutspått värde.
För att se hur korrekt vår modell är kan vi förutsäga priser på en testdatamängd och sedan mäta hur nära våra förutsägelser är de förväntade värdena. Detta kan göras med hjälp av medelkvadratfel (MSE), vilket är medelvärdet av alla kvadrerade skillnader mellan förväntat och förutsagt värde.
```python
pred = lin_reg.predict(X_test)
@ -203,36 +216,37 @@ pred = lin_reg.predict(X_test)
Vårt fel verkar ligga runt 2 punkter, vilket är ~17 %. Inte så bra. En annan indikator på modellkvalitet är **determinationskoefficienten**, som kan erhållas så här:
Vårt fel verkar vara runt 2 poäng, vilket är ~17%. Inte så bra. En annan indikator på modellens kvalitet är **bestämningskoefficienten**, som kan erhållas så här:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Om värdet är 0 betyder det att modellen inte tar hänsyn till indata och fungerar som den *sämsta linjära prediktorn*, vilket helt enkelt är medelvärdet av resultatet. Värdet 1 betyder att vi kan förutsäga alla förväntade utdata perfekt. I vårt fall är koefficienten runt 0,06, vilket är ganska lågt.
Om värdet är 0 betyder det att modellen inte tar inputdata i beaktande, och agerar som den *sämsta linjära prediktorn*, vilket helt enkelt är medelvärdet av resultatet. Värdet 1 innebär att vi perfekt kan förutsäga alla förväntade utgångar. I vårt fall är koefficienten runt 0,06, vilket är ganska lågt.
Vi kan också plotta testdata tillsammans med regressionslinjen för att bättre se hur regression fungerar i vårt fall:
Vi kan också plotta testdata tillsammans med regressionslinjen för att bättre se hur regressionen fungerar i vårt fall:
En annan typ av linjär regression är polynomregression. Även om det ibland finns ett linjärt samband mellan variabler - ju större pumpan är i volym, desto högre pris - kan dessa samband ibland inte plottas som ett plan eller en rak linje.
En annan typ av linjär regression är polynomregression. Medan det ibland finns ett linjärt samband mellan variabler – ju större pumpan i volym, desto högre pris – kan dessa samband ibland inte plottas som ett plan eller rakt linje.
✅ Här är [några fler exempel](https://online.stat.psu.edu/stat501/lesson/9/9.8) på data som kan använda polynomregression.
✅ Här är [fler exempel](https://online.stat.psu.edu/stat501/lesson/9/9.8) på data som kan använda polynomregression
Titta en gång till på sambandet mellan datum och pris. Ser detta spridningsdiagram ut som om det nödvändigtvis borde analyseras med en rak linje? Kan inte priser fluktuera? I detta fall kan du prova polynomregression.
Titta igen på sambandet mellan Datum och Pris. Verkar detta spridningsdiagram som något som nödvändigtvis bör analyseras med en rät linje? Kan inte priserna fluktuera? I det här fallet kan du prova polynomregression.
✅ Polynom är matematiska uttryck som kan bestå av en eller flera variabler och koefficienter.
✅ Polynom är matematiska uttryck som kan bestå av en eller flera variabler och koefficienter
Polynomregression skapar en kurvad linje för att bättre passa icke-linjär data. I vårt fall, om vi inkluderar en kvadrerad`DayOfYear`-variabel i indata, bör vi kunna passa vår data med en parabolisk kurva, som kommer att ha ett minimum vid en viss punkt under året.
Polynomregression skapar en kurvad linje för att bättre passa icke-linjära data. I vårt fall, om vi inkluderar en kvadratisk`DayOfYear`-variabel i indata, bör vi kunna anpassa våra data med en parabolisk kurva, som kommer att ha ett minimum vid en viss punkt under året.
Scikit-learn inkluderar ett användbart [pipeline-API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) för att kombinera olika steg i databehandlingen. En **pipeline** är en kedja av **estimators**. I vårt fall kommer vi att skapa en pipeline som först lägger till polynomfunktioner till vår modell och sedan tränar regressionen:
Scikit-learn innehåller ett användbart [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) för att kombinera olika steg i databehandlingen. En **pipeline** är en kedja av **estimators**. I vårt fall skapar vi en pipeline som först lägger till polynomfunktioner till vår modell och sedan tränar regressionen:
```python
from sklearn.preprocessing import PolynomialFeatures
Att använda `PolynomialFeatures(2)`betyder att vi kommer att inkludera alla andragradspolynom från indata. I vårt fall innebär det bara `DayOfYear`<sup>2</sup>, men med två indata X och Y kommer detta att lägga till X<sup>2</sup>, XY och Y<sup>2</sup>. Vi kan också använda polynom av högre grad om vi vill.
Att använda `PolynomialFeatures(2)`innebär att vi kommer att inkludera alla andragradspolynom från inputdata. I vårt fall betyder det bara `DayOfYear`<sup>2</sup>, men med två inputvariabler X och Y skulle detta lägga till X<sup>2</sup>, XY och Y<sup>2</sup>. Vi kan också använda högre gradens polynom om vi vill.
Pipelines kan användas på samma sätt som det ursprungliga `LinearRegression`-objektet, dvs. vi kan `fit`-a pipelinen och sedan använda `predict` för att få prediktionsresultaten. Här är grafen som visar testdata och approximationskurvan:
Pipelines kan användas på samma sätt som det ursprungliga `LinearRegression`-objektet, dvs vi kan `fit` pipelinen, och sedan använda `predict` för att få förutsägelser. Här är grafen som visar testdata och approximationskurvan:
Med polynomregression kan vi få något lägre MSE och högre determination, men inte signifikant. Vi behöver ta hänsyn till andra funktioner!
Med polynomregression kan vi få något lägre MSE och högre bestämning, men inte signifikant. Vi behöver ta hänsyn till andra egenskaper!
> Du kan se att de lägsta pumpapriserna observeras någonstans runt Halloween. Hur kan du förklara detta?
> Du kan se att de lägsta pumpapriserna observeras runt Halloween. Hur kan du förklara detta?
🎃 Grattis, du har just skapat en modell som kan hjälpa till att förutsäga priset på pajpumpor. Du kan förmodligen upprepa samma procedur för alla pumpatyper, men det skulle vara tidskrävande. Låt oss nu lära oss hur man tar pumpasort i beaktande i vår modell!
🎃 Grattis, du skapade precis en modell som kan hjälpa till att förutsäga priset på pajpumpor. Du kan förmodligen upprepa samma procedur för alla pumpatyper, men det vore tråkigt. Låt oss nu lära oss hur vi tar pumpasort i beaktning i vår modell!
## Kategoriska funktioner
## Kategoriska egenskaper
I den ideala världen vill vi kunna förutsäga priser för olika pumpasorter med samma modell. Kolumnen `Variety` är dock något annorlunda än kolumner som `Month`, eftersom den innehåller icke-numeriska värden. Sådana kolumner kallas **kategoriska**.
I en perfekt värld vill vi kunna förutsäga priser för olika pumpasorter med samma modell. Dock skiljer sig kolumnen `Variety` något från kolumner som `Month`, eftersom den innehåller icke-numeriska värden. Sådana kolumner kallas **kategoriska**.
[](https://youtu.be/DYGliioIAE0 "ML för nybörjare - Kategoriska funktioner med linjär regression")
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 Klicka på bilden ovan för en kort videoöversikt om att använda kategoriska funktioner.
> 🎥 Klicka på bilden ovan för en kort videoöversikt om användning av kategoriska egenskaper.
Här kan du se hur medelpriset beror på sort:
<imgalt="Medelpris per sort" src="../../../../translated_images/sv/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
<imgalt="Average price by variety" src="../../../../translated_images/sv/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
För att ta sort i beaktande måste vi först konvertera den till numerisk form, eller **koda** den. Det finns flera sätt att göra detta:
För att ta sort i beaktning måste vi först konvertera den till ett numeriskt format, eller **koda** den. Det finns flera sätt att göra det:
* Enkel **numerisk kodning**bygger en tabell över olika sorter och ersätter sedan sortnamnet med ett index i den tabellen. Detta är inte den bästa idén för linjär regression, eftersom linjär regression tar det faktiska numeriska värdet av indexet och lägger till det i resultatet, multiplicerat med någon koefficient. I vårt fall är sambandet mellan indexnummer och pris klart icke-linjärt, även om vi ser till att indexen är ordnade på något specifikt sätt.
* **One-hot-kodning** ersätter kolumnen `Variety` med 4 olika kolumner, en för varje sort. Varje kolumn innehåller `1` om den motsvarande raden är av en given sort och `0` annars. Detta innebär att det kommer att finnas fyra koefficienter i linjär regression, en för varje pumpasort, som ansvarar för "startpris" (eller snarare "tilläggspris") för den specifika sorten.
* Enkel **numerisk kodning**skapar en tabell med olika sorter och ersätter sedan sortnamnet med ett index i den tabellen. Detta är inte bästa idé för linjär regression, eftersom linjär regression tar det faktiska numeriska värdet på indexet och adderar det till resultatet, multiplicerat med någon koefficient. I vårt fall är sambandet mellan indexnummer och pris uppenbart icke-linjärt, även om vi ser till att indexen ordnas på något specifikt sätt.
* **One-hot-encoding** ersätter `Variety`-kolumnen med 4 olika kolumner, en för varje sort. Varje kolumn innehåller `1` om motsvarande rad är av en viss sort, och `0` annars. Det innebär att det kommer att finnas fyra koefficienter i linjär regression, en för varje pumpsort, ansvarig för "startpris" (eller snarare "tilläggspris") för just den sorten.
Koden nedan visar hur vi kan one-hot-koda en sort:
För att träna linjär regression med one-hot-kodad sort som indata behöver vi bara initiera `X` och `y`-data korrekt:
För att träna linjär regression med one-hot-kodad sort som input behöver vi bara initiera `X` och `y`data korrekt:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
Resten av koden är densamma som den vi använde ovan för att träna linjär regression. Om du provar det kommer du att se att medelkvadratfelet är ungefär detsamma, men vi får mycket högre determinationskoefficient (~77 %). För att få ännu mer exakta förutsägelser kan vi ta fler kategoriska funktioner i beaktande, samt numeriska funktioner, såsom `Month` eller `DayOfYear`. För att få en stor array av funktioner kan vi använda `join`:
Resten av koden är densamma som vi använde ovan för att träna linjär regression. Om du provar detta kommer du se att medelkvadratfelet blir ungefär detsamma, men vi får en mycket högre bestämningskoefficient (~77%). För att få ännu mer exakta förutsägelser kan vi ta hänsyn till fler kategoriska egenskaper, samt numeriska egenskaper som `Month` eller `DayOfYear`. För att få en stor array med egenskaper kan vi använda `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -306,31 +320,31 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Här tar vi också hänsyn till `City` och `Package`-typ, vilket ger oss MSE 2,84 (10 %) och determination 0,94!
Här tar vi också hänsyn till `City` och `Package`-typ, vilket ger oss MSE 2.84 (10%) och bestämning 0.94!
## Sätta ihop allt
## Att sätta ihop allt
För att skapa den bästa modellen kan vi använda kombinerad (one-hot-kodad kategorisk + numerisk) data från exemplet ovan tillsammans med polynomregression. Här är den kompletta koden för din bekvämlighet:
För att göra den bästa modellen kan vi använda kombinerade (one-hot-kodade kategoriska + numeriska) data från föregående exempel tillsammans med polynomregression. Här är den kompletta koden för din bekvämlighet:
```python
# set up training data
# skapa träningsdata
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# gör fördelning av tränings- och testdata
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
🏆 Bra jobbat! Du skapade fyra regressionsmodeller i en lektion och förbättrade modellkvaliteten till 97 %. I det sista avsnittet om regression kommer du att lära dig om logistisk regression för att bestämma kategorier.
🏆 Bra jobbat! Du skapade fyra regressionsmodeller på en lektion och förbättrade modellens kvalitet till 97%. I det sista avsnittet om regression får du lära dig om logistisk regression för att bestämma kategorier.
---
## 🚀Utmaning
Testa flera olika variabler i denna notebook för att se hur korrelationen motsvarar modellens noggrannhet.
Testa flera olika variabler i den här anteckningsboken för att se hur korrelationen motsvarar modellens noggrannhet.
## [Quiz efter föreläsningen](https://ff-quizzes.netlify.app/en/ml/)
## [Quiz efter föreläsning](https://ff-quizzes.netlify.app/en/ml/)
## Granskning & Självstudier
## Genomgång & Självstudier
I denna lektion lärde vi oss om linjär regression. Det finns andra viktiga typer av regression. Läs om Stepwise, Ridge, Lasso och Elasticnet-tekniker. En bra kurs att studera för att lära sig mer är [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
I den här lektionen lärde vi oss om linjär regression. Det finns andra viktiga typer av regression. Läs om Stepwise, Ridge, Lasso och Elasticnet-tekniker. En bra kurs att studera för att lära sig mer är [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Uppgift
@ -367,5 +381,7 @@ I denna lektion lärde vi oss om linjär regression. Det finns andra viktiga typ
---
**Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, bör det noteras att automatiserade översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess ursprungliga språk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Trots att vi strävar efter noggrannhet, bör du vara medveten om att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål ska betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår från användningen av denna översättning.
I den här andra lektionen om klassificering kommer du att utforska fler sätt att klassificera numerisk data. Du kommer också att lära dig om konsekvenserna av att välja en klassificerare framför en annan.
I denna andra klassificeringslektion kommer du att utforska fler sätt att klassificera numeriska data. Du kommer också att lära dig om konsekvenserna av att välja en klassificerare över en annan.
Vi antar att du har slutfört de tidigare lektionerna och har en städad dataset i din `data`-mapp som heter _cleaned_cuisines.csv_ i roten av denna 4-lektionsmapp.
Vi antar att du har slutfört de tidigare lektionerna och har en rensad dataset i din `data`-mapp som heter _cleaned_cuisines.csv_ i roten av denna 4-lektionsmapp.
### Förberedelse
Vi har laddat din _notebook.ipynb_-fil med den städade datasetet och har delat upp den i X- och y-dataframes, redo för modellbyggnadsprocessen.
Vi har laddat din _notebook.ipynb_-fil med den rensade datasetet och har delat upp den i X- och y-dataframes, redo för modellbyggnadsprocessen.
## En klassificeringskarta
Tidigare lärde du dig om de olika alternativen du har när du klassificerar data med hjälp av Microsofts fusklapp. Scikit-learn erbjuder en liknande, men mer detaljerad fusklapp som kan hjälpa dig att ytterligare begränsa dina estimatorer (en annan term för klassificerare):
Tidigare lärde du dig om de olika alternativen du har när du klassificerar data med hjälp av Microsofts fusklapp. Scikit-learn erbjuder en liknande, men mer detaljerad fusklapp som kan hjälpa dig att ytterligare begränsa dina estimatorer (ett annat ord för klassificerare):

> Tips: [besök denna karta online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) och klicka längs vägen för att läsa dokumentationen.

> Tips: [besök denna karta online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) och klicka längs vägen för att läsa dokumentation.
### Planen
Den här kartan är mycket användbar när du har en tydlig förståelse för din data, eftersom du kan "vandra" längs dess vägar till ett beslut:
Denna karta är mycket hjälpsam när du har en klar förståelse för dina data, då du kan 'gå' längs dess vägar till ett beslut:
- Vi har >50 prover
- Vi vill förutsäga en kategori
- Vi har märkt data
- Vi har märkta data
- Vi har färre än 100K prover
- ✨ Vi kan välja en Linear SVC
- Om det inte fungerar, eftersom vi har numerisk data
- Om det inte fungerar, eftersom vi har numeriska data
- Kan vi prova en ✨ KNeighbors Classifier
- Om det inte fungerar, prova ✨ SVC och ✨ Ensemble Classifiers
Detta är en mycket användbar väg att följa.
Detta är en mycket hjälpsam väg att följa.
## Övning - dela upp datan
Följande denna väg bör vi börja med att importera några bibliotek att använda.
Följande väg bör vi börja med att importera några bibliotek att använda.
1. Importera de nödvändiga biblioteken:
@ -53,22 +53,22 @@ Följande denna väg bör vi börja med att importera några bibliotek att anvä
Support-Vector Clustering (SVC) är en del av Support-Vector Machines-familjen av ML-tekniker (lär dig mer om dessa nedan). I denna metod kan du välja en 'kernel' för att bestämma hur etiketterna ska klustras. Parametern 'C' hänvisar till 'regularisering' som reglerar påverkan av parametrar. Kerneln kan vara en av [flera](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); här ställer vi in den på 'linear' för att säkerställa att vi använder Linear SVC. Sannolikhet är som standard inställd på 'false'; här ställer vi in den på 'true' för att samla sannolikhetsuppskattningar. Vi ställer in random state på '0' för att blanda datan och få sannolikheter.
Support-Vector clustering (SVC) är ett barn till Support-Vector machines-familjen av ML-tekniker (läs mer om dessa nedan). I denna metod kan du välja en 'kernel' för att bestämma hur etiketterna ska grupperas. Parametern 'C' avser 'reguljärisering' som reglerar parametrarnas inflytande. Kerneln kan vara en av [flera](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); här sätter vi den till 'linear' för att säkerställa att vi utnyttjar linear SVC. Probability är standard satt till 'false'; här sätter vi den till 'true' för att samla sannolikhetsuppskattningar. Vi sätter random state till '0' för att slumpa om datan för att få sannolikheter.
### Övning - tillämpa en Linear SVC
### Övning - applicera en linear SVC
Börja med att skapa en array av klassificerare. Du kommer att lägga till successivt i denna array när vi testar.
Börja med att skapa en array med klassificerare. Du kommer att lägga till successivt till denna array när vi testar.
@ -109,11 +109,11 @@ Börja med att skapa en array av klassificerare. Du kommer att lägga till succe
K-Neighbors är en del av "neighbors"-familjen av ML-metoder, som kan användas för både övervakad och oövervakad inlärning. I denna metod skapas ett fördefinierat antal punkter och data samlas runt dessa punkter så att generaliserade etiketter kan förutsägas för datan.
Den tidigare klassificeraren var bra och fungerade väl med datan, men kanske kan vi få bättre noggrannhet. Prova en K-Neighbors-klassificerare.
1. Lägg till en rad i din klassificerar-array (lägg till ett kommatecken efter Linear SVC-posten):
1. Lägg till en rad i din klassificerar-array (lägg till ett kommatecken efter Linear SVC-elementet):
```python
'KNN classifier': KNeighborsClassifier(C),
@ -136,23 +136,23 @@ Den tidigare klassificeraren var bra och fungerade väl med datan, men kanske ka
weighted avg 0.76 0.74 0.74 1199
```
✅ Läs mer om [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
✅ Läs om [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Support Vector Classifier
Support-Vector-klassificerare är en del av [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine)-familjen av ML-metoder som används för klassificerings- och regressionsuppgifter. SVMs "kartlägger träningsprover till punkter i rymden" för att maximera avståndet mellan två kategorier. Efterföljande data kartläggs in i detta utrymme så att deras kategori kan förutsägas.
Support-Vector-klassificerare är en del av [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine)-familjen av ML-metoder som används för klassificerings- och regressionsuppgifter. SVM "kartlägger träningsdata till punkter i rymden" för att maximera avståndet mellan två kategorier. Efterföljande data kartläggs in i denna rymd så att deras kategori kan förutsägas.
### Övning - tillämpa en Support Vector Classifier
### Övning - applicera en Support Vector Classifier
Låt oss försöka få lite bättre noggrannhet med en Support Vector Classifier.
1. Lägg till ett kommatecken efter K-Neighbors-posten och lägg sedan till denna rad:
1. Lägg till ett kommatecken efter K-Neighbors-elementet, och sedan lägg till denna rad:
```python
'SVC': SVC(),
```
Resultatet är riktigt bra!
Resultatet är ganska bra!
```output
Accuracy (train) for SVC: 83.2%
@ -169,11 +169,11 @@ Låt oss försöka få lite bättre noggrannhet med en Support Vector Classifier
weighted avg 0.84 0.83 0.83 1199
```
✅ Läs mer om [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ Läs om [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Ensemble-klassificerare
Låt oss följa vägen till slutet, även om det föregående testet var riktigt bra. Låt oss prova några 'Ensemble Classifiers', specifikt Random Forest och AdaBoost:
Låt oss följa vägen hela vägen till slutet, även om det tidigare testet var ganska bra. Låt oss prova några 'Ensemble Classifiers', specifikt Random Forest och AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
@ -210,11 +210,11 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ Läs mer om [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
✅ Läs om [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
Denna metod för maskininlärning "kombinerar förutsägelser från flera basestimatorer" för att förbättra modellens kvalitet. I vårt exempel använde vi Random Trees och AdaBoost.
Denna metod inom Maskininlärning "kombinerar förutsägelser från flera basestimatorer" för att förbättra modellens kvalitet. I vårt exempel använde vi Random Trees och AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), en genomsnittsmetod, bygger en 'skog' av 'beslutsträd' med inslag av slumpmässighet för att undvika överanpassning. Parametern n_estimators är inställd på antalet träd.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), en genomsnittlig metod, bygger en 'skog' av 'besluts-träd' infunderade med slumpmässighet för att undvika överanpassning. Parametern n_estimators är satt till antalet träd.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) anpassar en klassificerare till en dataset och anpassar sedan kopior av den klassificeraren till samma dataset. Den fokuserar på vikterna av felklassificerade objekt och justerar anpassningen för nästa klassificerare för att korrigera.
@ -224,11 +224,11 @@ Denna metod för maskininlärning "kombinerar förutsägelser från flera basest
Var och en av dessa tekniker har ett stort antal parametrar som du kan justera. Undersök standardparametrarna för var och en och fundera på vad justering av dessa parametrar skulle innebära för modellens kvalitet.
Det finns mycket fackspråk i dessa lektioner, så ta en minut att granska [denna lista](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) med användbar terminologi!
Det finns mycket fackspråk i dessa lektioner, så ta en minut att gå igenom [denna lista](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) med användbar terminologi!
## Uppgift
@ -236,5 +236,7 @@ Det finns mycket fackspråk i dessa lektioner, så ta en minut att granska [denn
---
**Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, bör det noteras att automatiserade översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen var medveten om att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår från användningen av denna översättning.
"\n---\n\n**Ansvarsfriskrivning**:\nDetta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen notera att automatiska översättningar kan innehålla fel eller felaktigheter. Det ursprungliga dokumentet på dess originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfriskrivning**:\nDetta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För viktig information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"\n---\n\n**Ansvarsfriskrivning**: \nDetta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen notera att automatiska översättningar kan innehålla fel eller felaktigheter. Det ursprungliga dokumentet på sitt originalspråk bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Friskrivning**:\nDetta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, var vänlig observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår från användningen av denna översättning.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
> Detta arkiv inkluderar över 50 språköversättningar vilket ökar nedladdningsstorleken avsevärt. För att klona utan översättningar, använd sparse checkout:
>
> Detta arkiv inkluderar över 50 språköversättningar vilket avsevärt ökar nedladdningsstorleken. För att klona utan översättningar, använd sparsamt utsnitt:
Vi har en pågående Discord-serie för lärande med AI, lär dig mer och gå med oss på [Learn with AI Series](https://aka.ms/learnwithai/discord) från 18 - 30 september 2025. Du får tips och tricks för att använda GitHub Copilot för Data Science.
Vi har en pågående Discord-serie om lärande med AI, lär dig mer och gå med oss på [Learn with AI Series](https://aka.ms/learnwithai/discord) från 18 - 30 september 2025. Du får tips och tricks för att använda GitHub Copilot för Data Science.

# Maskininlärning för nybörjare - Ett läroplan
# Maskininlärning för nybörjare - En kursplan
> 🌍 Res runt i världen medan vi utforskar Maskininlärning genom världskulturer 🌍
> 🌍 Res runt i världen när vi utforskar Maskininlärning genom världenskulturer 🌍
Cloud Advocates på Microsoft är glada att kunna erbjuda en 12-veckors, 26-lektioners läroplan helt om **Maskininlärning**. I denna läroplan kommer du att lära dig om det som ibland kallas **klassisk maskininlärning**, som främst använder Scikit-learn som bibliotek och undviker djupinlärning, vilket täcks i vår [AI för nybörjare-läroplan](https://aka.ms/ai4beginners). Kombinera gärna dessa lektioner med vår ['Data Science för nybörjare-läroplan'](https://aka.ms/ds4beginners).
Cloud Advocates på Microsoft är glada att erbjuda en 12-veckors, 26-lektioners kursplan helt om **Maskininlärning**. I denna kursplan lär du dig om det som ibland kallas för **klassisk maskininlärning**, med huvudsakligen Scikit-learn som bibliotek och undviker djupinlärning, som behandlas i vår [AI för nybörjare-kursplan](https://aka.ms/ai4beginners). Kombinera dessa lektioner med vår ['Data Science för nybörjare-kursplan'](https://aka.ms/ds4beginners) också!
Res med oss runt jorden när vi tillämpar dessa klassiska tekniker på data från många delar av världen. Varje lektion inkluderar för- och efterquizzer, skriftliga instruktioner för att slutföra lektionen, en lösning, en uppgift och mer. Vår projektbaserade pedagogik låter dig lära samtidigt som du bygger, ett beprövat sätt för nya kunskaper att "fästa".
Res med oss runt jorden när vi applicerar dessa klassiska tekniker på data från många delar av världen. Varje lektion innehåller quiz före och efter lektionen, skriftliga instruktioner för att slutföra lektionen, en lösning, en uppgift och mer. Vår projektbaserade pedagogik låter dig lära genom att bygga, ett beprövat sätt för nya kunskaper att 'sätta sig'.
**✍️ Stort tack till våra författare** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu och Amy Boyd
**🎨 Tack även till våra illustratörer** Tomomi Imura, Dasani Madipalli och Jen Looper
**🙏 Speciellt tack 🙏 till våra Microsoft Student Ambassador-författare, granskare och innehållsbidragsgivare**, särskilt Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila och Snigdha Agarwal
**🙏 Stort tack 🙏 till våra Microsoft Student Ambassador-författare, granskare och innehållsbidragare**, särskilt Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila och Snigdha Agarwal
**🤩 Extra tacksamhet till Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi och Vidushi Gupta för våra R-lektioner!**
**🤩 Extra stor tacksamhet till Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi och Vidushi Gupta för våra R-lektioner!**
# Komma igång
Följ dessa steg:
1. **Gaffla (Fork) arkivet**: Klicka på "Fork"-knappen längst upp till höger på denna sida.
1. **Fork:a arkivet**: Klicka på "Fork" knappen längst upp till höger på sidan.
> [hitta alla ytterligare resurser för denna kurs i vår Microsoft Learn-samling](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Behöver du hjälp?** Kolla vår [Felsökningsguide](TROUBLESHOOTING.md) för lösningar på vanliga problem med installation, uppsättning och körning av lektioner.
> 🔧 **Behöver du hjälp?** Kolla vår [felsökningsguide](TROUBLESHOOTING.md) för lösningar på vanliga problem med installation, uppsättning och att köra lektioner.
**[Studenter](https://aka.ms/student-page)**, för att använda denna läroplan, gaffla hela repot till ditt eget GitHub-konto och slutför övningarna själv eller i grupp:
**[Studenter](https://aka.ms/student-page)**, för att använda denna kursplan, fork:a hela repositoryt till ditt eget GitHub-konto och gör övningarna själv eller i grupp:
- Börja med ett för-foreläsningsquiz.
- Läs lektionen och slutför aktiviteterna, pausa och reflektera vid varje kunskapskontroll.
- Försök att skapa projekten genom att förstå lektionerna snarare än att köra lösningskoden; dock finns denna kod tillgänglig i `/solution`-mapparna i varje projektorienterad lektion.
- Gör efter-foreläsningsquizet.
- Slutför utmaningen.
- Slutför uppgiften.
- Efter att ha slutfört en lektionsgrupp, besök [Diskussionsforumet](https://github.com/microsoft/ML-For-Beginners/discussions) och "lär ut högt" genom att fylla i lämplig PAT-rubrik. En 'PAT' är ett Fortschrittsbedömningsverktyg som är en rubrik du fyller i för att fördjupa ditt lärande. Du kan också reagera på andra PATs så att vi kan lära tillsammans.
- Börja med ett quiz före lektionen.
- Läs lektionen och genomför aktiviteterna, pausa och reflektera vid varje kunskapskontroll.
- Försök att skapa projekten genom att förstå lektionerna istället för att bara köra lösningskoden; dock finns den koden tillgänglig i `/solution`-mapparna i varje projektorienterad lektion.
- Gör quizet efter lektionen.
- Genomför utmaningen.
- Gör uppgiften.
- Efter att ha slutfört en lektionsgrupp, besök [Diskussionsforumet](https://github.com/microsoft/ML-For-Beginners/discussions) och "lär ut högt" genom att fylla i lämplig PAT-rubrik. En 'PAT' är ett verktyg för framstegsutvärdering som du fyller i för att främja ditt lärande. Du kan även reagera på andra PAT:ar så att vi kan lära tillsammans.
> För vidare studier rekommenderar vi att du följer dessa [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduler och lärandespår.
> För vidare studier rekommenderar vi att följa dessa [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduler och lärvägar.
**Lärare**, vi har [inkluderat några förslag](for-teachers.md) på hur du kan använda denna läroplan.
**Lärare**, vi har [inkluderat några förslag](for-teachers.md) på hur du kan använda denna kursplan.
---
## Videogenomgångar
Några av lektionerna finns som korta videor. Du kan hitta alla dessa direkt i lektionerna, eller på [ML for Beginners-spellistan på Microsoft Developers YouTube-kanal](https://aka.ms/ml-beginners-videos) genom att klicka på bilden nedan.
Vissa lektioner finns som korta videoklipp. Du hittar alla dessa i lektionerna eller på [ML for Beginners spellistan på Microsoft Developer YouTube-kanal](https://aka.ms/ml-beginners-videos) genom att klicka på bilden nedan.
[](https://aka.ms/ml-beginners-videos)
@ -91,77 +101,77 @@ Några av lektionerna finns som korta videor. Du kan hitta alla dessa direkt i l
> 🎥 Klicka på bilden ovan för en video om projektet och personerna som skapade det!
> 🎥 Klicka på bilden ovan för en video om projektet och människorna som skapade det!
---
## Pedagogik
Vi har valt två pedagogiska principer när vi byggde denna läroplan: att säkerställa att den är praktiskt **projektbaserad** och att den innehåller **frestande quizzer**. Dessutom har denna läroplan ett gemensamt **tema** för sammanhållning.
Vi har valt två pedagogiska principer när vi byggde denna kursplan: att den ska vara praktiskt **projektbaserad** och att den inkluderar **frestande quiz**. Dessutom har denna kursplan ett gemensamt **tema** för att skapa sammanhållning.
Genom att säkerställa att innehållet är kopplat till projekt blir processen mer engagerande för studenter och konceptens retention förstärks. Dessutom sätter ett lågrisk-quiz före lektionen studentens intention mot att lära sig ett ämne, medan ett andra quiz efter lektionen säkerställer ytterligare retention. Denna läroplan är designad för att vara flexibel och rolig och kan tas i sin helhet eller delvis. Projekten börjar små och blir allt mer komplexa mot slutet av 12-veckorscykeln. Läroplanen innehåller även en epilog om verkliga användningsområden av ML, som kan användas som extrakredit eller som bas för diskussion.
Genom att säkerställa att innehållet är kopplat till projekt blir processen mer engagerande för eleverna och konceptens kvarhållning ökas. Dessutom sätter ett lågstress quiz före klassen elevens intention att lära sig ett ämne, medan ett andra quiz efter klassen förbättrar retentionen ytterligare. Denna kursplan är utformad för att vara flexibel och rolig och kan genomföras helt eller delvis. Projekten börjar små och blir alltmer komplexa fram till slutet av 12-veckorscykeln. Denna kursplan inkluderar också en epilog om verkliga tillämpningar av ML, som kan användas som extrauppgifter eller som underlag för diskussion.
> Hitta våra [Uppförandekoder](CODE_OF_CONDUCT.md), [Bidragande](CONTRIBUTING.md), [Översättning](TRANSLATIONS.md) och [Felsökning](TROUBLESHOOTING.md) riktlinjer. Vi välkomnar din konstruktiva feedback!
> Läs våra [uppförandekoder](CODE_OF_CONDUCT.md), [bidragsregler](CONTRIBUTING.md), [översättningsriktlinjer](TRANSLATIONS.md) och [felsökning](TROUBLESHOOTING.md). Vi välkomnar dina konstruktiva återkopplingar!
> **En notis om språk**: Dessa lektioner är huvudsakligen skrivna i Python, men många finns också tillgängliga i R. För att genomföra en R-lektion, gå till `/solution`-mappen och leta efter R-lektioner. De inkluderar en .rmd-filändelse som representerar en **R Markdown**-fil vilket enkelt kan definieras som en inbäddning av `kodblock` (av R eller andra språk) och en `YAML-header` (som styr hur utdataformat som PDF ska formateras) i ett `Markdown-dokument`. Som sådan fungerar det som en exemplarisk ramverk för författarskap inom data science eftersom det låter dig kombinera din kod, dess utdata och dina tankar genom att låta dig skriva ner dem i Markdown. Dessutom kan R Markdown-dokument renderas till utdataformat som PDF, HTML eller Word.
> **En notis om frågesporter**: Alla frågesporter finns i [Quiz App-mappen](../../quiz-app), totalt 52 frågesporter med tre frågor vardera. De är länkade från lektionerna men quiz-appen kan köras lokalt; följ instruktionerna i `quiz-app`-mappen för att köra lokalt eller distribuera till Azure.
| Lektion Nummer | Ämne | Lektion Grupp | Lärandemål | Länkad Lektion | Författare |
| 01 | Introduktion till maskininlärning | [Introduktion](1-Introduction/README.md) | Lär dig grundläggande koncept bakom maskininlärning | [Lektion](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Maskininlärningens historia | [Introduktion](1-Introduction/README.md) | Lär dig historien bakom detta område | [Lektion](1-Introduction/2-history-of-ML/README.md) | Jen och Amy |
| 03 | Rättvisa och maskininlärning | [Introduktion](1-Introduction/README.md) | Vilka är de viktiga filosofiska frågorna kring rättvisa som studenter bör överväga när de bygger och applicerar ML-modeller? | [Lektion](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Tekniker för maskininlärning | [Introduktion](1-Introduction/README.md) | Vilka tekniker använder ML-forskare för att bygga ML-modeller? | [Lektion](1-Introduction/4-techniques-of-ML/README.md) | Chris och Jen |
| 05 | Introduktion till regression | [Regression](2-Regression/README.md) | Kom igång med Python och Scikit-learn för regressionsmodeller | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html)| Jen • Eric Wanjau |
| 06 | Pumpinpriser i Nordamerika 🎃 | [Regression](2-Regression/README.md) | Visualisera och rengör data inför ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) |Jen • Eric Wanjau |
| 07 | Pumpinpriser i Nordamerika 🎃 | [Regression](2-Regression/README.md) | Bygg linjära och polynomiska regressionsmodeller | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen och Dmitry • Eric Wanjau |
| 08 | Pumpinpriser i Nordamerika 🎃 | [Regression](2-Regression/README.md) | Bygg en logistisk regressionsmodell | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | En webbapp 🔌 | [Web App](3-Web-App/README.md) | Bygg en webbapp för att använda din tränade modell | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Introduktion till klassificering | [Classification](4-Classification/README.md) | Rengör, förbered och visualisera din data; introduktion till klassificering | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen och Cassie • Eric Wanjau |
| 11 | Läckra asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Introduktion till klassificerare | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen och Cassie • Eric Wanjau |
| 12 | Läckra asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Fler klassificerare | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen och Cassie • Eric Wanjau |
| 13 | Läckra asiatiska och indiska kök 🍜| [Classification](4-Classification/README.md) | Bygg en rekommenderande webbapp med din modell | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Introduktion till klustring | [Clustering](5-Clustering/README.md) | Rengör, förbered och visualisera din data; introduktion till klustring | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) |Jen • Eric Wanjau |
| 16 | Introduktion till naturlig språkbehandling ☕️ | [Natural language processing](6-NLP/README.md) | Lär dig grunderna om NLP genom att bygga en enkel bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Vanliga NLP-uppgifter ☕️ | [Natural language processing](6-NLP/README.md) | Fördjupa dina NLP-kunskaper genom att förstå vanliga uppgifter kopplade till språkstrukturer | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Översättning och sentimentanalys ♥️ | [Natural language processing](6-NLP/README.md) | Översättning och sentimentanalys med Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantiska hotell i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentanalys med hotellrecensioner 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantiska hotell i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentanalys med hotellrecensioner 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Introduktion till tidsserieprognoser | [Time series](7-TimeSeries/README.md) | Introduktion till tidsserieprognoser | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Världens energianvändning ⚡️ - tidsserieprognoser med ARIMA | [Time series](7-TimeSeries/README.md) | Tidsserieprognoser med ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Världens energianvändning ⚡️ - tidsserieprognoser med SVR | [Time series](7-TimeSeries/README.md) | Tidsserieprognoser med Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Introduktion till förstärkningsinlärning | [Reinforcement learning](8-Reinforcement/README.md) | Introduktion till förstärkningsinlärning med Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Hjälp Peter undvika vargen! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Förstärkningsinlärning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Efterskrift | Verkliga ML-scenarier och applikationer | [ML in the Wild](9-Real-World/README.md) | Intressanta och avslöjande verkliga användningar av klassisk ML | [Lektion](9-Real-World/1-Applications/README.md) | Team |
| Efterskrift | Modellfelsökning i ML med RAI-dashboard | [ML in the Wild](9-Real-World/README.md) | Modellfelsökning i maskininlärning med Responsible AI-dashboardkomponenter | [Lektion](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
- [quiz efter lektionen](https://ff-quizzes.netlify.app/en/ml/)
> **En notis om språk**: Dessa lektioner är huvudsakligen skrivna i Python, men många finns också tillgängliga i R. För att slutföra en R-lektion, gå till mappen `/solution` och leta efter R-lektioner. De har en .rmd-filändelse som representerar en **R Markdown**-fil, vilken enkelt kan definieras som en inbäddning av `kodblock` (av R eller andra språk) och en `YAML-header` (som styr hur utdata som PDF formateras) i ett `Markdown-dokument`. Som sådan tjänar det som ett exemplariskt ramverk för författarskap inom datavetenskap eftersom det låter dig kombinera din kod, dess utdata och dina tankar genom att låta dig skriva ner dem i Markdown. Dessutom kan R Markdown-dokument renderas till utdataformat som PDF, HTML eller Word.
> **En notis om quiz**: Alla quiz finns i [Quiz App-mappen](../../quiz-app), totalt 52 quiz med tre frågor vardera. De länkas från lektionerna men quiz-appen kan köras lokalt; följ anvisningarna i `quiz-app`-mappen för att lokalt vara värd eller distribuera till Azure.
| Lektion Nummer | Ämne | Lektion Grupp | Lärandemål | Länkad Lektion | Författare |
| 01 | Introduktion till maskininlärning | [Introduktion](1-Introduction/README.md) | Lär dig grundbegreppen bakom maskininlärning |[Lektion](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Historiken om maskininlärning | [Introduktion](1-Introduction/README.md) | Lär dig historien bakom detta område | [Lektion](1-Introduction/2-history-of-ML/README.md) | Jen och Amy |
| 03 | Rättvisa och maskininlärning | [Introduktion](1-Introduction/README.md) | Vilka är de viktiga filosofiska frågorna kring rättvisa som studenter bör överväga när de bygger och tillämpar ML-modeller? | [Lektion](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Tekniker för maskininlärning | [Introduktion](1-Introduction/README.md)| Vilka tekniker använder ML-forskare för att bygga ML-modeller? | [Lektion](1-Introduction/4-techniques-of-ML/README.md) | Chris och Jen |
| 05 | Introduktion till regression | [Regression](2-Regression/README.md)| Kom igång med Python och Scikit-learn för regressionsmodeller | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Nordamerikanska pumpapris 🎃 | [Regression](2-Regression/README.md) | Visualisera och rensa data i förberedelse för ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Nordamerikanska pumpapris 🎃 | [Regression](2-Regression/README.md) | Bygg linjära och polynomiska regressionsmodeller | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen och Dmitry • Eric Wanjau |
| 08 | Nordamerikanska pumpapris 🎃 | [Regression](2-Regression/README.md)| Bygg en logistisk regressionsmodell | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | En webbapp 🔌 | [Web App](3-Web-App/README.md) | Bygg en webbapp för att använda din tränade modell | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Introduktion till klassificering | [Classification](4-Classification/README.md) | Rensa, förbered och visualisera dina data; introduktion till klassificering | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen och Cassie • Eric Wanjau |
| 11 | Läckra asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Introduktion till klassificerare | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen och Cassie • Eric Wanjau |
| 12 | Läckra asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Fler klassificerare | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen och Cassie • Eric Wanjau |
| 13 | Läckra asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md)| Bygg en rekommenderande webbapp med hjälp av din modell | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Introduktion till klustring | [Clustering](5-Clustering/README.md) | Rensa, förbered och visualisera dina data; Introduktion till klustring | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 16 | Introduktion till naturlig språkbehandling ☕️ | [Natural language processing](6-NLP/README.md) | Lär dig grunderna om NLP genom att bygga en enkel bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Vanliga NLP-uppgifter ☕️ | [Natural language processing](6-NLP/README.md) | Fördjupa dina NLP-kunskaper genom att förstå vanliga uppgifter som krävs vid hantering av språkliga strukturer | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Översättning och sentimentanalys ♥️ | [Natural language processing](6-NLP/README.md)| Översättning och sentimentanalys med Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantiska hotell i Europa ♥️ | [Natural language processing](6-NLP/README.md)| Sentimentanalys med hotellrecensioner 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantiska hotell i Europa ♥️ | [Natural language processing](6-NLP/README.md)| Sentimentanalys med hotellrecensioner 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Introduktion till tidsserieprognoser |[Time series](7-TimeSeries/README.md)| Introduktion till tidsserieprognoser | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Världens elförbrukning ⚡️ - tidsserieprognoser med ARIMA | [Time series](7-TimeSeries/README.md) | Tidsserieprognoser med ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Världens elförbrukning ⚡️ - tidsserieprognoser med SVR | [Time series](7-TimeSeries/README.md) | Tidsserieprognoser med Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Introduktion till förstärkningsinlärning | [Reinforcement learning](8-Reinforcement/README.md) | Introduktion till förstärkningsinlärning med Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Hjälp Peter att undvika vargen! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Förstärkningsinlärning i Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Efterord | Verkliga scenarier och tillämpningar av ML | [ML in the Wild](9-Real-World/README.md) | Intressanta och avslöjande verkliga tillämpningar av klassisk ML | [Lektion](9-Real-World/1-Applications/README.md) | Team |
| Efterord | Modellavlusning i ML med RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Modellavlusning inom maskininlärning med Responsible AI dashboard-komponenter | [Lektion](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [hitta alla ytterligare resurser för denna kurs i vår Microsoft Learn-samling](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Offline-tillgång
## Offlineåtkomst
Du kan använda denna dokumentation offline genom att använda [Docsify](https://docsify.js.org/#/). Forka detta repo, [installera Docsify](https://docsify.js.org/#/quickstart) på din lokala dator och skriv sedan `docsify serve` i rotmappen för detta repo. Webbplatsen kommer att serveras på port 3000 på din localhost: `localhost:3000`.
Du kan köra denna dokumentation offline med hjälp av [Docsify](https://docsify.js.org/#/). Forka detta repo, [installera Docsify](https://docsify.js.org/#/quickstart) på din lokala maskin, och sedan i rotmappen för detta repo, skriv `docsify serve`. Webbplatsen kommer att serveras på port 3000 på din localhost: `localhost:3000`.
## PDF-filer
Hitta en pdf av kursplanen med länkar [här](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Andra kurser
## 🎒 Andra kurser
Vårt team producerar andra kurser! Kolla in:
@ -175,49 +185,54 @@ Vårt team producerar andra kurser! Kolla in:
### Azure / Edge / MCP / Agenter
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Generativ AI Serie
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
### Generativ AI-serie
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### Kärnkunskap
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
### Kärnlärande
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot-serien
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
### Copilot-serie
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
Om du fastnar eller har frågor om att bygga AI-appar. Gå med i diskussioner med andra lärande och erfarna utvecklare om MCP. Det är en stödjande gemenskap där frågor välkomnas och kunskap delas fritt.
Om du fastnar eller har frågor om att bygga AI-appar. Gå med i diskussioner med andra elever och erfarna utvecklare om MCP. Det är en stöttande gemenskap där frågor är välkomna och kunskap delas fritt.
- Gå igenom anteckningsböcker efter varje lektion för bättre förståelse.
- Öva på att implementera algoritmer själv.
- Utforska verkliga datauppsättningar med hjälp av inlärda koncept.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Ansvarsfriskrivning**:
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Trots att vi strävar efter noggrannhet bör du vara medveten om att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår på grund av användningen av denna översättning.
Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, bör du vara medveten om att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För viktig information rekommenderas professionell human översättning. Vi ansvarar inte för eventuella missförstånd eller feltolkningar som uppstår vid användning av denna översättning.
[](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
อีกคำหนึ่งที่ควรเข้าใจคือ **ค่าสัมประสิทธิ์ความสัมพันธ์** ระหว่างตัวแปร X และ Y ที่กำหนด การใช้กราฟกระจาย คุณสามารถมองเห็นค่าสัมประสิทธิ์นี้ได้อย่างรวดเร็ว กราฟที่มีจุดข้อมูลกระจายเป็นเส้นเรียบมีความสัมพันธ์สูง แต่กราฟที่มีจุดข้อมูลกระจายไปทั่วระหว่าง X และ Y มีความสัมพันธ์ต่ำ
อีกคำหนึ่งที่ต้องเข้าใจคือ **สัมประสิทธิ์สหสัมพันธ์** ระหว่างตัวแปร X และ Y ที่กำหนด โดยใช้ scatterplot คุณสามารถเห็นสัมประสิทธิ์นี้ได้อย่างรวดเร็ว กราฟที่มีจุดกระจายเรียงเป็นเส้นตรงจะมีความสัมพันธ์สูง แต่กราฟที่จุดกระจายกระจัดกระจายไปทั่วระหว่าง X และ Y จะมีความสัมพันธ์ต่ำ
[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
[](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> [ค้นหาทรัพยากรเพิ่มเติมทั้งหมดสำหรับหลักสูตรนี้ได้ในคอลเลกชัน Microsoft Learn ของเรา](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [ค้นหาแหล่งข้อมูลเพิ่มเติมทั้งหมดสำหรับคอร์สนี้ในคอลเลกชัน Microsoft Learn ของเรา](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
บทเรียนบางบทเรียนมีในรูปแบบวิดีโอสั้น คุณสามารถหาวิดีโอทั้งหมดได้ในบทเรียน หรือใน [เพลย์ลิสต์ ML for Beginners บนช่อง YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) โดยคลิกที่ภาพด้านล่าง
บทเรียนบางบทมีวิดีโอสั้นให้ดู คุณสามารถดูทั้งหมดได้ในบทเรียน หรือที่ [เพลย์ลิสต์ ML for Beginners บนช่อง Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) โดยคลิกที่ภาพด้านล่างนี้
[](https://aka.ms/ml-beginners-videos)
| 04 | เทคนิคสำหรับการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | นักวิจัย ML ใช้เทคนิคอะไรในการสร้างโมเดล ML? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| บทส่งท้าย | กรณีศึกษาจริงและการประยุกต์ใช้ ML | [ML in the Wild](9-Real-World/README.md) | การประยุกต์ใช้ ML คลาสสิกที่น่าสนใจและเปิดเผยในชีวิตจริง | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| บทส่งท้าย | การดีบักโมเดล ML ด้วย RAI dashboard | [ML in the Wild](9-Real-World/README.md) | การดีบักโมเดล Machine Learning ด้วยส่วนประกอบ Responsible AI dashboard | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [ค้นหาทรัพยากรเพิ่มเติมทั้งหมดสำหรับหลักสูตรนี้ได้ในคอลเลกชัน Microsoft Learn ของเรา](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> **หมายเหตุเกี่ยวกับภาษา**: บทเรียนเหล่านี้ส่วนใหญ่เขียนด้วยภาษา Python แต่หลายบทเรียนก็มีในภาษา R ด้วย หากต้องการทำบทเรียน R ให้ไปที่โฟลเดอร์ `/solution` และค้นหาบทเรียน R ซึ่งจะมีนามสกุล .rmd ซึ่งหมายถึงไฟล์ **R Markdown** ซึ่งสามารถนิยามได้ง่ายๆ ว่าเป็นการฝัง `code chunks` (ของ R หรือภาษาอื่นๆ) และ `YAML header` (ที่ใช้กำหนดวิธีการจัดรูปแบบผลลัพธ์ เช่น PDF) ใน `เอกสาร Markdown` ดังนั้นจึงทำหน้าที่เป็นเฟรมเวิร์กการเขียนต้นฉบับที่ดีสำหรับวิทยาการข้อมูล เพราะอนุญาตให้คุณรวมโค้ด ผลลัพธ์ และความคิดของคุณโดยให้คุณเขียนลงใน Markdown นอกจากนี้เอกสาร R Markdown ยังสามารถเรนเดอร์เป็นรูปแบบผลลัพธ์ต่างๆ เช่น PDF, HTML หรือ Word ได้
| 04 | เทคนิคสำหรับการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เทคนิคที่นักวิจัย ML ใช้ในการสร้างโมเดล ML มีอะไรบ้าง | [บทเรียน](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| บทส่งท้าย | กรณีศึกษาและการประยุกต์ใช้ ML ในโลกจริง | [ML in the Wild](9-Real-World/README.md) | การประยุกต์ใช้จริงที่น่าสนใจและเปิดเผยของ ML คลาสสิก | [บทเรียน](9-Real-World/1-Applications/README.md) | ทีม |
| บทส่งท้าย | การดีบักโมเดล ML ด้วยแดชบอร์ด RAI | [ML in the Wild](9-Real-World/README.md) | การดีบักโมเดลการเรียนรู้เครื่องโดยใช้ส่วนประกอบแดชบอร์ด Responsible AI | [บทเรียน](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [ค้นหาทรัพยากรเพิ่มเติมสำหรับหลักสูตรนี้ได้ในคอลเลกชัน Microsoft Learn ของเรา](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
ค้นหาไฟล์ pdf ของหลักสูตรพร้อมลิงก์ [ที่นี่](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 หลักสูตรอื่นๆ
## 🎒 หลักสูตรอื่นๆ
ทีมงานของเรามีหลักสูตรอื่น ๆ ด้วย! ตรวจสอบได้ที่:
ทีมของเราผลิตหลักสูตรอื่นๆ อีก! ลองดู:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -180,7 +190,7 @@
---
### Generative AI Series
### ชุดการเรียนรู้ Generative AI
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -188,7 +198,7 @@
---
### การเรียนรู้หลัก
### การเรียนรู้พื้นฐาน
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
@ -199,25 +209,30 @@
---
### ชุดเรื่อง Copilot
### ชุด Copilot
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
หากคุณติดขัดหรือมีคำถามเกี่ยวกับการพัฒนาแอป AI เข้าร่วมกับผู้เรียนและนักพัฒนาที่มีประสบการณ์ในการสนทนาเกี่ยวกับ MCP นี่คือชุมชนที่ให้การสนับสนุนซึ่งคำถามได้รับการต้อนรับและแบ่งปันความรู้กันอย่างเสรี
หากคุณติดขัดหรือมีคำถามเกี่ยวกับการสร้างแอป AI เข้าร่วมกับผู้เรียนและนักพัฒนาที่มีประสบการณ์ในการสนทนาเกี่ยวกับ MCP นี่คือชุมชนที่ให้การสนับสนุนซึ่งยินดีตอบคำถามและแบ่งปันความรู้กันอย่างอิสระ