chore(i18n): sync translations with latest source changes (chunk 1/1, 21 changes)

pull/935/head
localizeflow[bot] 1 month ago
parent 6991f52604
commit 8d274c104d

@ -30,8 +30,8 @@
"language_code": "el"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T00:25:49+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T09:22:19+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "el"
},
@ -90,8 +90,8 @@
"language_code": "el"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-04T23:23:52+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:23:53+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "el"
},
@ -186,8 +186,8 @@
"language_code": "el"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T00:50:19+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T09:24:20+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "el"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "el"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T09:19:31+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "el"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T00:51:45+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "el"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T09:19:44+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "el"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T00:47:47+00:00",
@ -540,8 +552,8 @@
"language_code": "el"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T08:19:26+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T09:22:11+00:00",
"source_file": "README.md",
"language_code": "el"
},

@ -1,16 +1,18 @@
# Εξερευνήστε το Εργαλείο Υπεύθυνης Τεχνητής Νοημοσύνης
# Εξερευνήστε το 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). Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα πρέπει να θεωρείται η επίσημη πηγή. Για κρίσιμες πληροφορίες, συνιστάται η επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,87 +1,98 @@
# Δημιουργία μοντέλου παλινδρόμησης με χρήση Scikit-learn: τέσσερις τρόποι παλινδρόμησης
# Δημιουργία μοντέλου παλινδρόμησης με χρήση Scikit-learn: παλινδρόμηση με τέσσερις τρόπους
![Γραμμική vs πολυωνυμική παλινδρόμηση infographic](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> Infographic από [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Προ-μάθημα quiz](https://ff-quizzes.netlify.app/en/ml/)
## Σημείωση για αρχάριους
Η γραμμική παλινδρόμηση χρησιμοποιείται όταν θέλουμε να προβλέψουμε μια **αριθμητική τιμή** (για παράδειγμα, τιμή σπιτιού, θερμοκρασία ή πωλήσεις). Λειτουργεί βρίσκοντας μια ευθεία που αντιπροσωπεύει καλύτερα τη σχέση μεταξύ των εισαγόμενων χαρακτηριστικών και της εξόδου.
Σε αυτό το μάθημα, εστιάζουμε στην κατανόηση της έννοιας πριν εξερευνήσουμε πιο προχωρημένες τεχνικές παλινδρόμησης.
![Γραμμική έναντι πολυωνυμικής παλινδρόμησης infographic](../../../../translated_images/el/linear-polynomial.5523c7cb6576ccab.webp)
> 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.
Τώρα είστε έτοιμοι να εμβαθύνετε περισσότερο στην παλινδρόμηση για τη Μηχανική Μάθηση. Ενώ η οπτικοποίηση σας επιτρέπει να κατανοήσετε τα δεδομένα, η πραγματική δύναμη της Μηχανικής Μάθησης προέρχεται από την _εκπαίδευση μοντέλων_. Τα μοντέλα εκπαιδεύονται σε ιστορικά δεδομένα για να καταγράψουν αυτόματα τις εξαρτήσεις των δεδομένων και σας επιτρέπουν να προβλέψετε αποτελέσματα για νέα δεδομένα που το μοντέλο δεν έχει δει πριν.
Τώρα είστε έτοιμοι να εμβαθύνετε στην παλινδρόμηση για την Μηχανική Μάθηση. Ενώ η οπτικοποίηση σας επιτρέπει να κατανοήσετε τα δεδομένα, η πραγματική δύναμη της Μηχανικής Μάθησης προέρχεται από το _εκπαίδευση μοντέλων_. Τα μοντέλα εκπαιδεύονται με ιστορικά δεδομένα για να συλλάβουν αυτόματα τις εξαρτήσεις δεδομένων, και σας επιτρέπουν να προβλέπετε αποτελέσματα για νέα δεδομένα, τα οποία το μοντέλο δεν έχει δει προηγουμένως.
Σε αυτό το μάθημα, θα μάθετε περισσότερα για δύο τύπους παλινδρόμησης: ασική γραμμική παλινδρόμηση_ και ολυωνυμική παλινδρόμηση_, μαζί με λίγα μαθηματικά που υποστηρίζουν αυτές τις τεχνικές. Αυτά τα μοντέλα θα μας επιτρέψουν να προβλέψουμε τις τιμές κολοκύθας ανάλογα με διαφορετικά δεδομένα εισόδου.
Σε αυτό το μάθημα, θα μάθετε περισσότερα για δύο τύπους παλινδρόμησης: ασική γραμμική παλινδρόμηση_ και ολυωνυμική παλινδρόμηση_, μαζί με κάποια από τα μαθηματικά που βασίζονται αυτές οι τεχνικές. Αυτά τα μοντέλα θα μας επιτρέψουν να προβλέψουμε τις τιμές κολοκύθας ανάλογα με διαφορετικά εισαγόμενα δεδομένα.
[![ML για αρχάριους - Κατανόηση της Γραμμικής Παλινδρόμησης](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML για αρχάριους - Κατανόηση της Γραμμικής Παλινδρόμησης")
[![Μηχανική Μάθηση για αρχάριους - Κατανόηση της Γραμμικής Παλινδρόμησης](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](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`.
>
>![υπολογίστε την κλίση](../../../../2-Regression/3-Linear/images/slope.png)
>![υπολογισμός της κλίσης](../../../../translated_images/el/slope.f3c9d5910ddbfcf9.webp)
>
> Πρώτα, υπολογίστε την κλίση `b`. Infographic από [Jen Looper](https://twitter.com/jenlooper)
> Πρώτα, υπολογίστε την κλίση `b`. Infographic από την [Jen Looper](https://twitter.com/jenlooper)
>
> Με άλλα λόγια, και αναφερόμενοι στην αρχική ερώτηση των δεδομένων κολοκύθας: "προβλέψτε την τιμή μιας κολοκύθας ανά bushel ανά μήνα", το `X` θα αναφέρεται στην τιμή και το `Y` στον μήνα πώλησης.
> Με άλλα λόγια, και αναφερόμενοι στην αρχική ερώτηση των δεδομένων κολοκύθας μας: "προβλέψτε την τιμή μιας κολοκύθας ανά μπουσέλ ανά μήνα", το `X` θα αναφερόταν στην τιμή και το `Y` στον μήνα πώλησης.
>
>![ολοκληρώστε την εξίσωση](../../../../2-Regression/3-Linear/images/calculation.png)
>![ολοκλήρωση της εξίσωσης](../../../../translated_images/el/calculation.a209813050a1ddb1.webp)
>
> Υπολογίστε την τιμή του 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
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
@ -89,27 +100,27 @@ ID | Μήνας | ΗμέραΈτους | Ποικιλία | Πόλη | Συσκ
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> Ο κώδικας για τον καθαρισμό των δεδομένων είναι διαθέσιμος στο [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Έχουμε εκτελέσει τα ίδια βήματα καθαρισμού όπως στο προηγούμενο μάθημα και έχουμε υπολογίσει τη στήλη `ΗμέραΈτους` χρησιμοποιώντας την ακόλουθη έκφραση:
> Ο κώδικας για τον καθαρισμό των δεδομένων είναι διαθέσιμος στο [`notebook.ipynb`](notebook.ipynb). Έχουμε πραγματοποιήσει τα ίδια βήματα καθαρισμού όπως στο προηγούμενο μάθημα, και έχουμε υπολογίσει τη στήλη `DayOfYear` με την ακόλουθη έκφραση:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Τώρα που έχετε κατανοήσει τα μαθηματικά πίσω από τη γραμμική παλινδρόμηση, ας δημιουργήσουμε ένα μοντέλο Παλινδρόμησης για να δούμε αν μπορούμε να προβλέψουμε ποια συσκευασία κολοκύθας θα έχει τις καλύτερες τιμές κολοκύθας. Κάποιος που αγοράζει κολοκύθες για ένα εποχιακό αγρόκτημα κολοκύθας μπορεί να θέλει αυτές τις πληροφορίες για να βελτιστοποιήσει τις αγορές του.
Τώρα που έχετε κατανοήσει τα μαθηματικά πίσω από τη γραμμική παλινδρόμηση, ας δημιουργήσουμε ένα μοντέλο παλινδρόμησης για να δούμε αν μπορούμε να προβλέψουμε ποια συσκευασία κολοκύθας θα έχει τις καλύτερες τιμές. Κάποιος που αγοράζει κολοκύθες για ένα εποχιακό παρτέρι κολοκύθας μπορεί να θέλει αυτή την πληροφορία για να βελτιστοποιήσει τις αγορές του σε συσκευασίες κολοκύθας.
## Αναζήτηση Συσχέτισης
## Αναζήτηση συσχέτισης
[![ML για αρχάριους - Αναζήτηση Συσχέτισης: Το Κλειδί για τη Γραμμική Παλινδρόμηση](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML για αρχάριους - Αναζήτηση Συσχέτισης: Το Κλειδί για τη Γραμμική Παλινδρόμηση")
[![Μηχανική Μάθηση για αρχάριους - Αναζήτηση συσχέτισης: Το κλειδί για τη γραμμική παλινδρόμηση](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Μηχανική Μάθηση για αρχάριους - Αναζήτηση συσχέτισης: Το κλειδί για τη γραμμική παλινδρόμηση")
> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα σύντομο βίντεο επισκόπησης της συσχέτισης.
> 🎥 Κάντε κλικ στην εικόνα παραπάνω για σύντομη επισκόπηση βίντεο σχετικά με τη συσχέτιση.
Από το προηγούμενο μάθημα πιθανότατα έχετε δει ότι η μέση τιμή για διαφορετικούς μήνες μοιάζει με αυτή:
Από το προηγούμενο μάθημα πιθανότατα έχετε δει ότι η μέση τιμή ανά μήνα μοιάζει κάπως έτσι:
<img alt="Μέση τιμή ανά μήνα" src="../../../../translated_images/el/barchart.a833ea9194346d76.webp" width="50%"/>
Αυτό υποδηλώνει ότι θα πρέπει να υπάρχει κάποια συσχέτιση και μπορούμε να δοκιμάσουμε να εκπαιδεύσουμε ένα μοντέλο γραμμικής παλινδρόμησης για να προβλέψουμε τη σχέση μεταξύ `Μήνα` και `Τιμής`, ή μεταξύ `ΗμέραΈτους` και `Τιμής`. Εδώ είναι το scatterplot που δείχνει τη δεύτερη σχέση:
Αυτό υποδηλώνει ότι πρέπει να υπάρχει κάποια συσχέτιση, και μπορούμε να δοκιμάσουμε να εκπαιδεύσουμε γραμμικό μοντέλο παλινδρόμησης για να προβλέψουμε τη σχέση μεταξύ `Month` και `Price`, ή μεταξύ `DayOfYear` και `Price`. Ιδού το scatter plot που δείχνει τη δεύτερη σχέση:
<img alt="Scatter plot Τιμής vs Ημέρα του Έτους" src="../../../../translated_images/el/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Διάγραμμα διασποράς Τιμής vs. Ημέρα του Έτους" src="../../../../translated_images/el/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Ας δούμε αν υπάρχει συσχέτιση χρησιμοποιώντας τη συνάρτηση `corr`:
@ -118,7 +129,7 @@ print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Φαίνεται ότι η συσχέτιση είναι αρκετά μικρή, -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()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Scatter plot Τιμής vs Ημέρα του Έτους" src="../../../../translated_images/el/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Διάγραμμα διασποράς Τιμής vs. Ημέρα του Έτους με χρώματα" src="../../../../translated_images/el/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Η έρευνά μας υποδηλώνει ότι η ποικιλία έχει μεγαλύτερη επίδραση στη συνολική τιμή από την πραγματική ημερομηνία πώλησης. Μπορούμε να το δούμε με ένα γράφημα μπαρ:
Η έρευνά μας υποδηλώνει ότι η ποικιλία έχει μεγαλύτερη επίδραση στην συνολική τιμή από την πραγματική ημερομηνία πώλησης. Το διαπιστώνουμε και με ένα ραβδόγραμμα:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Γράφημα μπαρ τιμής vs ποικιλίας" src="../../../../translated_images/el/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Ραβδόγραμμα τιμών ανά ποικιλία" src="../../../../translated_images/el/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Ας επικεντρωθούμε προς το παρόν μόνο σε μία ποικιλία κολοκύθας, την 'pie type', και ας δούμε τι επίδραση έχει η ημερομηνία στην τιμή:
Ας εστιάσουμε προς στιγμή μόνο σε μια ποικιλία κολοκύθας, την 'pie type', και ας δούμε ποια επίδραση έχει η ημερομηνία στην τιμή:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Scatter plot Τιμής vs Ημέρα του Έτους" src="../../../../translated_images/el/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Διάγραμμα διασποράς Τιμής 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()
```
Μια άλλη προσέγγιση θα ήταν να γεμίσουμε αυτές τις κενές τιμές με μέσες τιμές από την αντίστοιχη στήλη.
Μια άλλη προσέγγιση θα ήταν να συμπληρώσουμε αυτές τις κενές τιμές με τις μέσες τιμές των αντίστοιχων στηλών.
## Απλή Γραμμική Παλινδρόμηση
## Απλή γραμμική παλινδρόμηση
[![ML για αρχάριους - Γραμμική και Πολυωνυμική Παλινδρόμηση με χρήση Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML για αρχάριους - Γραμμική και Πολυωνυμική Παλινδρόμηση με χρήση Scikit-learn")
[![Μηχανική Μάθηση για αρχάριους - Γραμμική και Πολυωνυμική Παλινδρόμηση με χρήση Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](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&times;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), που είναι ο μέσος όρος όλων των τετραγωνικών διαφορών μεταξύ της αναμενόμενης και της προβλεπόμενης τιμής.
```python
pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
Το σφάλμα μας φαίνεται να είναι περίπου 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, που είναι αρκετά χαμηλός.
Μπορούμε επίσης να σχεδιάσουμε τα δεδομένα δοκιμής μαζί με τη γραμμή παλινδρόμησης για να δούμε καλύτερα πώς λειτουργεί η παλινδρόμηση στην περίπτωσή μας:
Μπορούμε επίσης να σχεδιάσουμε τα δεδομένα δοκιμής μαζί με τη γραμμή παλινδρόμησης για να δούμε καλύτερα πώς λειτουργεί η παλινδρόμηση στη δική μας περίπτωση:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="Γραμμική παλινδρόμηση" src="../../../../translated_images/el/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/el/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Πολυωνυμική Παλινδρόμηση
## Πολυωνυμική Παλινδρόμηση
Ένας άλλος τύπος Γραμμικής Παλινδρόμησης είναι η Πολυωνυμική Παλινδρόμηση. Ενώ μερικές φορές υπάρχει γραμμική σχέση μεταξύ των μεταβλητών - όσο μεγαλύτερος ο όγκος της κολοκύθας, τόσο υψηλότερη η τιμή - μερικές φορές αυτές οι σχέσεις δεν μπορούν να σχεδιαστούν ως επίπεδο ή ευθεία γραμμή.
Ένας άλλος τύπος Γραμμικής Παλινδρόμησης είναι η Πολυωνυμική Παλινδρόμηση. Ενώ μερικές φορές υπάρχει γραμμική σχέση μεταξύ των μεταβλητών - όσο μεγαλύτερη είναι η κολοκύθα σε όγκο, τόσο υψηλότερη η τιμή - κάποιες φορές αυτές οι σχέσεις δεν μπορούν να σχεδιαστούν ως επίπεδο ή ευθεία γραμμή.
✅ Εδώ είναι [μερικά παραδείγματα](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
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
Η χρήση του `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` για να πάρουμε τα αποτελέσματα πρόβλεψης. Εδώ είναι το γράφημα που δείχνει τα δεδομένα δοκιμής και την καμπύλη προσέγγισης:
<img alt="Πολυωνυμική παλινδρόμηση" src="../../../../translated_images/el/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/el/poly-results.ee587348f0f1f60b.webp" width="50%" />
Χρησιμοποιώντας την Πολυωνυμική Παλινδρόμηση, μπορούμε να πετύχουμε ελαφρώς χαμηλότερο MSE και υψηλότερο συντελεστή προσδιορισμού, αλλά όχι σημαντικά. Πρέπει να λάβουμε υπόψη και άλλα χαρακτηριστικά!
Χρησιμοποιώντας Πολυωνυμική Παλινδρόμηση, μπορούμε να πετύχουμε λίγο μικρότερο MSE και υψηλότερο συντελεστή προσδιορισμού, αλλά όχι σημαντικά. Πρέπει να λάβουμε υπόψη και άλλα χαρακτηριστικά!
> Μπορείτε να δείτε ότι οι ελάχιστες τιμές κολοκύθας παρατηρούνται κάπου γύρω από το Halloween. Πώς μπορείτε να το εξηγήσετε;
> Μπορείτε να δείτε ότι οι ελάχιστες τιμές των κολοκυθών παρατηρούνται κάπου γύρω από το Halloween. Πώς μπορεί να το εξηγήσετε;
🎃 Συγχαρητήρια, μόλις δημιουργήσατε ένα μοντέλο που μπορεί να βοηθήσει στην πρόβλεψη της τιμής των κολοκύθων για πίτα. Πιθανότατα μπορείτε να επαναλάβετε την ίδια διαδικασία για όλους τους τύπους κολοκύθας, αλλά αυτό θα ήταν κουραστικό. Ας μάθουμε τώρα πώς να λαμβάνουμε υπόψη την ποικιλία κολοκύθας στο μοντέλο μας!
🎃 Συγχαρητήρια, μόλις δημιουργήσατε ένα μοντέλο που μπορεί να βοηθήσει στην πρόβλεψη της τιμής των κολοκυθών για πίτες. Μπορείτε πιθανώς να επαναλάβετε την ίδια διαδικασία για όλους τους τύπους κολοκύθας, αλλά αυτό θα ήταν κουραστικό. Ας μάθουμε τώρα πώς να λάβουμε υπόψη την ποικιλία κολοκύθας στο μοντέλο μας!
## Κατηγορικά Χαρακτηριστικά
## Κατηγορικά Χαρακτηριστικά
Στον ιδανικό κόσμο, θέλουμε να μπορούμε να προβλέψουμε τιμές για διαφορετικές ποικιλίες κολοκύθας χρησιμοποιώντας το ίδιο μοντέλο. Ωστόσο, η στήλη `Variety` είναι κάπως διαφορετική από στήλες όπως το `Month`, επειδή περιέχει μη αριθμητικές τιμές. Τέτοιες στήλες ονομάζονται **κατηγορικές**.
Σε έναν ιδανικό κόσμο, θέλουμε να μπορούμε να προβλέψουμε τιμές για διαφορετικές ποικιλίες κολοκύθας χρησιμοποιώντας το ίδιο μοντέλο. Ωστόσο, η στήλη `Variety` διαφέρει κάπως από στήλες όπως το `Month`, επειδή περιέχει μη αριθμητικές τιμές. Τέτοιες στήλες λέγονται **κατηγορικές**.
[![ML για αρχάριους - Προβλέψεις με κατηγορικά χαρακτηριστικά μέσω Γραμμικής Παλινδρόμησης](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML για αρχάριους - Προβλέψεις με κατηγορικά χαρακτηριστικά μέσω Γραμμικής Παλινδρόμησης")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα σύντομο βίντεο σχετικά με τη χρήση κατηγορικών χαρακτηριστικών.
> 🎥 Κάντε κλικ στην εικόνα παραπάνω για μια σύντομη βιντεοπαρουσίαση για τη χρήση κατηγορικών χαρακτηριστικών.
Εδώ μπορείτε να δείτε πώς η μέση τιμή εξαρτάται από την ποικιλία:
<img alt="Μέση τιμή ανά ποικιλία" src="../../../../translated_images/el/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="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
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
Για να εκπαιδεύσουμε τη γραμμική παλινδρόμηση χρησιμοποιώντας την 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
# ρύθμιση και εκπαίδευση της αλυσίδας επεξεργασίας
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# πρόβλεψη αποτελεσμάτων για δεδομένα δοκιμής
pred = pipeline.predict(X_test)
# calculate MSE and determination
# υπολογισμός MSE και συντελεστή προσδιορισμού
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
```
Αυτό θα μας δώσει τον καλύτερο συντελεστή προσδιορισμού σχεδόν 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). Ενώ καταβάλλουμε προσπάθεια για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,42 +1,42 @@
# Ταξινομητές Κουζίνας 2
# Ταξινομητές κουζίνας 2
Σε αυτό το δεύτερο μάθημα ταξινόμησης, θα εξερευνήσετε περισσότερους τρόπους ταξινόμησης αριθμητικών δεδομένων. Θα μάθετε επίσης για τις συνέπειες της επιλογής ενός ταξινομητή έναντι ενός άλλου.
Σε αυτό το δεύτερο μάθημα ταξινόμησης, θα εξερευνήσετε περισσότερους τρόπους για να ταξινομήσετε αριθμητικά δεδομένα. Θα μάθετε επίσης για τις επιπτώσεις της επιλογής ενός ταξινομητή έναντι του άλλου.
## [Προ-μάθημα κουίζ](https://ff-quizzes.netlify.app/en/ml/)
## [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 που μπορεί να βοηθήσει περαιτέρω στο να περιορίσετε τους εκτιμητές σας (άλλος όρος για τους ταξινομητές):
![ML Map from Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Συμβουλή: [επισκεφθείτε αυτόν τον χάρτη online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) και κάντε κλικ κατά μήκος της διαδρομής για να διαβάσετε την τεκμηρίωση.
![ML Map from Scikit-learn](../../../../translated_images/el/map.e963a6a51349425a.webp)
> Συμβουλή: [επισκεφτείτε αυτόν τον χάρτη διαδικτυακά](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. Διαχωρίστε τα δεδομένα εκπαίδευσης και ελέγχου σας:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Ταξινομητής Linear SVC
Η ταξινόμηση 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
Ξεκινήστε δημιουργώντας έναν πίνακα ταξινομητών. Θα προσθέσετε προοδευτικά σε αυτόν τον πίνακα καθώς δοκιμάζουμε.
Ξεκινήστε δημιουργώντας έναν πίνακα ταξινομητών. Θα προσθέσετε σταδιακά σε αυτόν τον πίνακα καθώς δοκιμάζουμε.
1. Ξεκινήστε με Linear SVC:
1. Ξεκινήστε με ένα Linear SVC:
```python
C = 10
# Create different classifiers.
# Δημιουργήστε διάφορους ταξινομητές.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
@ -107,13 +107,13 @@
## Ταξινομητής K-Neighbors
Ο 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)
✅ Μάθετε για τους [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Ταξινομητής Support Vector
Οι ταξινομητές 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)
✅ Μάθετε για τους [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Ταξινομητές Ensemble
## Σύνολα ταξινομητών (Ensemble Classifiers)
Ας ακολουθήσουμε τη διαδρομή μέχρι το τέλος, παρόλο που η προηγούμενη δοκιμή ήταν αρκετά καλή. Ας δοκιμάσουμε κάποιους ταξινομητές 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)
✅ Μάθετε για τους [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). Παρότι επιδιώκουμε την ακρίβεια, παρακαλούμε να λάβετε υπόψη ότι οι αυτόματες μεταφράσεις μπορεί να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική μετάφραση από ανθρώπινο μεταφραστή. Δεν φέρουμε ευθύνη για οποιεσδήποτε παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Δημιουργία Μοντέλου Ταξινόμησης\n"
"# Δημιουργία Μοντέλου Κατηγοριοποίησης\n"
]
},
{
@ -116,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\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"
]
}
],
@ -152,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-04T08:31:55+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "el"
}
},
"nbformat": 4,

@ -116,8 +116,8 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
@ -148,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -263,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\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"
]
}
],
@ -291,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-04T08:32:40+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "el"
}
},
"nbformat": 4,

@ -1,223 +1,239 @@
[![GitHub license](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Άδεια GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
[![Συνεισφέροντες GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
[![Ζητήματα GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
[![Αιτήματα έλξης GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
[![Τα αιτήματα έλξης είναι ευπρόσδεκτα](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
[![Παρατηρητές GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
[![Forks GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![Αστέρια GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
### 🌐 Υποστήριξη Πολλών Γλωσσών
### 🌐 Υποστήριξη πολλαπλών γλωσσών
#### Υποστηρίζεται μέσω του GitHub Action (Αυτοματοποιημένο & Πάντα Ενημερωμένο)
#### Υποστηρίζεται μέσω GitHub Action (Αυτοματοποιημένο & Πάντα Ενημερωμένο)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](./README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
[Αραβικά](../ar/README.md) | [Μπενγκάλι](../bn/README.md) | [Βουλγαρικά](../bg/README.md) | [Βιρμανικά (Μιανμάρ)](../my/README.md) | [Κινέζικα (Απλοποιημένα)](../zh-CN/README.md) | [Κινέζικα (Παραδοσιακά, Χονγκ Κονγκ)](../zh-HK/README.md) | [Κινέζικα (Παραδοσιακά, Μακάο)](../zh-MO/README.md) | [Κινέζικα (Παραδοσιακά, Ταϊβάν)](../zh-TW/README.md) | [Κροατικά](../hr/README.md) | [Τσέχικα](../cs/README.md) | [Δανικά](../da/README.md) | [Ολλανδικά](../nl/README.md) | [Εσθονικά](../et/README.md) | [Φινλανδικά](../fi/README.md) | [Γαλλικά](../fr/README.md) | [Γερμανικά](../de/README.md) | [Ελληνικά](./README.md) | [Εβραϊκά](../he/README.md) | [Χίντι](../hi/README.md) | [Ουγγρικά](../hu/README.md) | [Ινδονησιακά](../id/README.md) | [Ιταλικά](../it/README.md) | [Ιαπωνικά](../ja/README.md) | [Κανάντα](../kn/README.md) | [Κορεάτικα](../ko/README.md) | [Λιθουανικά](../lt/README.md) | [Μαλαισιανά](../ms/README.md) | [Μαλαγιαλάμ](../ml/README.md) | [Μαραθικά](../mr/README.md) | [Νεπάλικά](../ne/README.md) | [Νιγηριανά Πίντζιν](../pcm/README.md) | [Νορβηγικά](../no/README.md) | [Περσικά (Φαρσί)](../fa/README.md) | [Πολωνικά](../pl/README.md) | [Πορτογαλικά (Βραζιλία)](../pt-BR/README.md) | [Πορτογαλικά (Πορτογαλία)](../pt-PT/README.md) | [Πουντζάμπι (Γκουρμούκι)](../pa/README.md) | [Ρουμανικά](../ro/README.md) | [Ρωσικά](../ru/README.md) | [Σερβικά (Κυριλλικά)](../sr/README.md) | [Σλοβακικά](../sk/README.md) | [Σλοβενικά](../sl/README.md) | [Ισπανικά](../es/README.md) | [Σουαχίλι](../sw/README.md) | [Σουηδικά](../sv/README.md) | [Ταγκάλογκ (Φιλιππινέζικα)](../tl/README.md) | [Ταμίλ](../ta/README.md) | [Τελούγκου](../te/README.md) | [Ταϊλανδικά](../th/README.md) | [Τουρκικά](../tr/README.md) | [Ουκρανικά](../uk/README.md) | [Ουρντού](../ur/README.md) | [Βιετναμέζικα](../vi/README.md)
> **Προτιμάτε να το Κλωνοποιήσετε Τοπικά;**
> Αυτό το αποθετήριο περιλαμβάνει μεταφράσεις σε 50+ γλώσσες που αυξάνουν σημαντικά το μέγεθος λήψης. Για να κάνετε κλωνοποίηση χωρίς μεταφράσεις, χρησιμοποιήστε sparse checkout:
> **Προτιμάτε να κλωνοποιήσετε τοπικά;**
>
> Αυτό το αποθετήριο περιλαμβάνει πάνω από 50 μεταφράσεις γλωσσών οι οποίες αυξάνουν σημαντικά το μέγεθος λήψης. Για να κλωνοποιήσετε χωρίς μεταφράσεις, χρησιμοποιήστε το sparse checkout:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Αυτό σας δίνει όλα όσα χρειάζεστε για να ολοκληρώσετε το μάθημα με πολύ πιο γρήγορη λήψη.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Συμμετέχετε στην Κοινότητά μας
#### Ενταχθείτε στην κοινότητά μας
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Διεξάγουμε μια σειρά 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.
![Learn with AI series](../../translated_images/el/3.9b58fd8d6c373c20.webp)
# Μηχανική Μάθηση για Αρχάριους - Ένα Πρόγραμμα Σπουδών
# Μηχανική Μάθηση για Αρχάριους - Πρόγραμμα Σπουδών
> 🌍 Ταξιδέψτε σε όλο τον κόσμο καθώς εξερευνούμε τη Μηχανική Μάθηση μέσα από τους πολιτισμούς του κόσμου 🌍
> 🌍 Ταξιδέψτε σ' όλο τον κόσμο καθώς εξερευνούμε τη Μηχανική Μάθηση μέσω των πολιτισμών του κόσμου 🌍
Οι 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) κάνοντας κλικ στην παρακάτω εικόνα.
[![ML for beginners banner](../../translated_images/el/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## Γνωρίστε την Ομάδα
## Γνωρίστε την ομάδα
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
[![Προωθητικό βίντεο](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif από** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Πατήστε την εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο και τους ανθρώπους που το δημιούργησαν!
> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο και τους ανθρώπους που το δημιούργησαν!
---
## Παιδαγωγική
## Διδακτική μέθοδος
Έχουμε επιλέξει δύο παιδαγωγικές αρχές κατά τη δημιουργία αυτού του προγράμματος: να είναι πρακτικό και βασισμένο σε έργα και να περιλαμβάνει συχνά κουίζ. Επιπλέον, αυτό το πρόγραμμα έχει ένα κοινό θεματικό άξονα για να του δώσει συνοχή.
Έχουμε επιλέξει δύο διδακτικές αρχές κατά την ανάπτυξη αυτού του προγράμματος σπουδών: τη διασφάλιση ότι είναι πρακτικό και **βασισμένο σε έργα** και ότι περιλαμβάνει **συχνά κουίζ**. Επιπλέον, αυτό το πρόγραμμα σπουδών έχει ένα κοινό **θέμα** για να του δώσει συνοχή.
Εξασφαλίζοντας ότι το περιεχόμενο ευθυγραμμίζεται με έργα, η διαδικασία γίνεται πιο ελκυστική για τους φοιτητές και η διατήρηση των εννοιών ενισχύεται. Επιπλέον, ένα κουίζ χαμηλού ρίσκου πριν από το μάθημα θέτει τη διάθεση του φοιτητή για εκμάθηση ενός θέματος, ενώ ένα δεύτερο κουίζ μετά το μάθημα διασφαλίζει περαιτέρω διατήρηση. Το πρόγραμμα σχεδιάστηκε για να είναι ευέλικτο και διασκεδαστικό και μπορεί να ακολουθηθεί ολόκληρο ή μεμονωμένα μέρη. Τα έργα ξεκινούν μικρά και γίνονται διαρκώς πιο πολύπλοκα έως το τέλος των 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/)
- βίντεο καθοδήγησης (μόνο μερικά μαθήματα)
- [προμαθησιακό quiz](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 |
| 22 | ⚡️ Παγκόσμια κατανάλωση ενέργειας ⚡️ - πρόβλεψη χρονοσειρών με ARIMA | [Χρονοσειρές](7-TimeSeries/README.md) | Πρόβλεψη χρονοσειρών με ARIMA | [Python](7-TimeSeries/2-ARIMA/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 |
- ανάθεση
- [μετα-μαθησιακό quiz](https://ff-quizzes.netlify.app/en/ml/)
> **Μια σημείωση για τις γλώσσες**: Αυτά τα μαθήματα είναι κυρίως γραμμένα σε 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 |
| 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 |
| 22 | ⚡️ Κατανάλωση ρεύματος παγκοσμίως ⚡️ - πρόβλεψη χρονοσειρών με ARIMA | [Χρονοσειρές](7-TimeSeries/README.md) | Πρόβλεψη χρονοσειρών με ARIMA | [Python](7-TimeSeries/2-ARIMA/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) | Ενδιαφέρουσες και αποκαλυπτικές εφαρμογές κλασικής μηχανικής μάθησης στον πραγματικό κόσμο | [Μάθημα](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).
## 🎒 Άλλα Μαθήματα
## 🎒 Άλλα Μαθήματα
Η ομάδα μας παράγει και άλλα μαθήματα! Ρίξτε μια ματιά:
Η ομάδα μας παράγει και άλλα μαθήματα! Δείτε:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j για Αρχάριους](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js για Αρχάριους](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain για Αρχάριους](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j για αρχάριους](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js για αρχάριους](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain για αρχάριους](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
[![AZD για Αρχάριους](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI για Αρχάριους](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AZD για αρχάριους](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI για αρχάριους](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP για Αρχάριους](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents για Αρχάριους](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Generative AI Series
[![Γεννητική Τεχνητή Νοημοσύνη για Αρχάριους](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Γεννητική Τεχνητή Νοημοσύνη (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Γεννητική Τεχνητή Νοημοσύνη (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Γεννητική Τεχνητή Νοημοσύνη (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### Σειρά Γενετικής Τεχνητής Νοημοσύνης
[![Γενετική Τεχνητή Νοημοσύνη για Αρχάριους](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Γενετική Τεχνητή Νοημοσύνη (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Γενετική Τεχνητή Νοημοσύνη (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Γενετική Τεχνητή Νοημοσύνη (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### Βασική Μάθηση
[![Μηχανική Μάθηση για Αρχάριους](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![ML για Αρχάριους](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Επιστήμη Δεδομένων για Αρχάριους](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![Τεχνητή Νοημοσύνη για Αρχάριους](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Κυβερνοασφάλεια για Αρχάριους](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Ανάπτυξη Ιστού για Αρχάριους](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![Διαδίκτυο των Πραγμάτων για Αρχάριους](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![Ανάπτυξη Επαυξημένης Πραγματικότητας για Αρχάριους](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT για Αρχάριους](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![Ανάπτυξη XR για Αρχάριους](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Σειρά Copilot
[![Copilot για Προγραμματισμό με Συνεργασία AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot για Προγραμματισμό με AI σε Ζευγάρι](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot για C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Περιπέτεια Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## Λήψη Βοήθειας
Εάν κολλήσετε ή έχετε ερωτήσεις σχετικά με την κατασκευή εφαρμογών ΤΝ, συμμετάσχετε με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις σχετικά με το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα.
Αν κολλήσετε ή έχετε ερωτήσεις σχετικά με την κατασκευή εφαρμογών AI. Συμμετάσχετε με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις για το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Εάν έχετε σχόλια για το προϊόν ή λάθη κατά την κατασκευή επισκεφθείτε:
Αν έχετε σχόλια προϊόντος ή σφάλματα κατά την κατασκευή, επισκεφθείτε:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Επιπλέον Συμβουλές Μάθησης
- Επανεξετάστε τα σημειωματάρια μετά από κάθε μάθημα για καλύτερη κατανόηση.
- Εξασκηθείτε στην υλοποίηση αλγορίθμων μόνοι σας.
- Εξερευνήστε πραγματικά σύνολα δεδομένων χρησιμοποιώντας τις έννοιες που μάθατε.
---
<!-- 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). Ενώ προσπαθούμε για ακρίβεια, παρακαλούμε να λάβετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του αποτελεί την αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική μετάφραση από άνθρωπο. Δεν φέρουμε καμία ευθύνη για τυχόν παρερμηνείες ή λανθασμένες εντυπώσεις που προκύπτουν από τη χρήση αυτής της μετάφρασης.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "sv"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T21:40:10+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T09:28:41+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "sv"
},
@ -90,8 +90,8 @@
"language_code": "sv"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T21:06:20+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:29:50+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "sv"
},
@ -186,8 +186,8 @@
"language_code": "sv"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T21:53:40+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T09:30:14+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "sv"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "sv"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T09:20:15+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "sv"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T21:54:42+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "sv"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T09:20:22+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "sv"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T21:52:12+00:00",
@ -540,8 +552,8 @@
"language_code": "sv"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T08:23:05+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T09:28:34+00:00",
"source_file": "README.md",
"language_code": "sv"
},

@ -2,15 +2,17 @@
## Instruktioner
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.
## Bedömningskriterier
| Kriterier | Exemplariskt | Tillräckligt | Behöver förbättras |
| --------- | ------------ | ------------ | ------------------ |
| | 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 |
| Kriterium | Föredömligt | Tillräckligt | Behöver Förbättras |
| -------- | --------- | -------- | ----------------- |
| | 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.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,124 +1,137 @@
# Bygg en regressionsmodell med Scikit-learn: regression på fyra sätt
![Infografik om linjär vs polynomisk regression](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> 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.
![Linear vs polynomial regression infographic](../../../../translated_images/sv/linear-polynomial.5523c7cb6576ccab.webp)
> Informationsgrafik av [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
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.
[![ML för nybörjare - Förstå linjär regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](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.
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](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`.
>
>![beräkna lutningen](../../../../2-Regression/3-Linear/images/slope.png)
>
> 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.
>
>![slutför ekvationen](../../../../2-Regression/3-Linear/images/calculation.png)
>
> 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`.
>
>![calculate the slope](../../../../translated_images/sv/slope.f3c9d5910ddbfcf9.webp)
>
> 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.
>
>![complete the equation](../../../../translated_images/sv/calculation.a209813050a1ddb1.webp)
>
> 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
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> 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:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
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
[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
[![ML för nybörjare - Söka efter korrelation: Nyckeln till linjär regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](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:
<img alt="Average price by month" src="../../../../translated_images/sv/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="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:
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/sv/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="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`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
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()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/sv/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="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:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Bar graph of price vs variety" src="../../../../translated_images/sv/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Stapeldiagram av pris vs sort" src="../../../../translated_images/sv/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Låt oss för tillfället fokusera endast på en pumpasort, 'pie type', och se vilken effekt datumet har på priset:
Låt oss för tillfället fokusera endast på en pumpart, 'pie type', och se vilken effekt datumet har på priset:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Spridningsdiagram av Pris vs. Dag på året" src="../../../../translated_images/sv/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="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
[![ML för nybörjare - Linjär och polynomisk regression med Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML för nybörjare - Linjär och polynomisk regression med Scikit-learn")
[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](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)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
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:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
<img alt="Linr regression" src="../../../../translated_images/sv/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/sv/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Polynomregression
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
@ -243,34 +257,34 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
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:
<img alt="Polynomregression" src="../../../../translated_images/sv/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/sv/poly-results.ee587348f0f1f60b.webp" width="50%" />
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**.
[![ML för nybörjare - Kategoriska funktioner med linjär regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML för nybörjare - Kategoriska funktioner med linjär regression")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](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:
<img alt="Medelpris per sort" src="../../../../translated_images/sv/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="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:
@ -289,14 +303,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
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)
# setup and train the pipeline
# konfigurera och träna pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# förutsäg resultat för testdata
pred = pipeline.predict(X_test)
# calculate MSE and determination
# beräkna MSE och förklaringsgrad
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
@ -338,28 +352,28 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
Detta bör ge oss den bästa determinationskoefficienten på nästan 97 % och MSE=2,23 (~8 % prediktionsfel).
Detta bör ge oss den bästa bestämningskoefficienten på nästan 97% och MSE=2.23 (~8% förutsägelsefel).
| Modell | MSE | Determination |
|--------|-----|---------------|
| `DayOfYear` Linjär | 2,77 (17,2 %) | 0,07 |
| `DayOfYear` Polynom | 2,73 (17,0 %) | 0,08 |
| `Variety` Linjär | 5,24 (19,7 %) | 0,77 |
| Alla funktioner Linjär | 2,84 (10,5 %) | 0,94 |
| Alla funktioner Polynom | 2,23 (8,25 %) | 0,97 |
| Modell | MSE | Bestämning |
|-------|-----|------------|
| `DayOfYear` Linjär | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polynom | 2.73 (17.0%) | 0.08 |
| `Variety` Linjär | 5.24 (19.7%) | 0.77 |
| Alla egenskaper Linjär | 2.84 (10.5%) | 0.94 |
| Alla egenskaper Polynom | 2.23 (8.25%) | 0.97 |
🏆 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.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,42 +1,42 @@
# Klassificerare för matlagning 2
# Kökklassificerare 2
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.
## [Förtest-quiz](https://ff-quizzes.netlify.app/en/ml/)
## [Förföreläsningsquiz](https://ff-quizzes.netlify.app/en/ml/)
### Förkunskaper
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):
![ML-karta från Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> 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.
![ML Map from Scikit-learn](../../../../translated_images/sv/map.e963a6a51349425a.webp)
> 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ä
1. Dela upp din tränings- och testdata:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## Linear SVC-klassificerare
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.
1. Börja med en Linear SVC:
```python
C = 10
# Create different classifiers.
# Skapa olika klassificerare.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
@ -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.
### Övning - tillämpa K-Neighbors-klassificeraren
### Övning - applicera K-Neighbors-klassificeraren
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.
## [Eftertest-quiz](https://ff-quizzes.netlify.app/en/ml/)
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## Granskning & Självstudier
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.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# Bygg klassificeringsmodell\n"
]
},
{
"cell_type": "code",
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\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"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-06T14:42:22+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "sv"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# Bygg Fler Klassificeringsmodeller\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,8 +116,8 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
@ -146,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -261,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\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"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-06T14:42:52+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "sv"
}
},
"nbformat": 4,

@ -13,16 +13,26 @@
#### Stöds via GitHub Action (Automatiserat & Alltid Uppdaterat)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabiska](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgariska](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Kinesiska (Förenklad)](../zh-CN/README.md) | [Kinesiska (Traditionell, Hong Kong)](../zh-HK/README.md) | [Kinesiska (Traditionell, Macau)](../zh-MO/README.md) | [Kinesiska (Traditionell, Taiwan)](../zh-TW/README.md) | [Kroatiska](../hr/README.md) | [Tjeckiska](../cs/README.md) | [Danska](../da/README.md) | [Nederländska](../nl/README.md) | [Estniska](../et/README.md) | [Finska](../fi/README.md) | [Franska](../fr/README.md) | [Tyska](../de/README.md) | [Grekiska](../el/README.md) | [Hebreiska](../he/README.md) | [Hindi](../hi/README.md) | [Ungerska](../hu/README.md) | [Indonesiska](../id/README.md) | [Italienska](../it/README.md) | [Japanska](../ja/README.md) | [Kannada](../kn/README.md) | [Koreanska](../ko/README.md) | [Litauiska](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalesiska](../ne/README.md) | [Nigeriansk Pidgin](../pcm/README.md) | [Norska](../no/README.md) | [Persiska (Farsi)](../fa/README.md) | [Polska](../pl/README.md) | [Portugisiska (Brasilien)](../pt-BR/README.md) | [Portugisiska (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumänska](../ro/README.md) | [Ryska](../ru/README.md) | [Serbiska (Kyrilliska)](../sr/README.md) | [Slovakiska](../sk/README.md) | [Slovenska](../sl/README.md) | [Spanska](../es/README.md) | [Swahili](../sw/README.md) | [Svenska](./README.md) | [Tagalog (Filippinska)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thailändska](../th/README.md) | [Turkiska](../tr/README.md) | [Ukrainska](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamesiska](../vi/README.md)
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](./README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **Föredrar du att klona lokalt?**
> 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:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Detta ger dig allt du behöver för att slutföra kursen med en mycket snabbare nedladdning.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
@ -30,56 +40,56 @@
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
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.
![Learn with AI series](../../translated_images/sv/3.9b58fd8d6c373c20.webp)
# 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ärldens kulturer 🌍
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.
2. **Klona arkivet**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [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.
[![ML for beginners banner](../../translated_images/sv/ml-for-beginners-video-banner.63f694a100034bc6.webp)](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
**Gif av** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 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!
## Varje lektion inkluderar
## Varje lektion innehåller
- valfri sketchnote
- valfri kompletterande video
- valfri tilläggsvideo
- videogenomgång (endast vissa lektioner)
- [för-foreläsnings uppvärmningsquiz](https://ff-quizzes.netlify.app/en/ml/)
- [quiz inför lektionen](https://ff-quizzes.netlify.app/en/ml/)
- skriftlig lektion
- för projektbaserade lektioner, steg-för-steg guider för hur man bygger projektet
- för projektbaserade lektioner, steg-för-steg guider för att bygga projektet
- kunskapskontroller
- en utmaning
- kompletterande läsning
- uppgift
- [efter-foreläsningsquiz](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 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 |
| 15 | Utforska Nigerianska musiksmaker 🎧 | [Clustering](5-Clustering/README.md) | Utforska K-Means klustringsmetoden | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.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 |
| 15 | Utforska nigerianska musiksmaker 🎧 | [Clustering](5-Clustering/README.md) | Utforska K-Means klustringsmetoden | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.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
[![AZD för nybörjare](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI för nybörjare](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP för nybörjare](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI-agenter för nybörjare](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP för Nybörjare](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents för Nybörjare](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Generativ AI Serie
[![Generativ AI för nybörjare](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
### Generativ AI-serie
[![Generativ AI för Nybörjare](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generativ AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generativ AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generativ AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-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
[![ML för nybörjare](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science för nybörjare](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI för nybörjare](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Cybersäkerhet för nybörjare](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Webbutveckling för nybörjare](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT för nybörjare](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR-utveckling för nybörjare](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
### Kärnlärande
[![ML för Nybörjare](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science för Nybörjare](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI för Nybörjare](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Cybersäkerhet för Nybörjare](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Webbutveckling för Nybörjare](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT för Nybörjare](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR-utveckling för Nybörjare](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot-serien
[![Copilot för AI samprogrammering](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
### Copilot-serie
[![Copilot för AI Samprogrammering](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot för C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot-äventyr](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## Få hjälp
## Få Hjälp
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.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Om du har produktfeedback eller hittar fel vid byggande, besök:
Om du har produktfeedback eller hittar fel vid utveckling, besök:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Ytterligare Studietips
- 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.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "th"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T21:40:03+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T09:25:36+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "th"
},
@ -90,8 +90,8 @@
"language_code": "th"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T21:05:15+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:26:37+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "th"
},
@ -186,8 +186,8 @@
"language_code": "th"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T21:53:19+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T09:26:59+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "th"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "th"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T09:19:52+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "th"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T21:54:39+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "th"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T09:20:10+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "th"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T21:51:46+00:00",
@ -540,8 +552,8 @@
"language_code": "th"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T08:21:10+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T09:25:30+00:00",
"source_file": "README.md",
"language_code": "th"
},

@ -1,16 +1,18 @@
# สำรวจเครื่องมือ Responsible AI Toolbox
# สำรวจกล่องเครื่องมือ Responsible AI
## คำแนะนำ
ในบทเรียนนี้ คุณได้เรียนรู้เกี่ยวกับ Responsible AI Toolbox ซึ่งเป็น "โครงการโอเพนซอร์สที่ขับเคลื่อนโดยชุมชน เพื่อช่วยนักวิทยาศาสตร์ข้อมูลวิเคราะห์และปรับปรุงระบบ AI" สำหรับงานนี้ ให้สำรวจหนึ่งใน [notebooks](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) ของ RAI Toolbox และรายงานผลการค้นพบของคุณในรูปแบบเอกสารหรือการนำเสนอ
ในบทเรียนนี้คุณได้เรียนรู้เกี่ยวกับ Responsible AI Toolbox ซึ่งเป็น "โครงการโอเพนซอร์สที่ขับเคลื่อนโดยชุมชนเพื่อช่วยนักวิทยาศาสตร์ข้อมูลวิเคราะห์และปรับปรุงระบบ AI" สำหรับงานนี้ ให้สำรวจหนึ่งใน [สมุดโน้ต](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) ของ RAI Toolbox และรายงานผลการค้นพบของคุณในเอกสารหรือการนำเสนอ
## เกณฑ์การประเมิน
| เกณฑ์ | ยอดเยี่ยม | เพียงพอ | ต้องปรับปรุง |
| เกณฑ์ | ดีเลิศ | พอใช้ | ต้องปรับปรุง |
| -------- | --------- | -------- | ----------------- |
| | มีการนำเสนอเอกสารหรือสไลด์ที่พูดถึงระบบของ Fairlearn, notebook ที่ถูกใช้งาน และข้อสรุปที่ได้จากการใช้งาน | มีการนำเสนอเอกสารแต่ไม่มีข้อสรุป | ไม่มีการนำเสนอเอกสาร |
| | นำเสนอเอกสารหรือการนำเสนอแบบ PowerPoint ที่พูดถึงระบบของ Fairlearn สมุดโน้ตที่ได้รัน และข้อสรุปที่ได้จากการรัน | นำเสนอเอกสารโดยไม่มีข้อสรุป | ไม่ได้นำเสนอเอกสาร |
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาด้วยปัญญาประดิษฐ์ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความคลาดเคลื่อนได้ เอกสารต้นฉบับในภาษาดั้งเดิมถือเป็นแหล่งข้อมูลที่ถูกต้องและน่าเชื่อถือที่สุด สำหรับข้อมูลที่สำคัญ โปรดใช้บริการแปลโดยผู้เชี่ยวชาญมนุษย์ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดใดๆ ที่เกิดจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,125 +1,136 @@
# สร้างโมเดลการถดถอยด้วย Scikit-learn: การถดถอย 4 วิธี
# สร้างโมเดลการถดถอยโดยใช้ Scikit-learn: การถดถอยสี่วิธี
![อินโฟกราฟิกการถดถอยเชิงเส้นและพหุนาม](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> อินโฟกราฟิกโดย [Dasani Madipalli](https://twitter.com/dasani_decoded)
## หมายเหตุสำหรับผู้เริ่มต้น
การถดถอยเชิงเส้นถูกใช้เมื่อเราต้องการทำนาย **ค่าตัวเลข** (เช่น ราคาบ้าน อุณหภูมิ หรือยอดขาย)
มันทำงานโดยการหาค่าเส้นตรงที่เป็นตัวแทนความสัมพันธ์ระหว่างคุณลักษณะป้อนเข้าและผลลัพธ์
ในบทเรียนนี้ เราจะมุ่งเน้นที่การเข้าใจแนวคิดก่อนที่จะสำรวจเทคนิคการถดถอยขั้นสูงเพิ่มเติม
![Linear vs polynomial regression infographic](../../../../translated_images/th/linear-polynomial.5523c7cb6576ccab.webp)
> อินโฟกราฟิกโดย [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [แบบทดสอบก่อนเรียน](https://ff-quizzes.netlify.app/en/ml/)
> ### [บทเรียนนี้มีในภาษา R ด้วย!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [บทเรียนนี้มีในภาษา R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### บทนำ
จนถึงตอนนี้ คุณได้สำรวจว่าการถดถอยคืออะไรโดยใช้ตัวอย่างข้อมูลจากชุดข้อมูลราคาฟักทองที่เราจะใช้ตลอดบทเรียนนี้ คุณยังได้สร้างภาพข้อมูลด้วย Matplotlib แล้ว
จนถึงตอนนี้คุณได้สำรวจความหมายของการถดถอยด้วยข้อมูลตัวอย่างที่รวบรวมมาจากชุดข้อมูลราคาฟักทองที่เราจะใช้ตลอดบทเรียนนี้แล้ว คุณยังได้ทำการสร้างภาพด้วย Matplotlib
ตอนนี้คุณพร้อมที่จะเจาะลึกเกี่ยวกับการถดถอยสำหรับการเรียนรู้ของเครื่อง (ML) การสร้างภาพช่วยให้คุณเข้าใจข้อมูล แต่พลังที่แท้จริงของการเรียนรู้ของเครื่องมาจาก _การฝึกโมเดล_ โมเดลถูกฝึกด้วยข้อมูลในอดีตเพื่อจับความสัมพันธ์ของข้อมูลโดยอัตโนมัติ และช่วยให้คุณคาดการณ์ผลลัพธ์สำหรับข้อมูลใหม่ที่โมเดลไม่เคยเห็นมาก่อน
ตอนนี้คุณพร้อมที่จะเจาะลึกการถดถอยสำหรับ ML แล้ว ในขณะที่การสร้างภาพช่วยให้คุณเข้าใจข้อมูลได้ แต่พลังที่แท้จริงของการเรียนรู้ของเครื่องมาจากการ _ฝึกโมเดล_ โมเดลถูกฝึกด้วยข้อมูลในอดีตเพื่อจับความสัมพันธ์ของข้อมูลโดยอัตโนมัติ และช่วยให้คุณทำนายผลลัพธ์สำหรับข้อมูลใหม่ที่โมเดลไม่เคยเห็นมาก่อน
ในบทเรียนนี้ คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการถดถอยสองประเภท: _การถดถอยเชิงเส้นพื้นฐาน_ และ _การถดถอยพหุนาม_ พร้อมกับคณิตศาสตร์บางส่วนที่อยู่เบื้องหลังเทคนิคเหล่านี้ โมเดลเหล่านี้จะช่วยให้เราคาดการณ์ราคาฟักทองตามข้อมูลอินพุตที่แตกต่างกัน
ในบทเรียนนี้ คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับการถดถอยสองประเภท: _การถดถอยเชิงเส้นพื้นฐาน_ และ _การถดถอยพหุนาม_ พร้อมกับคณิตศาสตร์เบื้องหลังเทคนิคเหล่านี้ โมเดลเหล่านี้จะช่วยให้เราทำนายราคาฟักทองขึ้นอยู่กับข้อมูลนำเข้าที่แตกต่างกัน
[![ML สำหรับผู้เริ่มต้น - เข้าใจการถดถอยเชิงเส้น](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML สำหรับผู้เริ่มต้น - เข้าใจการถดถอยเชิงเส้น")
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอสั้นเกี่ยวกับการถดถอยเชิงเส้น
> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอสั้นเกี่ยวกับการถดถอยเชิงเส้น
> ตลอดหลักสูตรนี้ เราสมมติว่าคุณมีความรู้ทางคณิตศาสตร์เพียงเล็กน้อย และพยายามทำให้เข้าใจง่ายสำหรับนักเรียนที่มาจากสาขาอื่น ดังนั้นโปรดสังเกตบันทึก 🧮 คำอธิบายภาพ และเครื่องมือการเรียนรู้อื่น ๆ เพื่อช่วยในการทำความเข้าใจ
> ตลอดหลักสูตรนี้ เราสมมติว่ามีความรู้คณิตศาสตร์ขั้นต่ำ และพยายามทำให้เรียนรู้ได้ง่ายสำหรับนักเรียนจากสาขาอื่น ดังนั้นดูบันทึก 🧮 คำอธิบายภาพ แผนภาพ และเครื่องมือช่วยเรียนรู้อื่นๆ เพื่อช่วยในการเข้าใจ
### ความรู้พื้นฐานที่ควรมี
### ข้อกำหนดเบื้องต้น
ตอนนี้คุณควรคุ้นเคยกับโครงสร้างของข้อมูลฟักทองที่เรากำลังตรวจสอบ คุณสามารถค้นหาข้อมูลนี้ที่โหลดไว้ล่วงหน้าและทำความสะอาดไว้ในไฟล์ _notebook.ipynb_ ของบทเรียนนี้ ในไฟล์นี้ ราคาฟักทองจะแสดงต่อบุชเชลใน DataFrame ใหม่ ตรวจสอบให้แน่ใจว่าคุณสามารถรันโน้ตบุ๊กเหล่านี้ในเคอร์เนลของ Visual Studio Code ได้
คุณน่าจะคุ้นเคยกับโครงสร้างข้อมูลฟักทองที่เรากำลังตรวจสอบแล้ว คุณสามารถพบข้อมูลที่เตรียมไว้ล่วงหน้าและทำความสะอาดไว้ในไฟล์ _notebook.ipynb_ ของบทเรียนนี้ ในไฟล์จะแสดงราคาฟักทองต่อบัชเชลในกรอบข้อมูลใหม่ ตรวจสอบให้แน่ใจว่าคุณสามารถรันโน้ตบุ๊กเหล่านี้ในเคอร์เนลของ Visual Studio Code ได้
### การเตรียมตัว
เพื่อเป็นการทบทวน คุณกำลังโหลดข้อมูลนี้เพื่อถามคำถามเกี่ยวกับข้อมูล เช่น:
- ช่วงเวลาใดที่ดีที่สุดในการซื้อฟักทอง?
- ราคาที่คาดหวังสำหรับฟักทองขนาดเล็กหนึ่งกล่องคือเท่าไร?
- ควรซื้อฟักทองในตะกร้าครึ่งบุชเชลหรือในกล่องขนาด 1 1/9 บุชเชล?
เพื่อเตือนความจำ คุณกำลังโหลดข้อมูลนี้เพื่อที่จะตั้งคำถามเกี่ยวกับมัน
มาดำดิ่งลงไปในข้อมูลนี้กันต่อ
- เวลาไหนที่ดีที่สุดในการซื้อฟักทอง?
- ฉันคาดหวังราคาของกล่องฟักทองขนาดเล็กได้เท่าไหร่?
- ควรซื้อฟักทองในตะกร้าครึ่งบัชเชลหรือในกล่อง 1 1/9 บัชเชล?
ลองขุดลึกลงไปในข้อมูลนี้กันต่อ
ในบทเรียนก่อน คุณได้สร้าง Pandas DataFrame และเติมข้อมูลบางส่วนจากชุดข้อมูลต้นฉบับ โดยการปรับมาตรฐานราคาต่อบุชเชล อย่างไรก็ตาม คุณสามารถรวบรวมข้อมูลได้เพียงประมาณ 400 จุดข้อมูล และเฉพาะในช่วงฤดูใบไม้ร่วงเท่านั้น
ในบทเรียนที่แล้ว คุณได้สร้างกรอบข้อมูล Pandas และเติมข้อมูลบางส่วนจากชุดข้อมูลต้นฉบับ โดยปรับราคาต่อบัชเชล แต่ด้วยวิธีนี้ คุณได้รวบรวมข้อมูลเพียงประมาณ 400 จุดข้อมูลและเฉพาะในเดือนฤดูใบไม้ร่วงเท่านั้น
ลองดูข้อมูลที่โหลดไว้ล่วงหน้าในโน้ตบุ๊กที่มาพร้อมกับบทเรียนนี้ ข้อมูลถูกโหลดไว้ล่วงหน้าและมีการสร้างกราฟกระจายเบื้องต้นเพื่อแสดงข้อมูลตามเดือน บางทีเราอาจได้รายละเอียดเพิ่มเติมเกี่ยวกับลักษณะของข้อมูลโดยการทำความสะอาดข้อมูลเพิ่มเติม
ดูข้อมูลที่เราโหลดไว้ล่วงหน้าในโน้ตบุ๊กที่แนบมากับบทเรียนนี้ ข้อมูลนี้ถูกโหลดไว้ล่วงหน้าและสร้างแผนภูมิแบบกระจาย (scatterplot) แรกเพื่อนำเสนอข้อมูลเดือน อาจจะได้รับรายละเอียดมากขึ้นเกี่ยวกับลักษณะของข้อมูลโดยการทำความสะอาดเพิ่มเติม
## เส้นการถดถอยเชิงเส้น
ตามที่คุณได้เรียนรู้ในบทเรียนที่ 1 เป้าหมายของการถดถอยเชิงเส้นคือการวาดเส้นเพื่อ:
อย่างที่คุณได้เรียนในบทเรียนที่ 1 เป้าหมายของการฝึกการถดถอยเชิงเส้นคือสามารถวาดเส้นเพื่อ:
- **แสดงความสัมพันธ์ของตัวแปร** แสดงความสัมพันธ์ระหว่างตัวแปร
- **ทำนายผลลัพธ์** ทำนายตำแหน่งของจุดข้อมูลใหม่ที่สัมพันธ์กับเส้นนั้นได้อย่างแม่นยำ
โดยปกติสำหรับ **Least-Squares Regression** จะใช้วาดเส้นในลักษณะนี้ คำว่า “Least-Squares” หมายถึงกระบวนการลดข้อผิดพลาดรวมในโมเดลของเราให้ต่ำสุด สำหรับแต่ละจุดข้อมูล เราจะวัดระยะห่างในแนวดิ่ง (เรียกว่า residual) ระหว่างจุดจริงกับเส้นถดถอยของเรา
เรานำค่าระยะเหล่านี้มาทำกำลังสองด้วยสองเหตุผลหลัก:
- **แสดงความสัมพันธ์ของตัวแปร** แสดงความสัมพันธ์ระหว่างตัวแปร
- **ทำการคาดการณ์** คาดการณ์ตำแหน่งของจุดข้อมูลใหม่ในความสัมพันธ์กับเส้นนั้นอย่างแม่นยำ
1. **ขนาดไม่สนใจทิศทาง:** เราต้องการให้ข้อผิดพลาด -5 และ +5 มีน้ำหนักเท่ากัน การทำกำลังสองทำให้ค่าทั้งหมดเป็นบวก
โดยทั่วไป **Least-Squares Regression** จะใช้ในการวาดเส้นประเภทนี้ คำว่า 'least-squares' หมายถึงการนำจุดข้อมูลทั้งหมดรอบเส้นการถดถอยมายกกำลังสองและรวมเข้าด้วยกัน โดยอุดมคติแล้ว ผลรวมสุดท้ายควรมีค่าน้อยที่สุด เพราะเราต้องการข้อผิดพลาดที่น้อยที่สุด หรือ `least-squares`
2. **ลงโทษจุดแปลกปลอม:** การทำกำลังสองให้น้ำหนักมากกว่ากับข้อผิดพลาดที่ใหญ่กว่า จึงบังคับให้เส้นอยู่ใกล้กับจุดที่อยู่ห่างไกลมาก
เราทำเช่นนี้เพราะเราต้องการสร้างโมเดลเส้นที่มีระยะทางสะสมจากจุดข้อมูลทั้งหมดน้อยที่สุด นอกจากนี้ เรายังยกกำลังสองก่อนรวมกันเพราะเราสนใจขนาดของค่ามากกว่าทิศทาง
จากนั้นเราจะนำค่ากำลังสองทั้งหมดมารวมกัน เป้าหมายของเราคือหาค่าเส้นที่ทำให้ผลรวมต่ำที่สุด (ค่าต่ำสุด) — ซึ่งทำให้ได้ชื่อว่า "Least-Squares"
> **🧮 แสดงคณิตศาสตร์ให้ฉันดู**
>
> เส้นนี้เรียกว่า _เส้นที่เหมาะสมที่สุด_ สามารถแสดงได้ด้วย [สมการ](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`
>
>![คำนวณความชัน](../../../../2-Regression/3-Linear/images/slope.png)
>
> ขั้นแรก คำนวณความชัน `b` อินโฟกราฟิกโดย [Jen Looper](https://twitter.com/jenlooper)
>
> กล่าวอีกนัยหนึ่ง และอ้างอิงจากคำถามดั้งเดิมของข้อมูลฟักทอง: "คาดการณ์ราคาฟักทองต่อบุชเชลตามเดือน" `X` จะหมายถึงราคา และ `Y` จะหมายถึงเดือนที่ขาย
>
>![สมการที่สมบูรณ์](../../../../2-Regression/3-Linear/images/calculation.png)
>
> คำนวณค่าของ Y ถ้าคุณจ่ายประมาณ $4 นั่นอาจเป็นเดือนเมษายน! อินโฟกราฟิกโดย [Jen Looper](https://twitter.com/jenlooper)
>
> คณิตศาสตร์ที่คำนวณเส้นต้องแสดงความชันของเส้น ซึ่งขึ้นอยู่กับจุดตัดแกนด้วย หรือค่าที่ `Y` อยู่เมื่อ `X = 0`
>
> คุณสามารถดูวิธีการคำนวณค่าต่าง ๆ เหล่านี้ได้ที่เว็บไซต์ [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) และเยี่ยมชม [เครื่องคำนวณ Least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) เพื่อดูว่าค่าต่าง ๆ ส่งผลต่อเส้นอย่างไร
> `X` คือ 'ตัวแปรอธิบาย' และ `Y` คือ 'ตัวแปรตาม' ความชันของเส้นคือ `b` และ `a` คือจุดตัดแกนนอน แสดงถึงค่าของ `Y` เมื่อ `X = 0`
>
>![calculate the slope](../../../../translated_images/th/slope.f3c9d5910ddbfcf9.webp)
>
> เริ่มต้นด้วยการคำนวณความชัน `b` อินโฟกราฟิกโดย [Jen Looper](https://twitter.com/jenlooper)
>
> ในอีกทางหนึ่ง และอ้างอิงคำถามต้นฉบับของข้อมูลฟักทองของเรา: "ทำนายราคาฟักทองต่อบัชเชลตามเดือน" `X` จะหมายถึงราคา และ `Y` จะหมายถึงเดือนที่ขาย
>
>![complete the equation](../../../../translated_images/th/calculation.a209813050a1ddb1.webp)
>
> คำนวณค่าของ Y ถ้าคุณจ่ายประมาณ 4 ดอลลาร์ ต้องเป็นเดือนเมษายนแน่ๆ อินโฟกราฟิกโดย [Jen Looper](https://twitter.com/jenlooper)
>
> คณิตศาสตร์ที่ใช้คำนวณเส้นต้องแสดงความชันของเส้น ซึ่งขึ้นอยู่กับจุดตัดหรือที่ที่ `Y` อยู่เมื่อ `X = 0`
>
> คุณสามารถศึกษาวิธีการคำนวณค่าสำหรับค่าต่างๆ เหล่านี้ได้ที่เว็บไซต์ [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) และเยี่ยมชม [เครื่องคิดเลข Least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) เพื่อดูว่าค่าตัวเลขต่างๆ ส่งผลต่อเส้นอย่างไร
## ความสัมพันธ์
อีกคำหนึ่งที่ควรเข้าใจคือ **ค่าสัมประสิทธิ์ความสัมพันธ์** ระหว่างตัวแปร X และ Y ที่กำหนด การใช้กราฟกระจาย คุณสามารถมองเห็นค่าสัมประสิทธิ์นี้ได้อย่างรวดเร็ว กราฟที่มีจุดข้อมูลกระจายเป็นเส้นเรียบมีความสัมพันธ์สูง แต่กราฟที่มีจุดข้อมูลกระจายไปทั่วระหว่าง X และ Y มีความสัมพันธ์ต่ำ
อีกคำหนึ่งที่ต้องเข้าใจคือ **สัมประสิทธิ์สหสัมพันธ์** ระหว่างตัวแปร X และ Y ที่กำหนด โดยใช้ scatterplot คุณสามารถเห็นสัมประสิทธิ์นี้ได้อย่างรวดเร็ว กราฟที่มีจุดกระจายเรียงเป็นเส้นตรงจะมีความสัมพันธ์สูง แต่กราฟที่จุดกระจายกระจัดกระจายไปทั่วระหว่าง X และ Y จะมีความสัมพันธ์ต่ำ
โมเดลการถดถอยเชิงเส้นที่ดีจะเป็นโมเดลที่มีค่าสัมประสิทธิ์ความสัมพันธ์สูง (ใกล้ 1 มากกว่า 0) โดยใช้วิธี Least-Squares Regression พร้อมเส้นการถดถอย
โมเดลการถดถอยเชิงเส้นที่ดีจะต้องมีสัมประสิทธิ์สหสัมพันธ์สูง (ใกล้ 1 มากกว่า 0) โดยใช้วิธี Least-Squares Regression กับเส้นถดถอย
✅ รันโน้ตบุ๊กที่มาพร้อมกับบทเรียนนี้และดูกราฟกระจายของข้อมูลเดือนกับราคา ข้อมูลที่เชื่อมโยงเดือนกับราคาสำหรับการขายฟักทองดูเหมือนจะมีความสัมพันธ์สูงหรือต่ำตามการตีความด้วยสายตาของคุณ? ความสัมพันธ์นั้นเปลี่ยนไปหรือไม่หากคุณใช้มาตรการที่ละเอียดกว่า เช่น *วันในปี* (เช่น จำนวนวันตั้งแต่ต้นปี)?
✅ รันโน้ตบุ๊กที่แนบมากับบทเรียนนี้และดูกราฟกระจายข้อมูลระหว่างเดือนกับราคา ข้อมูลที่เชื่อมโยงเดือนกับราคาขายในฟักทองดูเหมือนจะมีความสัมพันธ์สูงหรือต่ำ ตามการตีความด้วยสายตาของคุณจากแผนภูมิการกระจาย? นั่นจะเปลี่ยนไปไหมถ้าคุณใช้มาตรวัดที่ละเอียดขึ้นแทน `เดือน` เช่น *วันของปี* (จำนวนวันตั้งแต่ต้นปี)?
ในโค้ดด้านล่าง เราจะสมมติว่าเราได้ทำความสะอาดข้อมูลแล้ว และได้ DataFrame ที่เรียกว่า `new_pumpkins` ซึ่งมีลักษณะดังนี้:
ในโค้ดด้านล่างนี้ เราจะสมมติว่าเราได้ทำความสะอาดข้อมูลแล้ว และได้กรอบข้อมูลชื่อ `new_pumpkins` ที่คล้ายกับต่อไปนี้:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> โค้ดสำหรับทำความสะอาดข้อมูลมีอยู่ใน [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) เราได้ทำตามขั้นตอนการทำความสะอาดเดียวกับในบทเรียนก่อน และได้คำนวณคอลัมน์ `DayOfYear` โดยใช้สูตรต่อไปนี้:
> โค้ดสำหรับทำความสะอาดข้อมูลมีให้ใน [`notebook.ipynb`](notebook.ipynb) เราได้ทำขั้นตอนการทำความสะอาดเหมือนในบทเรียนก่อน และคำนวณคอลัมน์ `DayOfYear` ด้วยนิพจน์ดังนี้:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
เมื่อคุณเข้าใจคณิตศาสตร์เบื้องหลังการถดถอยเชิงเส้นแล้ว ให้เราสร้างโมเดลการถดถอยเพื่อดูว่าเราสามารถทำนายได้หรือไม่ว่าฟักทองแบบแพ็คเกจใดจะมีราคาดีที่สุด ใครบางคนที่ซื้อฟักทองสำหรับงานฟักทองอาจต้องการข้อมูลนี้เพื่อเพิ่มประสิทธิภาพในการซื้อแพ็คเกจฟักทองสำหรับงานนั้น
เมื่อคุณเข้าใจคณิตศาสตร์เบื้องหลังการถดถอยเชิงเส้นแล้ว มาสร้างโมเดลการถดถอยเพื่อดูว่าเราสามารถคาดการณ์ได้หรือไม่ว่าชุดฟักทองใดจะมีราคาที่ดีที่สุดสำหรับฟักทอง ผู้ที่ซื้อฟักทองสำหรับแปลงฟักทองในวันหยุดอาจต้องการข้อมูลนี้เพื่อเพิ่มประสิทธิภาพการซื้อชุดฟักทองสำหรับแปลง
## การมองหาความสัมพันธ์
## การค้นหาความสัมพันธ์
[![ML สำหรับผู้เริ่มต้น - การมองหาความสัมพันธ์: กุญแจสู่การถดถอยเชิงเส้น](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML สำหรับผู้เริ่มต้น - การมองหาความสัมพันธ์: กุญแจสู่การถดถอยเชิงเส้น")
[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอสั้นเกี่ยวกับความสัมพันธ์
> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอสั้นเกี่ยวกับความสัมพันธ์
จากบทเรียนก่อน คุณอาจเห็นว่าราคาเฉลี่ยสำหรับแต่ละเดือนมีลักษณะดังนี้:
จากบทเรียนก่อน คุณน่าจะเห็นว่าราคากลางในแต่ละเดือนดูเหมือนจะเป็นแบบนี้:
<img alt="ราคาเฉลี่ยตามเดือน" src="../../../../translated_images/th/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="Average price by month" src="../../../../translated_images/th/barchart.a833ea9194346d76.webp" width="50%"/>
สิ่งนี้ชี้ให้เห็นว่าควรมีความสัมพันธ์บางอย่าง และเราสามารถลองฝึกโมเดลการถดถอยเชิงเส้นเพื่อคาดการณ์ความสัมพันธ์ระหว่าง `Month` และ `Price` หรือระหว่าง `DayOfYear` และ `Price` นี่คือกราฟกระจายที่แสดงความสัมพันธ์หลัง:
ซึ่งบ่งชี้ว่าควรมีความสัมพันธ์บางอย่าง และเราสามารถลองฝึกโมเดลการถดถอยเชิงเส้นเพื่อทำนายความสัมพันธ์ระหว่าง `Month` กับ `Price` หรือระหว่าง `DayOfYear` กับ `Price` นี่คือกราฟกระจายที่แสดงความสัมพันธ์หลัง:
<img alt="กราฟกระจายของราคาเทียบกับวันในปี" src="../../../../translated_images/th/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/th/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
มาดูกันว่ามีความสัมพันธ์หรือไมโดยใช้ฟังก์ชัน `corr`:
มาลองดูว่ามีความสัมพันธ์ไมโดยใช้ฟังก์ชัน `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
ดูเหมือนว่าความสัมพันธ์จะค่อนข้างต่ำ -0.15 โดย `Month` และ -0.17 โดย `DayOfMonth` แต่ก็อาจมีความสัมพันธ์ที่สำคัญอื่น ๆ ดูเหมือนว่าจะมีคลัสเตอร์ราคาที่แตกต่างกันซึ่งสอดคล้องกับพันธุ์ฟักทองที่แตกต่างกัน เพื่อยืนยันสมมติฐานนี้ ลองพล็อตแต่ละหมวดหมู่ฟักทองโดยใช้สีที่แตกต่างกัน โดยการส่งพารามิเตอร์ `ax` ไปยังฟังก์ชัน `scatter` เราสามารถพล็อตจุดทั้งหมดในกราฟเดียวกัน:
ดูเหมือนว่าค่าความสัมพันธ์จะต่ำเล็กน้อย คือ -0.15 ตาม `Month` และ -0.17 ตาม `DayOfMonth` แต่ดูเหมือนจะมีความสัมพันธ์ที่สำคัญอีกอย่าง เพราะดูเหมือนว่าจะมีกลุ่มราคาต่างๆ ที่สอดคล้องกับพันธุ์ฟักทองต่างกัน เพื่อยืนยันสมมติฐานนี้ มาสร้างกราฟโดยแบ่งพันธุ์ฟักทองแต่ละชนิดด้วยสีต่างกัน โดยการส่งพารามิเตอร์ `ax` ให้ฟังก์ชัน `scatter` เพื่อลากจุดทั้งหมดในกราฟเดียวกัน:
```python
ax=None
@ -128,75 +139,75 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/th/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="กราฟกระจายของราคาเทียบกับวันในปี" src="../../../../translated_images/th/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
การตรวจสอบของเราชี้ให้เห็นว่าพันธุ์มีผลต่อราคามากกว่าวันที่ขาย เราสามารถเห็นสิ่งนี้ได้จากกราฟแท่ง:
การสืบค้นของเราชี้ว่าพันธุ์มีผลต่อราคามากกว่าวันที่ขายจริง เราสามารถเห็นได้ชัดในกราฟแท่ง:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Bar graph of price vs variety" src="../../../../translated_images/th/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="กราฟแท่งของราคาเทียบกับพันธุ์" src="../../../../translated_images/th/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
ให้เรามุ่งเน้นไปที่พันธุ์ฟักทองชนิดเดียวคือ 'pie type' และดูว่าผลของวันที่มีต่อราคาเป็นอย่างไร:
ขอให้เรามุ่งเน้นที่พันธุ์ฟักทอง 'ชนิดพาย' เท่านั้น และดูว่าวันมีผลต่อราคาอย่างไร:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="กราฟกระจายของราคาเทียบกับวันในปี" src="../../../../translated_images/th/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/th/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
หากเราคำนวณความสัมพันธ์ระหว่าง `Price` และ `DayOfYear` ยใช้ฟังก์ชัน `corr` ตอนนี้ เราจะได้ค่าประมาณ `-0.27` - ซึ่งหมายความว่าการฝึกโมเดลการคาดการณ์มีเหตุผล
ถ้าเราคำนวณค่าความสัมพันธ์ระหว่าง `Price` และ `DayOfYear` ด้วยฟังก์ชัน `corr` เราจะได้ค่าประมาณ `-0.27` — ซึ่งหมายความว่าการฝึกโมเดลทำนายเป็นความคิดที่ดี
> ก่อนการฝึกโมเดลการถดถอยเชิงเส้น สิ่งสำคัญคือต้องแน่ใจว่าข้อมูลของเราสะอาด การถดถอยเชิงเส้นไม่ทำงานได้ดีนักกับค่าที่ขาดหายไป ดังนั้นจึงสมควรที่จะลบเซลล์ว่างทั้งหมด:
> ก่อนฝึกโมเดลการถดถอยเชิงเส้น เราควรมั่นใจว่าข้อมูลสะอาดดี การถดถอยเชิงเส้นทำงานไม่ดีเมื่อมีค่าที่ขาดหายไป ดังนั้นจึงควรลบเซลล์ที่ว่างเปล่าออก
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
อีกทางเลือกคือเติมค่าที่ว่างเปล่าด้วยค่าเฉลี่ยจากคอลัมน์นั้น
อีกวิธีหนึ่งคือเติมค่าที่ว่างเปล่าด้วยค่ามeanจากคอลัมน์ที่เกี่ยวข้อง
## การถดถอยเชิงเส้นแบบง่าย
## การถดถอยเชิงเส้นง่ายๆ
[![ML สำหรับผู้เริ่มต้น - การถดถอยเชิงเส้นและพหุนามด้วย Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML สำหรับผู้เริ่มต้น - การถดถอยเชิงเส้นและพหุนามด้วย Scikit-learn")
[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอสั้นเกี่ยวกับการถดถอยเชิงเส้นและพหุนาม
> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอสั้นเกี่ยวกับการถดถอยเชิงเส้นและพหุนาม
ในการฝึกโมเดลการถดถอยเชิงเส้น เราจะใช้ไลบรารี **Scikit-learn**
เพื่อฝึกโมเดลการถดถอยเชิงเส้นของเรา เราจะใช้ไลบรารี **Scikit-learn**
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
เริ่มต้นด้วยการแยกค่าข้อมูลอินพุต (features) และผลลัพธ์ที่คาดหวัง (label) ออกเป็นอาเรย์ numpy แยกกัน:
เราเริ่มจากแยกค่าป้อนเข้า (ลักษณะ) และผลลัพธ์ที่คาดหวัง (ป้ายกำกับ) ออกเป็นอาเรย์ numpy แยกกัน:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> โปรดสังเกตว่าเราต้องใช้ `reshape` กับข้อมูลนำเข้าเพื่อให้แพ็คเกจ Linear Regression เข้าใจอย่างถูกต้อง โมเดลการถดถอยเชิงเส้นต้องการอาเรย์ 2 มิติเป็นอินพุต ซึ่งแต่ละแถวแทนเวกเตอร์ของลักษณะนำเข้า กรณีของเรา มีอินพุตเพียงตัวเดียวจึงต้องใช้อาเรย์รูปแบบ N×1 โดยที่ N คือขนาดชุดข้อมูล
> โปรดทราบว่าเราต้องใช้ `reshape` กับข้อมูลอินพุตเพื่อให้แพ็กเกจ Linear Regression เข้าใจได้อย่างถูกต้อง Linear Regression คาดหวังอาเรย์ 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`:
สุดท้าย การฝึกโมเดลการถดถอยเชิงเส้นจริงใช้เพียงสองบรรทัดโค้ด เราสร้างอ็อบเจ็กต์ `LinearRegression` และใช้เมธอด `fit` เพื่อฟิตโมเดลกับข้อมูลของเรา:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
ออบเจ็กต์ `LinearRegression` หลังจาก `fit` จะมีสัมประสิทธิ์ทั้งหมดของการถดถอย ซึ่งสามารถเข้าถึงได้โดยใช้คุณสมบัติ `.coef_` ในกรณีของเรา มีเพียงสัมประสิทธิ์เดียว ซึ่งควรอยู่ที่ประมาณ `-0.017` ซึ่งหมายความว่าราคาดูเหมือนจะลดลงเล็กน้อยตามเวลา แต่ไม่มากนัก ประมาณ 2 เซนต์ต่อวัน นอกจากนี้เรายังสามารถเข้าถึงจุดตัดแกน Y ของการถดถอยได้โดยใช้ `lin_reg.intercept_` - ซึ่งจะอยู่ที่ประมาณ `21` ในกรณีของเรา ซึ่งบ่งชี้ถึงราคาต้นปี
วัตถุ `LinearRegression` หลังจากการ `fit` จะเก็บค่าค่าสัมประสิทธิ์ทั้งหมดของการถดถอยไว้ ซึ่งสามารถเข้าถึงได้โดยใช้สมบัติ `.coef_` ในกรณีนี้มีเพียงค่าค่าสัมประสิทธิ์เดียว ซึ่งควรอยู่ในช่วงประมาณ `-0.017` ซึ่งหมายความว่าราคาดูเหมือนจะลดลงเล็กน้อยตามเวลา แต่อย่ามากนัก ประมาณ 2 เซนต์ต่อวัน เรายังสามารถเข้าถึงจุดตัดของการถดถอยกับแกน Y ได้โดยใช้ `lin_reg.intercept_` ซึ่งจะอยู่ที่ประมาณ `21` ในกรณีนี้ บ่งบอกถึงราคาที่ต้นปี
เพื่อดูว่าโมเดลของเรามีความแม่นยำเพียงใด เราสามารถคาดการณ์ราคาบนชุดข้อมูลทดสอบ และวัดว่าการคาดการณ์ของเราใกล้เคียงกับค่าที่คาดหวังเพียงใด สิ่งนี้สามารถทำได้โดยใช้เมตริก Mean Square Error (MSE) ซึ่งเป็นค่าเฉลี่ยของผลต่างกำลังสองทั้งหมดระหว่างค่าที่คาดหวังและค่าที่คาดการณ์
เพื่อดูว่ารุ่นของเรามีความแม่นยำแค่ไหน เราสามารถทำนายราคาบนชุดข้อมูลทดสอบ จากนั้นวัดความใกล้เคียงระหว่างการทำนายกับค่าที่คาดหวัง ซึ่งสามารถทำได้โดยใช้เมตริก mean square error (MSE) คือค่าเฉลี่ยของความแตกต่างกำลังสองทั้งหมดระหว่างค่าที่คาดหวังและค่าแบบทำนาย
```python
pred = lin_reg.predict(X_test)
@ -204,15 +215,17 @@ pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
```
ข้อผิดพลาดของเราดูเหมือนจะอยู่ที่ประมาณ 2 จุด ซึ่งคิดเป็น ~17% ไม่ค่อยดีนัก ตัวบ่งชี้อีกตัวหนึ่งของคุณภาพโมเดลคือ **ค่าสัมประสิทธิ์การกำหนด** ซึ่งสามารถหาได้ดังนี้:
ความผิดพลาดของเราดูเหมือนจะอยู่ประมาณ 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 ซึ่งค่อนข้างต่ำ
เรายังสามารถวาดกราฟข้อมูลทดสอบพร้อมกับเส้นถดถอยเพื่อดูว่าการถดถอยทำงานอย่างไรในกรณีของเรา:
```python
plt.scatter(X_test,y_test)
@ -221,19 +234,19 @@ plt.plot(X_test,pred)
<img alt="Linear regression" src="../../../../translated_images/th/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## การถดถอยเชิงพหุนาม
## การถดถอยแบบพหุนาม
อีกประเภทหนึ่งของการถดถอยเชิงเส้นคือการถดถอยเชิงพหุนาม บางครั้งความสัมพันธ์ระหว่างตัวแปรอาจเป็นเชิงเส้น เช่น ยิ่งฟักทองมีปริมาตรมาก ราคาก็ยิ่งสูงขึ้น แต่บางครั้งความสัมพันธ์เหล่านี้ไม่สามารถวาดเป็นระนาบหรือเส้นตรงได้
อีกประเภทหนึ่งของการถดถอยเชิงเส้นคือ การถดถอยแบบพหุนาม (Polynomial Regression) ในขณะที่บางครั้งมีความสัมพันธ์เชิงเส้นระหว่างตัวแปร — เช่น ลูกฟักทองที่มีปริมาตรมากกว่าจะมีราคาสูงกว่า — บางครั้งความสัมพันธ์เหล่านี้ไม่สามารถพล็อตเป็นระนาบหรือตรงได้
[ตัวอย่างเพิ่มเติม](https://online.stat.psu.edu/stat501/lesson/9/9.8) ของข้อมูลที่สามารถใช้การถดถอยเชิงพหุนาม
นี่คือตัวอย่างเพิ่มเติมบางส่วน [some more examples](https://online.stat.psu.edu/stat501/lesson/9/9.8) ของข้อมูลที่สามารถใช้การถดถอยแบบพหุนามได้
ลองดูความสัมพันธ์ระหว่างวันที่และราคาอีกครั้ง กราฟกระจายนี้ดูเหมือนควรจะวิเคราะห์ด้วยเส้นตรงหรือไม่? ราคาสามารถผันผวนได้หรือไม่? ในกรณีนี้ คุณสามารถลองใช้การถดถอยเชิงพหุนาม
ลองพิจารณาความสัมพันธ์ระหว่าง Date กับ Price อีกครั้ง กราฟกระจายนี้ดูเหมือนว่าควรจะวิเคราะห์ด้วยเส้นตรงเท่านั้นหรือไม่? ราคาสามารถผันผวนได้หรือไม่? ในกรณีนี้ คุณสามารถลองใช้การถดถอยแบบพหุนามได้
✅ พหุนามเป็นนิพจน์ทางคณิตศาสตร์ที่อาจประกอบด้วยตัวแปรและสัมประสิทธิ์หนึ่งตัวหรือมากกว่า
✅ พหุนามคือสมการทางคณิตศาสตร์ที่อาจประกอบด้วยตัวแปรและสัมประสิทธิ์หนึ่งตัวหรือมากกว่านั้น
การถดถอยเชิงพหุนามสร้างเส้นโค้งเพื่อให้เหมาะสมกับข้อมูลที่ไม่เป็นเชิงเส้นได้ดียิ่งขึ้น ในกรณีของเรา หากเรารวมตัวแปร `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** คือชุดของ **estimators** ในกรณีของเรา เราจะสร้าง pipeline ที่เพิ่มคุณสมบัติพหุนามให้กับโมเดลของเรา และฝึกการถดถอย:
Scikit-learn มี API [pipeline](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
@ -244,36 +257,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
การใช้ `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> เราสามารถใช้พหุนามลำดับสูงกว่านี้ได้ถ้าต้องการ
Pipeline สามารถใช้งานได้ในลักษณะเดียวกับวัตถุ `LinearRegression` ดั้งเดิม เช่น เราสามารถ `fit` pipeline และใช้ `predict` เพื่อรับผลการทำนาย นี่คือกราฟที่แสดงข้อมูลทดสอบและเส้นโค้งประมาณค่า:
Pipeline สามารถใช้ในลักษณะเดียวกับวัตถุ `LinearRegression` เดิม เช่น เราสามารถ `fit` pipeline และจากนั้นใช้ `predict` เพื่อรับผลการทำนาย นี่คือกราฟที่แสดงข้อมูลทดสอบและเส้นโค้งประมาณค่า:
<img alt="Polynomial regression" src="../../../../translated_images/th/poly-results.ee587348f0f1f60b.webp" width="50%" />
การใช้การถดถอยเชิงพหุนาม เราสามารถลดค่า MSE และเพิ่มค่าสัมประสิทธิ์การกำหนดได้เล็กน้อย แต่ไม่มากนัก เราจำเป็นต้องพิจารณาคุณสมบัติอื่นๆ ด้วย!
การใช้การถดถอยแบบพหุนาม เราจะได้ค่า MSE ต่ำลงเล็กน้อยและค่า determination สูงขึ้นเล็กน้อยแต่ไม่มากนัก เราต้องพิจารณาคุณลักษณะอื่น ๆ ด้วย!
> คุณจะเห็นว่าราคาฟักทองต่ำสุดจะอยู่ประมาณวันฮาโลวีน คุณจะอธิบายเรื่องนี้ได้อย่างไร?
> คุณจะเห็นว่าราคาฟักทองต่ำสุดจะถูกสังเกตเห็นราว ๆ วันฮัลโลวีน คุณอธิบายสิ่งนี้ได้อย่างไร?
🎃 ยินดีด้วย คุณเพิ่งสร้างโมเดลที่สามารถช่วยทำนายราคาฟักทองสำหรับทำพาย คุณอาจทำขั้นตอนเดียวกันนี้ซ้ำสำหรับฟักทองทุกประเภท แต่จะค่อนข้างน่าเบื่อ มาเรียนรู้วิธีนำประเภทฟักทองมาพิจารณาในโมเดลของเรากันเถอะ!
🎃 ยินดีด้วย คุณเพิ่งสร้างโมเดลที่ช่วยทำนายราคาของฟักทองทำพาย คุณน่าจะทำขั้นตอนนี้ซ้ำสำหรับฟักทองชนิดอื่น ๆ แต่จะยุ่งยาก มาเรียนรู้วิธีที่จะรวมชนิดฟักทองเข้ากับโมเดลของเรากัน!
## คุณสมบัติประเภทหมวดหมู่
## คุณลักษณะเชิงหมวดหมู่
ในโลกอุดมคติ เราต้องการสามารถทำนายราคาสำหรับฟักทองหลากหลายประเภทโดยใช้โมเดลเดียว อย่างไรก็ตาม คอลัมน์ `Variety` นั้นแตกต่างจากคอลัมน์อย่าง `Month` เพราะมันมีค่าที่ไม่ใช่ตัวเลข คอลัมน์เหล่านี้เรียกว่า **หมวดหมู่**
ในโลกในอุดมคติ เราต้องการทำนายราคาในชนิดฟักทองต่าง ๆ โดยใช้โมเดลเดียวกัน อย่างไรก็ตาม คอลัมน์ `Variety` แตกต่างจากคอลัมน์อย่าง `Month` เพราะมีค่าที่ไม่ใช่ตัวเลข คอลัมน์แบบนี้เรียกว่า **เชิงหมวดหมู่ (categorical)**
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอสั้นๆ เกี่ยวกับการใช้คุณสมบัติประเภทหมวดหมู่
> 🎥 คลิกที่ภาพด้านบนเพื่อชมวิดีโอสั้น ๆ เรื่องการใช้คุณลักษณะเชิงหมวดหมู่
นี่คือกราฟที่แสดงให้เห็นว่าราคาเฉลี่ยขึ้นอยู่กับประเภทฟักทองอย่างไร:
นี่แสดงให้เห็นว่าราคาเฉลี่ยขึ้นอยู่กับชนิดฟักทองอย่างไร:
<img alt="Average price by variety" src="../../../../translated_images/th/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
เพื่อพิจารณาประเภทฟักทอง เราต้องแปลงมันเป็นรูปแบบตัวเลขก่อน หรือ **เข้ารหัส** มีหลายวิธีที่เราสามารถทำได้:
เพื่อพิจารณาชนิดฟักทอง เราต้องแปลงเป็นตัวเลขหรือ **เข้ารหัส (encode)** ก่อน มีวิธีทำได้หลายวิธี:
* การเข้ารหัสตัวเลขแบบง่ายจะสร้างตารางของประเภทฟักทองต่างๆ และแทนที่ชื่อประเภทฟักทองด้วยดัชนีในตารางนั้น วิธีนี้ไม่เหมาะสำหรับการถดถอยเชิงเส้น เพราะการถดถอยเชิงเส้นจะใช้ค่าตัวเลขของดัชนีจริงๆ และเพิ่มเข้าไปในผลลัพธ์โดยการคูณด้วยสัมประสิทธิ์ ในกรณีของเรา ความสัมพันธ์ระหว่างหมายเลขดัชนีและราคานั้นชัดเจนว่าไม่เป็นเชิงเส้น แม้ว่าเราจะจัดลำดับดัชนีในลักษณะเฉพาะก็ตาม
* **การเข้ารหัสแบบ one-hot** จะเปลี่ยนคอลัมน์ `Variety` เป็น 4 คอลัมน์ที่แตกต่างกัน หนึ่งคอลัมน์สำหรับแต่ละประเภทฟักทอง แต่ละคอลัมน์จะมีค่า `1` หากแถวที่เกี่ยวข้องเป็นประเภทฟักทองนั้น และ `0` หากไม่ใช่ นั่นหมายความว่าจะมีสัมประสิทธิ์สี่ตัวในการถดถอยเชิงเส้น หนึ่งตัวสำหรับแต่ละประเภทฟักทอง ซึ่งรับผิดชอบ "ราคาเริ่มต้น" (หรือ "ราคาที่เพิ่มขึ้น") สำหรับประเภทนั้น
* **การเข้ารหัสเชิงตัวเลขแบบง่าย** คือการสร้างตารางของชนิดที่แตกต่างกัน จากนั้นแทนที่ชื่อชนิดด้วยดัชนีในตารางนั้น วิธีนี้ไม่เหมาะสำหรับการถดถอยเชิงเส้นเพราะการถดถอยเชิงเส้นจะใช้ค่าตัวเลขจริงของดัชนีและเพิ่มเข้าไปในผลลัพธ์โดยคูณด้วยค่าสัมประสิทธิ์ ในกรณีของเรา ความสัมพันธ์ระหว่างหมายเลขดัชนีกับราคาชัดเจนว่าไม่เป็นเชิงเส้น แม้เราจะจัดเรียงดัชนีอย่างเป็นระบบ
* **การเข้ารหัสแบบ One-hot** คือแทนที่คอลัมน์ `Variety` ด้วย 4 คอลัมน์แยกต่างหาก หนึ่งคอลัมน์สำหรับแต่ละชนิด โดยแต่ละคอลัมน์จะเก็บค่า `1` หากแถวที่สอดคล้องมีชนิดนั้น และ `0` หากไม่ใช่ หมายความว่าจะมีค่าสัมประสิทธิ์สี่ตัวใน linear regression หนึ่งตัวสำหรับแต่ละชนิดฟักทอง ซึ่งรับผิดชอบราคาตั้งต้น (หรือเพิ่มขึ้น) สำหรับชนิดนั้น
โค้ดด้านล่างแสดงวิธีการเข้ารหัสแบบ one-hot สำหรับประเภทฟักทอง:
โค้ดด้านล่างแสดงวิธีการเข้ารหัสแบบ one-hot สำหรับชนิดฟักทอง:
```python
pd.get_dummies(new_pumpkins['Variety'])
@ -290,14 +303,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
เพื่อฝึกการถดถอยเชิงเส้นโดยใช้ประเภทฟักทองที่เข้ารหัสแบบ one-hot เป็นข้อมูลนำเข้า เราเพียงแค่ต้องกำหนดข้อมูล `X` และ `y` ให้ถูกต้อง:
ในการฝึก Linear Regression โดยใช้ชนิดฟักทองแบบ one-hot encoded เป็นข้อมูลเข้า เราเพียงแค่ตั้งค่า `X` และ `y` ให้ถูกต้อง:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
โค้ดที่เหลือเหมือนกับที่เราใช้ด้านบนเพื่อฝึกการถดถอยเชิงเส้น หากคุณลอง คุณจะเห็นว่าค่า MSE ใกล้เคียงกัน แต่เราจะได้ค่าสัมประสิทธิ์การกำหนดที่สูงขึ้น (~77%) เพื่อให้การทำนายแม่นยำยิ่งขึ้น เราสามารถนำคุณสมบัติประเภทหมวดหมู่อื่นๆ มาพิจารณา รวมถึงคุณสมบัติตัวเลข เช่น `Month` หรือ `DayOfYear` เพื่อสร้างชุดข้อมูลคุณสมบัติขนาดใหญ่ เราสามารถใช้ `join`:
โค้ดที่เหลือเหมือนกับที่เราใช้เทรน Linear Regression ด้านบน หากคุณลองดูจะเห็นว่า mean squared error เท่ากันประมาณเดิมแต่เราได้ coefficient of determination สูงขึ้นมาก (~77%) เพื่อได้การทำนายที่แม่นยำขึ้น เราสามารถพิจารณาคุณลักษณะเชิงหมวดหมู่เพิ่ม รวมทั้งคุณลักษณะตัวเลขเช่น `Month` หรือ `DayOfYear` เพื่อรวมเป็นอาร์เรย์คุณลักษณะเดียวกัน เราสามารถใช้ `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -307,31 +320,31 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
ที่นี่เรายังพิจารณา `City` และประเภท `Package` ซึ่งให้ค่า MSE 2.84 (10%) และค่าสัมประสิทธิ์การกำหนด 0.94!
ที่นี่เราพิจารณา `City` และชนิด `Package` ด้วยซึ่งทำให้ได้ MSE 2.84 (10%) และ coefficient of determination 0.94!
## รวมทุกอย่างเข้าด้วยกัน
เพื่อสร้างโมเดลที่ดีที่สุด เราสามารถใช้ข้อมูลที่รวมกัน (ประเภทหมวดหมู่ที่เข้ารหัสแบบ one-hot + ตัวเลข) จากตัวอย่างด้านบนร่วมกับการถดถอยเชิงพหุนาม นี่คือโค้ดทั้งหมดเพื่อความสะดวกของคุณ:
เพื่อทำโมเดลที่ดีที่สุด เราสามารถใช้ข้อมูลรวมกัน (เชิงหมวดหมู่ one-hot encoded + ตัวเลข) จากตัวอย่างข้างต้นพร้อมกับการถดถอยแบบพหุนาม นี่คือโค้ดทั้งหมดเพื่อความสะดวกของคุณ:
```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
# ตั้งค่าและฝึกอบรม pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# ทำนายผลลัพธ์สำหรับข้อมูลทดสอบ
pred = pipeline.predict(X_test)
# calculate MSE and determination
# คำนวณ MSE และค่าความชัน
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
@ -339,34 +352,36 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
สิ่งนี้ควรให้ค่าสัมประสิทธิ์การกำหนดที่ดีที่สุดเกือบ 97% และ MSE=2.23 (~8% ข้อผิดพลาดในการทำนาย)
สิ่งนี้ควรให้ค่าค่าสัมประสิทธิ์การกำหนด (determination coefficient) ที่ดีที่สุดเกือบ 97% และ MSE=2.23 (~8% ความผิดพลาดการทำนาย)
| โมเดล | MSE | ค่าสัมประสิทธิ์การกำหนด |
|-------|-----|---------------------------|
| Model | MSE | Determination |
|-------|-----|---------------|
| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
| `Variety` Linear | 5.24 (19.7%) | 0.77 |
| All features Linear | 2.84 (10.5%) | 0.94 |
| All features Polynomial | 2.23 (8.25%) | 0.97 |
🏆 ยอดเยี่ยม! คุณสร้างโมเดลการถดถอย 4 โมเดลในบทเรียนเดียว และปรับปรุงคุณภาพโมเดลได้ถึง 97% ในส่วนสุดท้ายเกี่ยวกับการถดถอย คุณจะได้เรียนรู้เกี่ยวกับการถดถอยโลจิสติกเพื่อกำหนดหมวดหมู่
🏆 เยี่ยมมาก! คุณสร้างโมเดล Regression สี่รุ่นในบทเรียนเดียว และปรับปรุงคุณภาพโมเดลไปสู่ 97% ในส่วนสุดท้ายของบทเรียนเกี่ยวกับ Regression คุณจะได้เรียนรู้ Logistic Regression เพื่อจำแนกหมวดหมู่
---
## 🚀ความท้าทาย
ทดสอบตัวแปรต่างๆ ในโน้ตบุ๊กนี้เพื่อดูว่าความสัมพันธ์สอดคล้องกับความแม่นยำของโมเดลอย่างไร
ทดลองกับตัวแปรที่แตกต่างกันหลายตัวในโน้ตบุ๊กนี้ เพื่อดูว่าค่าความสัมพันธ์สัมพันธ์กับความแม่นยำของโมเดลอย่างไร
## [แบบทดสอบหลังการบรรยาย](https://ff-quizzes.netlify.app/en/ml/)
## [แบบทดสอบหลังบทเรียน](https://ff-quizzes.netlify.app/en/ml/)
## ทบทวนและศึกษาด้วยตนเอง
## ทบทวน & ศึกษาเอง
ในบทเรียนนี้เราได้เรียนรู้เกี่ยวกับการถดถอยเชิงเส้น ยังมีประเภทการถดถอยที่สำคัญอื่นๆ อ่านเกี่ยวกับเทคนิค Stepwise, Ridge, Lasso และ Elasticnet หลักสูตรที่ดีในการศึกษาเพิ่มเติมคือ [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
ในบทเรียนนี้เราได้เรียนรู้เกี่ยวกับ Linear Regression ยังมีชนิดของ Regression สำคัญอื่น ๆ อ่านเพิ่มเติมเกี่ยวกับเทคนิค Stepwise, Ridge, Lasso และ Elasticnet หลักสูตรที่แนะนำให้ศึกษาเพิ่มเติมคือ [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## งานที่ได้รับมอบหมาย
## การบ้าน
[สร้างโมเดล](assignment.md)
---
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ข้อจำกัดความรับผิด**:
เอกสารฉบับนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้ความถูกต้อง โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ แนะนำให้ใช้การแปลโดยผู้เชี่ยวชาญมืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่อาจเกิดขึ้นจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,40 +1,40 @@
# ตัวจำแนกประเภทอาหาร 2
ในบทเรียนการจำแนกประเภทครั้งที่สองนี้ คุณจะได้สำรวจวิธีการเพิ่มเติมในการจำแนกข้อมูลเชิงตัวเลข นอกจากนี้คุณยังจะได้เรียนรู้ผลกระทบจากการเลือกตัวจำแนกประเภทหนึ่งเหนืออีกประเภทหนึ่ง
ในบทเรียนการจำแนกประเภทครั้งที่สองนี้ คุณจะได้สำรวจวิธีการจำแนกข้อมูลเชิงตัวเลขเพิ่มเติม คุณจะได้เรียนรู้เกี่ยวกับผลกระทบของการเลือกตัวจำแนกหนึ่งเหนืออีกตัวหนึ่งด้วย
## [แบบทดสอบก่อนเรียน](https://ff-quizzes.netlify.app/en/ml/)
### ความรู้พื้นฐานที่ต้องมี
### ความรู้เบื้องต้น
เราสมมติว่าคุณได้เรียนบทเรียนก่อนหน้านี้แล้ว และมีชุดข้อมูลที่ทำความสะอาดแล้วในโฟลเดอร์ `data` ซึ่งมีชื่อว่า _cleaned_cuisines.csv_ อยู่ในโฟลเดอร์รากของบทเรียน 4 บทนี้
เราสมมติว่าคุณได้ผ่านบทเรียนก่อนหน้าแล้วและมีชุดข้อมูลที่ทำความสะอาดแล้วในโฟลเดอร์ `data` ของคุณชื่อ _cleaned_cuisines.csv_ ซึ่งอยู่ในโฟลเดอร์หลักของบทเรียน 4 บทนี้
### การเตรียมตัว
เราได้โหลดไฟล์ _notebook.ipynb_ ของคุณพร้อมกับชุดข้อมูลที่ทำความสะอาดแล้ว และได้แบ่งข้อมูลออกเป็น dataframe X และ y ซึ่งพร้อมสำหรับกระบวนการสร้างโมเดล
เราได้โหลดไฟล์ _notebook.ipynb_ ของคุณพร้อมชุดข้อมูลที่ทำความสะอาดแล้ว และได้แบ่งออกเป็นกรอบข้อมูล X และ y พร้อมสำหรับกระบวนการสร้างโมเดล
## แผนที่การจำแนกประเภท
ก่อนหน้านี้ คุณได้เรียนรู้เกี่ยวกับตัวเลือกต่าง ๆ ที่คุณมีเมื่อจำแนกข้อมูลโดยใช้แผ่นโกงของ Microsoft Scikit-learn มีแผ่นโกงที่คล้ายกันแต่ละเอียดกว่า ซึ่งสามารถช่วยจำกัดตัวเลือกของคุณให้แคบลงได้ (อีกคำหนึ่งสำหรับตัวจำแนกประเภท):
ก่อนหน้านี้ คุณได้เรียนรู้เกี่ยวกับตัวเลือกต่าง ๆ ที่มีเมื่อจำแนกข้อมูลโดยใช้ชีทช่วยจำของ Microsoft แล้ว Scikit-learn มีชีทช่วยจำที่คล้ายกัน แต่มีรายละเอียดมากกว่า ซึ่งสามารถช่วยจำกัดตัวประมาณ (ซึ่งเป็นอีกคำหนึ่งของตัวจำแนก) ได้มากขึ้น:
![แผนที่ ML จาก Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
![ML Map from Scikit-learn](../../../../translated_images/th/map.e963a6a51349425a.webp)
> เคล็ดลับ: [เยี่ยมชมแผนที่นี้ออนไลน์](https://scikit-learn.org/stable/tutorial/machine_learning_map/) และคลิกตามเส้นทางเพื่ออ่านเอกสารประกอบ
### แผนการดำเนินการ
### แผนงาน
แผนที่นี้มีประโยชน์มากเมื่อคุณเข้าใจข้อมูลของคุณอย่างชัดเจน เพราะคุณสามารถ 'เดิน' ตามเส้นทางเพื่อไปสู่การตัดสินใจ:
แผนที่นี้มีประโยชน์มากเมื่อคุณเข้าใจข้อมูลของคุณอย่างชัดเจน เพราะคุณสามารถ 'เดิน' ตามเส้นทางเพื่อตัดสินใจได้:
- เรามีตัวอย่าง >50 ตัวอย่าง
- เราต้องการทำนายหมวดหมู่
- เรามีข้อมูลที่มีป้ายกำกับ
- เรามีตัวอย่างน้อยกว่า 100K ตัวอย่าง
- เรามีข้อมูลที่ติดป้ายกำกับแล้ว
- เรามีตัวอย่างไม่เกิน 100K ตัวอย่าง
- ✨ เราสามารถเลือก Linear SVC
- หากไม่ได้ผล เนื่องจากเรามีข้อมูลเชิงตัวเลข
- ถ้าไม่ได้ผล เนื่องจากเรามีข้อมูลเชิงตัวเลข
- เราสามารถลองใช้ ✨ KNeighbors Classifier
- หากไม่ได้ผล ลองใช้ ✨ SVC และ ✨ Ensemble Classifiers
- ถ้าไม่ได้ผล ลองใช้ ✨ SVC และ ✨ Ensemble Classifiers
นี่เป็นเส้นทางที่มีประโยชน์มากในการติดตาม
นี่คือเส้นทางที่เป็นประโยชน์มากให้ติดตาม
## แบบฝึกหัด - แบ่งข้อมูล
## แบบฝึกหัด - แยกข้อมูล
ตามเส้นทางนี้ เราควรเริ่มต้นด้วยการนำเข้าบางไลบรารีที่จำเป็นต้องใช้
@ -50,31 +50,31 @@
import numpy as np
```
1. แบ่งข้อมูลการฝึกอบรมและการทดสอบของคุณ:
1. แบ่งข้อมูลการฝึกและทดสอบของคุณ:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)
```
## ตัวจำแนก Linear SVC
Support-Vector clustering (SVC) เป็นส่วนหนึ่งของกลุ่มเทคนิค ML ในตระกูล Support-Vector machines (เรียนรู้เพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ด้านล่าง) ในวิธีนี้ คุณสามารถเลือก 'kernel' เพื่อกำหนดวิธีการจัดกลุ่มป้ายกำกับ พารามิเตอร์ 'C' หมายถึง 'regularization' ซึ่งควบคุมอิทธิพลของพารามิเตอร์ Kernel สามารถเป็นหนึ่งใน [หลายตัวเลือก](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); ที่นี่เราตั้งค่าเป็น 'linear' เพื่อให้แน่ใจว่าเราใช้ Linear SVC ค่า Probability จะตั้งค่าเริ่มต้นเป็น 'false'; ที่นี่เราตั้งค่าเป็น 'true' เพื่อรวบรวมการประมาณความน่าจะเป็น เราตั้งค่า random state เป็น '0' เพื่อสับเปลี่ยนข้อมูลเพื่อรับความน่าจะเป็น
Support-Vector Clustering (SVC) เป็นส่วนหนึ่งของตระกูล Support-Vector Machines ของเทคนิค ML (เรียนรู้เพิ่มเติมเกี่ยวกับสิ่งเหล่านี้ด้านล่าง) ในวิธีนี้ คุณสามารถเลือก 'kernel' เพื่อกำหนดวิธีจัดกลุ่มป้ายกำกับ พารามิเตอร์ 'C' หมายถึง 'regularization' ที่ควบคุมอิทธิพลของพารามิเตอร์ kernel สามารถเป็นหนึ่งใน [หลายตัว](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); ที่นี่เรากำหนดเป็น 'linear' เพื่อให้ใช้ประโยชน์จาก Linear SVC ได้เต็มที่ ค่า probability ตั้งเป็น 'false' โดยค่าเริ่มต้น; ที่นี่เราตั้งเป็น 'true' เพื่อรวบรวมค่าประมาณความน่าจะเป็น เราตั้งค่า random state เป็น '0' เพื่อสุ่มสับเปลี่ยนข้อมูลเพื่อให้ได้ความน่าจะเป็น
### แบบฝึกหัด - ใช้ Linear SVC
เริ่มต้นด้วยการสร้างอาร์เรย์ของตัวจำแนกประเภท คุณจะเพิ่มไปยังอาร์เรย์นี้ทีละขั้นตอนเมื่อเราทดสอบ
เริ่มต้นดยการสร้างอาร์เรย์ของตัวจำแนก คุณจะเพิ่มไปยังอาร์เรย์นี้อย่างต่อเนื่องในขณะที่เราทดสอบ
1. เริ่มต้นด้วย Linear SVC:
```python
C = 10
# Create different classifiers.
# สร้างตัวจำแนกประเภทที่แตกต่างกัน.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. ฝึกโมเดลของคุณโดยใช้ Linear SVC และพิมพ์รายงานออกมา:
2. ฝึกโมเดลโดยใช้ Linear SVC และพิมพ์รายงานออกมา:
```python
n_classifiers = len(classifiers)
@ -107,19 +107,19 @@ Support-Vector clustering (SVC) เป็นส่วนหนึ่งของ
## ตัวจำแนก K-Neighbors
K-Neighbors เป็นส่วนหนึ่งของกลุ่มวิธี ML ในตระกูล "neighbors" ซึ่งสามารถใช้ได้ทั้งการเรียนรู้แบบมีผู้สอนและไม่มีผู้สอน ในวิธีนี้ จะมีการสร้างจุดที่กำหนดไว้ล่วงหน้า และรวบรวมข้อมูลรอบจุดเหล่านี้เพื่อให้สามารถทำนายป้ายกำกับทั่วไปสำหรับข้อมูลได้
K-Neighbors เป็นส่วนหนึ่งของตระกูล "neighbors" ของวิธี ML ซึ่งสามารถใช้ได้ทั้งการเรียนรู้แบบมีผู้สอนและไม่มีผู้สอน วิธีนี้จะกำหนดจำนวนจุดล่วงหน้า และรวบรวมข้อมูลรอบจุดเหล่านี้เพื่อทำนายป้ายกำกับทั่วไปสำหรับข้อมูล
### แบบฝึกหัด - ใช้ตัวจำแนก K-Neighbors
ตัวจำแนกประเภทก่อนหน้านี้ดีและทำงานได้ดีกับข้อมูล แต่บางทีเราอาจได้ความแม่นยำที่ดีกว่า ลองใช้ตัวจำแนก K-Neighbors
ตัวจำแนกก่อนหน้านี้ดีและทำงานได้ดีกับข้อมูล แต่บางทีเราอาจได้ความแม่นยำที่ดีกว่า ลองใช้ตัวจำแนก K-Neighbors
1. เพิ่มบรรทัดในอาร์เรย์ตัวจำแนกประเภทของคุณ (เพิ่มเครื่องหมายจุลภาคหลังรายการ Linear SVC):
1. เพิ่มบรรทัดลงในอาร์เรย์ตัวจำแนกของคุณ (เพิ่มเครื่องหมายจุลภาคหลังรายการ Linear SVC):
```python
'KNN classifier': KNeighborsClassifier(C),
```
ผลลัพธ์แย่ลงเล็กน้อย:
ผลลัพธ์แย่กว่านิดหน่อย:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -140,19 +140,19 @@ K-Neighbors เป็นส่วนหนึ่งของกลุ่มว
## ตัวจำแนก Support Vector
ตัวจำแนก 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 ที่ใช้สำหรับงานจำแนกประเภทและการถดถอย SVMs "แมปตัวอย่างการฝึกไปยังจุดในอวกาศ" เพื่อเพิ่มระยะห่างระหว่างสองหมวดหมู่ ข้อมูลต่อไปจะถูกแมปเข้าสู่อวกาศนี้เพื่อให้สามารถทำนายหมวดหมู่ได้
### แบบฝึกหัด - ใช้ตัวจำแนก Support Vector
ลองหาความแม่นยำที่ดีกว่าด้วยตัวจำแนก Support Vector
ลองเพิ่มความแม่นยำเล็กน้อยด้วยตัวจำแนก Support Vector
1. เพิ่มเครื่องหมายจุลภาคหลังรายการ K-Neighbors แลเพิ่มบรรทัดนี้:
1. เพิ่มเครื่องหมายจุลภาคหลังรายการ K-Neighbors แล้วเพิ่มบรรทัดนี้:
```python
'SVC': SVC(),
```
ผลลัพธ์ค่อนข้างดี!
ผลลัพธ์ค่อนข้างดีมาก!
```output
Accuracy (train) for SVC: 83.2%
@ -173,14 +173,14 @@ K-Neighbors เป็นส่วนหนึ่งของกลุ่มว
## ตัวจำแนก Ensemble
ลองติดตามเส้นทางจนถึงจุดสิ้นสุด แม้ว่าการทดสอบก่อนหน้านี้จะค่อนข้างดี ลองใช้ 'Ensemble Classifiers' โดยเฉพาะ Random Forest และ AdaBoost:
เรามาติดตามเส้นทางจนถึงจุดสิ้นสุดกัน แม้ว่าการทดสอบก่อนหน้าจะค่อนข้างดี ลองใช้ 'Ensemble Classifiers' โดยเฉพาะ Random Forest และ AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
ผลลัพธ์ดีมาก โดยเฉพาะสำหรับ Random Forest:
ผลลัพธ์ดีมาก โดยเฉพาะับ Random Forest:
```output
Accuracy (train) for RFST: 84.5%
@ -212,29 +212,31 @@ weighted avg 0.73 0.72 0.72 1199
✅ เรียนรู้เกี่ยวกับ [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
วิธีการ Machine Learning นี้ "รวมการทำนายของตัวประมาณฐานหลายตัว" เพื่อปรับปรุงคุณภาพของโมเดล ในตัวอย่างของเรา เราใช้ Random Trees และ AdaBoost
วิธีนี้ของ Machine Learning "รวมการทำนายของตัวประมาณพื้นฐานหลายตัว" เพื่อปรับปรุงคุณภาพของโมเดล ในตัวอย่างของเรา เราใช้ Random Trees และ AdaBoost
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest) ซึ่งเป็นวิธีการเฉลี่ย สร้าง 'ป่า' ของ 'ต้นไม้ตัดสินใจ' ที่มีการสุ่มเพื่อหลีกเลี่ยงการ overfitting พารามิเตอร์ 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/)
## ทบทวนและศึกษาด้วยตนเอง
## ทบทวน & เรียนรู้ด้วยตนเอง
มีคำศัพท์เฉพาะทางมากมายในบทเรียนเหล่านี้ ดังนั้นใช้เวลาสักครู่เพื่อทบทวน [รายการนี้](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) ของคำศัพท์ที่มีประโยชน์!
## งานที่ได้รับมอบหมาย
## การบ้าน
[Parameter play](assignment.md)
[เล่นกับพารามิเตอร์](assignment.md)
---
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามอย่างดีที่สุดเพื่อความถูกต้อง โปรดทราบว่าการแปลด้วยระบบอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำได้ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่มีความสำคัญ ขอแนะนำให้ใช้บริการแปลโดยผู้เชี่ยวชาญมนุษย์ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใด ๆ ที่เกิดจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# สร้างโมเดลการจำแนกประเภท\n"
]
},
{
"cell_type": "code",
@ -114,15 +116,15 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n---\n\n**ข้อจำกัดความรับผิดชอบ**: \nเอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้ความถูกต้องสูงสุด โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้องได้ เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่ถูกต้อง สำหรับข้อมูลสำคัญ แนะนำให้ใช้การแปลโดยผู้เชี่ยวชาญมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดจากการใช้การแปลนี้\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-06T14:42:28+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "th"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# สร้างแบบจำลองการจำแนกประเภทเพิ่มเติม\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -114,14 +116,16 @@
}
],
"source": [
"cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_feature_df.head()"
"cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n",
"cuisines_features_df.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# ลองตัวจำแนกประเภทต่างๆ\n"
]
},
{
"cell_type": "code",
@ -144,7 +148,7 @@
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)"
"X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)"
]
},
{
@ -259,7 +263,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"\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"
]
}
],
@ -287,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-06T14:43:00+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "th"
}
},
"nbformat": 4,

@ -10,76 +10,86 @@
### 🌐 การสนับสนุนหลายภาษา
#### สนับสนุนผ่าน GitHub Action (อัตโนมัติ & อัปเดตตลอดเวลา)
#### สนับสนุนผ่าน GitHub Action (อัตโนมัติและอัปเดตเสมอ)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[อาหรับ](../ar/README.md) | [เบงกาลี](../bn/README.md) | [บัลแกเรีย](../bg/README.md) | [พม่า (เมียนมา)](../my/README.md) | [จีน (ตัวย่อ)](../zh-CN/README.md) | [จีน (ตัวเต็ม, ฮ่องกง)](../zh-HK/README.md) | [จีน (ตัวเต็ม, มาเก๊า)](../zh-MO/README.md) | [จีน (ตัวเต็ม, ไต้หวัน)](../zh-TW/README.md) | [โครเอเชีย](../hr/README.md) | [เช็ก](../cs/README.md) | [เดนมาร์ก](../da/README.md) | [ดัตช์](../nl/README.md) | [เอสโตเนีย](../et/README.md) | [ฟินแลนด์](../fi/README.md) | [ฝรั่งเศส](../fr/README.md) | [เยอรมัน](../de/README.md) | [กรีก](../el/README.md) | [ฮีบรู](../he/README.md) | [ฮินดี](../hi/README.md) | [ฮังการี](../hu/README.md) | [อินโดนีเซีย](../id/README.md) | [อิตาลี](../it/README.md) | [ญี่ปุ่น](../ja/README.md) | [กันนาดา](../kn/README.md) | [เกาหลี](../ko/README.md) | [ลิทัวเนีย](../lt/README.md) | [มาเลย์](../ms/README.md) | [มาลายาลัม](../ml/README.md) | [มราฐี](../mr/README.md) | [เนปาล](../ne/README.md) | [ไนจีเรียน พิดจิน](../pcm/README.md) | [นอร์เวย์](../no/README.md) | [เปอร์เซีย (ฟาร์ซี)](../fa/README.md) | [โปแลนด์](../pl/README.md) | [โปรตุเกส (บราซิล)](../pt-BR/README.md) | [โปรตุเกส (โปรตุเกส)](../pt-PT/README.md) | [ปัญจาบ (กูรมุขี)](../pa/README.md) | [โรมาเนีย](../ro/README.md) | [รัสเซีย](../ru/README.md) | [เซอร์เบีย (ซีริลลิก)](../sr/README.md) | [สโลวัก](../sk/README.md) | [สโลวีเนีย](../sl/README.md) | [สเปน](../es/README.md) | [สวาฮิลี](../sw/README.md) | [สวีดิช](../sv/README.md) | [ทากาล็อก (ฟิลิปปินส์)](../tl/README.md) | [ทมิฬ](../ta/README.md) | [เทลูกู](../te/README.md) | [ไทย](./README.md) | [ตุรกี](../tr/README.md) | [ยูเครน](../uk/README.md) | [อูรดู](../ur/README.md) | [เวียดนาม](../vi/README.md)
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](./README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **ชอบโคลนในเครื่องไหม?**
> ที่เก็บนี้ประกอบด้วยการแปลภาษา 50+ ภาษา ซึ่งเพิ่มขนาดการดาวน์โหลดอย่างมาก หากต้องการโคลนโดยไม่รวบรวมการแปล ให้ใช้ sparse checkout:
> **ชอบโคลนแบบออฟไลน์?**
>
> ที่เก็บนี้มีการแปลภาษากว่า 50 ภาษา ซึ่งจะเพิ่มขนาดการดาวน์โหลดอย่างมาก หากต้องการโคลนโดยไม่รวมการแปล ให้ใช้ sparse checkout:
>
> **Bash / macOS / Linux:**
> ```bash
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
> ```
> วิธีนี้ให้คุณทุกอย่างที่จำเป็นสำหรับการเรียนหลักสูตรนี้ พร้อมการดาวน์โหลดที่รวดเร็วกว่าอย่างมาก
>
> **CMD (Windows):**
> ```cmd
> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git
> cd ML-For-Beginners
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> วิธีนี้จะให้ทุกสิ่งที่คุณต้องการเพื่อสำเร็จคอร์สได้โดยดาวน์โหลดเร็วขึ้นมาก
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### เข้าร่วมชุมชนของเรา
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
เรามีซีรีส์เรียนรู้กับ AI บน Discord ดำเนินอยู่ เรียนรู้เพิ่มเติมและเข้าร่วมกับเราที่ [ซีรีส์เรียนรู้กับ AI](https://aka.ms/learnwithai/discord) ระหว่างวันที่ 18 - 30 กันยายน 2025 คุณจะได้รับเคล็ดลับและเทคนิคการใช้ GitHub Copilot สำหรับวิทยาศาสตร์ข้อมูล
เรามีซีรีส์เรียนรู้กับ AI บน Discord กำลังดำเนินอยู่ เรียนรู้เพิ่มเติมและเข้าร่วมกับเราได้ที่ [Learn with AI Series](https://aka.ms/learnwithai/discord) ตั้งแต่วันที่ 18 - 30 กันยายน 2025 คุณจะได้รับเคล็ดลับและเทคนิครับมือกับ GitHub Copilot สำหรับ Data Science
![Learn with AI series](../../translated_images/th/3.9b58fd8d6c373c20.webp)
# การเรียนรู้เครื่องสำหรับผู้เริ่มต้น - หลักสูตรการเรียนการสอน
# การเรียนรู้เครื่องสำหรับผู้เริ่มต้น - หลักสูตร
> 🌍 เดินทางไปทั่วโลกพร้อมสำรวจการเรียนรู้ของเครื่องผ่านวัฒนธรรมทั่วโลก 🌍
> 🌍 เดินทางรอบโลกพร้อมสำรวจการเรียนรู้ของเครื่องผ่านวัฒนธรรมต่าง ๆ ทั่วโลก 🌍
ทีม Cloud Advocates ของ Microsoft มีความยินดีที่จะนำเสนอหลักสูตร 12 สัปดาห์ 26 บทเรียนที่เกี่ยวกับ **การเรียนรู้ของเครื่อง** ในหลักสูตรนี้ คุณจะได้เรียนรู้เกี่ยวกับสิ่งที่บางครั้งเรียกว่า **การเรียนรู้ของเครื่องแบบคลาสสิก** โดยใช้ไลบรารี Scikit-learn เป็นหลักและหลีกเลี่ยงการเรียนรู้ลึก ซึ่งครอบคลุมในหลักสูตร [AI for Beginners' curriculum](https://aka.ms/ai4beginners) ของเรา จับคู่นี้กับหลักสูตรของเรา ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) ด้วย!
Cloud Advocates ที่ Microsoft มีความยินดีที่จะนำเสนอหลักสูตร 12 สัปดาห์ 26 บทเรียน เกี่ยวกับ **Machine Learning** ในหลักสูตรนี้ คุณจะได้เรียนรู้เกี่ยวกับสิ่งที่บางครั้งเรียกว่า **machine learning แบบคลาสสิก** โดยใช้ Scikit-learn เป็นไลบรารีหลัก และหลีกเลี่ยง deep learning ซึ่งมีสอนใน [หลักสูตร AI for Beginners](https://aka.ms/ai4beginners) ของเรา จับคู่บทเรียนเหล่านี้กับ [หลักสูตร Data Science for Beginners](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
**✍️ ขอขอบคุณอย่างจริงใจต่อผู้เขียนของเรา** 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
**🙏 ขอขอบคุณเป็นพิเศษ 🙏 แก่ 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" ที่มุมขวาบนของหน้านี้
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)** เพื่อใช้หลักสูตรนี้ ให้ฟอร์กที่เก็บทั้งหมดไปยังบัญชี GitHub ของคุณเองและทำแบบฝึกหัดด้วยตัวเองหรือกับกลุ่ม:
**[นักเรียน](https://aka.ms/student-page)** เพื่อใช้หลักสูตรนี้ ให้คุณ fork รีโปทั้งหมดมายังบัญชี GitHub ของคุณและทำแบบฝึกหัดด้วยตเองหรือกับกลุ่ม:
- เริ่มด้วยแบบทดสอบก่อนบรรยาย
- อ่านบรรยายและทำกิจกรรมให้เสร็จสมบูรณ์ โดยหยุดพักและสะท้อนความรู้ในแต่ละจุดตรวจความรู้
- พยายามสร้างโครงการโดยเข้าใจบทเรียน แทนการรันโค้ดในโซลูชัน อย่างไรก็ตาม โค้ดนั้นมีให้ในโฟลเดอร์ `/solution` ในแต่ละบทเรียนแบบโครงการ
- อ่านบทเรียนและทำกิจกรรมให้ครบ หยุดคิดและทบทวนที่แต่ละจุดเช็คความรู้
- พยายามสร้างโปรเจกต์โดยเข้าใจบทเรียนแทนการรันโค้ดโซลูชันอย่างเดียว อย่างไรก็ตาม โค้ดนั้นมีให้ในโฟลเดอร์ `/solution` ในแต่ละบทเรียนที่เน้นโปรเจกต์
- ทำแบบทดสอบหลังบรรยาย
- ทำภารกิจให้เสร็จ
- ทำงานที่ได้รับมอบหมายให้เสร็จ
- หลังจากทำกลุ่มบทเรียนเสร็จเยี่ยมชม [กระดานพูดคุย](https://github.com/microsoft/ML-For-Beginners/discussions) และ "เรียนรู้ด้วยเสียงดัง" โดยกรอก PAT rubric ที่เหมาะสม 'PAT' คือเครื่องมือประเมินความก้าวหน้าที่คุณกรอกเพื่อเพิ่มพูนการเรียนรู้ คุณยังสามารถทำปฏิกิริยากับ PATs อื่นๆ เพื่อให้เราเรียนรู้ไปด้วยกัน
- ทำภารกิจท้าทาย
- ทำงานมอบหมาย
- หลังทำบทเรียนกลุ่มหนึ่งเสร็จเยี่ยมชม [บอร์ดสนทนา](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) เกี่ยวกับวิธีการใช้หลักสูตรนี้ไว้ให้แล้ว
**ครูผู้สอน** เราได้ [รวมคำแนะนำบางอย่าง](for-teachers.md) เกี่ยวกับวิธีใช้หลักสูตรนี้
---
## วิดีโอแนะนำ
บทเรียนบางบทเรียนมีในรูปแบบวิดีโอสั้น คุณสามารถหาวิดีโอทั้งหมดได้ในบทเรียน หรือใน [เพลย์ลิสต์ ML for Beginners บนช่อง YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) โดยคลิกที่ภาพด้านล่าง
บทเรียนบางบทมีวิดีโอสั้นให้ดู คุณสามารถดูทั้งหมดได้ในบทเรียน หรือที่ [เพลย์ลิสต์ ML for Beginners บนช่อง Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) โดยคลิกที่ภาพด้านล่างนี้
[![ML for beginners banner](../../translated_images/th/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -89,81 +99,81 @@
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**ภาพเคลื่อนไหวโดย** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif โดย** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 คลิกภาพด้านบนเพื่อชมวิดีโอเกี่ยวกับโครงการและผู้ที่สร้างมันขึ้นมา!
> 🎥 คลิกภาพด้านบนเพื่อดูวิดีโอเกี่ยวกับโปรเจกต์และผู้สร้าง!
---
## วิธีการสอน
เราเลือกสองหลักการทางการสอนในการสร้างหลักสูตรนี้: ให้เป็นหลักสูตรที่ใช้งานจริงแบบ **โครงการ** และมี **แบบทดสอบบ่อยๆ** นอกจากนี้ หลักสูตรนี้มี **ธีม** ร่วมเพื่อเพิ่มความสัมพันธ์กัน
เราเลือกใช้หลักการสอนสองประการในการสร้างหลักสูตรนี้: ให้เป็นแบบ **project-based** ลงมือปฏิบัติจริง และมี **แบบทดสอบบ่อยๆ** นอกจากนี้ หลักสูตรยังมี **ธีม** ร่วมเพื่อเชื่อมโยงเนื้อหา
โดยการทำให้เนื้อหาสอดคล้องกับโครงการ กระบวนการเรียนรู้จะน่าสนใจมากขึ้นสำหรับนักเรียน และช่วยเพิ่มการจดจำแนวคิด นอกจากนี้ แบบทดสอบแบบความเสี่ยงต่ำก่อนเรียนจะตั้งเป้าหมายให้นักเรียนมุ่งมั่นกับการเรียนรู้หัวข้อนั้นๆ ขณะที่แบบทดสอบหลังเรียนจะช่วยยืนยันการจดจำ เนื้อหานี้ออกแบบให้ยืดหยุ่นและสนุกสนาน สามารถเรียนทั้งหลักสูตรหรือบางส่วนได้ โครงการต่าง ๆ เริ่มจากขั้นพื้นฐานและซับซ้อนขึ้นเรื่อย ๆ ในช่วง 12 สัปดาห์ นอกจากนี้หลักสูตรจะมีบทเสริมเกี่ยวกับการประยุกต์ใช้ ML ในโลกจริง ซึ่งสามารถใช้เป็นคะแนนพิเศษหรือจุดเริ่มต้นในการสนทนาได้
การเชื่อมโยงเนื้อหาเข้ากับโปรเจกต์ทำให้กระบวนการน่าสนใจมากขึ้นสำหรับนักเรียนและช่วยให้การจดจำแนวคิดดีขึ้น อีกทั้งแบบทดสอบก่อนเรียนช่วยกำหนดเจตนารมณ์ของนักเรียนในการเรียนรู้ในหัวข้อนั้นๆ ส่วนแบบทดสอบหลังเรียนช่วยเพิ่มการจดจำ หลักสูตรนี้ออกแบบมาให้ยืดหยุ่นและสนุก สามารถเรียนครบทั้งหมดหรือบางส่วนได้ โปรเจกต์จะเริ่มเล็กและซับซ้อนขึ้นเรื่อยๆ จนถึงสิ้นสุดรอบ 12 สัปดาห์ หลักสูตรยังมีบทส่งท้ายเกี่ยวกับการประยุกต์ใช้จริงของ ML ซึ่งใช้เป็นเครดิตเพิ่มเติมหรือตั้งประเด็นสนทนาได้
> ค้นหา [จรรยาบรรณของเรา](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/)
- บทเรียนที่เขียนไว้
- สำหรับบทเรียนแบบโครงการ มีคำแนะนำทีละขั้นตอนในการสร้างโครงการ
- ตรวจสอบความรู้
- บทเรียนแบบเขียน
- สำหรับบทเรียนแบบโปรเจกต์ มีคำแนะนำทีละขั้นตอนวิธีสร้างโปรเจกต์
- เช็คความรู้
- ความท้าทาย
- การอ่านเสริม
- งานมอบหมาย
- [แบบทดสอบหลังบรรยาย](https://ff-quizzes.netlify.app/en/ml/)
> **หมายเหตุเกี่ยวกับภาษา**: บทเรียนเหล่านี้เขียนเป็นหลักในภาษา Python แต่หลายบทก็มีในภาษา R ด้วย หากต้องการทำบทเรียน R ให้ไปที่โฟลเดอร์ `/solution` และค้นหาบทเรียน R ซึ่งจะมีนามสกุล .rmd ที่หมายถึงไฟล์ **R Markdown** ซึ่งเป็นเอกสารที่ฝัง `code chunks` (ของภาษา R หรือภาษาอื่น ๆ) และ `YAML header` (ที่กำหนดวิธีการจัดรูปแบบผลลัพธ์ เช่น PDF) ไว้ใน `Markdown document` ดังนั้นจึงเป็นกรอบการเขียนที่ดีเยี่ยมสำหรับวิทยาศาสตร์ข้อมูลเพราะช่วยให้คุณสามารถรวมโค้ด ผลลัพธ์ และความคิดของคุณด้วยการเขียนลงใน Markdown อีกทั้งเอกสาร R Markdown สามารถเรนเดอร์เป็นรูปแบบเอาต์พุต เช่น PDF, HTML หรือ Word ได้ด้วย.
> **หมายเหตุเกี่ยวกับแบบทดสอบ**: แบบทดสอบทั้งหมดถูกรวบรวมไว้ใน [โฟลเดอร์ Quiz App](../../quiz-app) โดยมีแบบทดสอบทั้งหมด 52 ชุด ชุดละ 3 คำถาม สามารถเข้าถึงได้จากบทเรียนต่าง ๆ แต่แอปแบบทดสอบสามารถรันได้ในเครื่อง ทำตามคำแนะนำในโฟลเดอร์ `quiz-app` เพื่อโฮสต์แบบทดสอบในเครื่องหรือเผยแพร่บน Azure
| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author |
| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | บทนำสู่การเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เรียนรู้แนวคิดพื้นฐานเบื้องหลังการเรียนรู้ของเครื่อง | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | ประวัติของการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เรียนรู้ประวัติที่อยู่เบื้องหลังสาขานี้ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | ความเป็นธรรมและการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | ประเด็นทางปรัชญาสำคัญเกี่ยวกับความเป็นธรรมที่นักเรียนควรพิจารณาเมื่อสร้างและประยุกต์ใช้โมเดล ML | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | เทคนิคสำหรับการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | นักวิจัย ML ใช้เทคนิคอะไรในการสร้างโมเดล ML? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | บทนำสู่การถดถอย | [Regression](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 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](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 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](2-Regression/README.md) | สร้างโมเดลถดถอยเชิงเส้นและโพลิโนเมียล | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](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 App](3-Web-App/README.md) | สร้างเว็บแอปเพื่อใช้โมเดลที่ฝึกสอน | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | บทนำสู่การจัดประเภท | [Classification](4-Classification/README.md) | ทำความสะอาด เตรียมและแสดงข้อมูลของคุณ; บทนำสู่การจัดประเภท | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | อาหารเอเชียและอินเดียอร่อย 🍜 | [Classification](4-Classification/README.md) | บทนำสู่ตัวจัดประเภท | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | อาหารเอเชียและอินเดียอร่อย 🍜 | [Classification](4-Classification/README.md) | ตัวจัดประเภทเพิ่มเติม | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | อาหารเอเชียและอินเดียอร่อย 🍜 | [Classification](4-Classification/README.md) | สร้างเว็บแอปแนะนำโดยใช้โมเดลของคุณ | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | บทนำสู่การจัดกลุ่ม | [Clustering](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 | สำรวจรสนิยมดนตรีของไนจีเรีย 🎧 | [Clustering](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 | บทนำสู่การประมวลผลภาษาธรรมชาติ ☕️ | [Natural language processing](6-NLP/README.md) | เรียนรู้พื้นฐานเกี่ยวกับ NLP โดยการสร้างบอทง่าย ๆ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | งาน NLP ที่พบบ่อย ☕️ | [Natural language processing](6-NLP/README.md) | เจาะลึกความรู้ด้าน NLP โดยเข้าใจงานที่พบได้บ่อยเมื่อจัดการกับโครงสร้างภาษา | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | การแปลและการวิเคราะห์ความรู้สึก ♥️ | [Natural language processing](6-NLP/README.md) | การแปลและวิเคราะห์ความรู้สึกกับ Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | โรงแรมโรแมนติกในยุโรป ♥️ | [Natural language processing](6-NLP/README.md) | การวิเคราะห์ความรู้สึกกับรีวิวโรงแรม 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | โรงแรมโรแมนติกในยุโรป ♥️ | [Natural language processing](6-NLP/README.md) | การวิเคราะห์ความรู้สึกกับรีวิวโรงแรม 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | บทนำสู่การพยากรณ์ลำดับเวลา | [Time series](7-TimeSeries/README.md) | บทนำสู่การพยากรณ์ลำดับเวลา | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ การใช้พลังงานโลก ⚡️ - การพยากรณ์ลำดับเวลากับ ARIMA | [Time series](7-TimeSeries/README.md) | การพยากรณ์ลำดับเวลากับ ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ การใช้พลังงานโลก ⚡️ - การพยากรณ์ลำดับเวลากับ SVR | [Time series](7-TimeSeries/README.md) | การพยากรณ์ลำดับเวลากับ Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | บทนำสู่การเรียนรู้ด้วยการเสริมแรง | [Reinforcement learning](8-Reinforcement/README.md) | บทนำสู่การเรียนรู้ด้วยการเสริมแรงด้วย Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | ช่วยปีเตอร์หลีกเลี่ยงหมาป่า! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | การเรียนรู้ด้วยการเสริมแรงในยิม | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| บทส่งท้าย | กรณีศึกษาจริงและการประยุกต์ใช้ 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 ได้
> **หมายเหตุเกี่ยวกับแบบทดสอบ**: แบบทดสอบทั้งหมดจะอยู่ใน [โฟลเดอร์ Quiz App](../../quiz-app) รวมทั้งหมด 52 แบบทดสอบ แต่ละแบบมีสามคำถาม ลิงก์อยู่ในบทเรียนแต่แอปแบบทดสอบสามารถรันได้ในเครื่องของคุณโดยทำตามคำแนะนำในโฟลเดอร์ `quiz-app` เพื่อโฮสต์หรือดีพลอยในเครื่องหรือ Azure
| หมายเลขบทเรียน | หัวข้อ | กลุ่มบทเรียน | วัตถุประสงค์การเรียนรู้ | บทเรียนที่ลิงก์ | ผู้แต่ง |
| :--------------: | :------------------------------------------------------------: | :-----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | แนะนำการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เรียนรู้แนวคิดพื้นฐานเบื้องหลังการเรียนรู้ของเครื่อง | [บทเรียน](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | ประวัติศาสตร์ของการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เรียนรู้ประวัติศาสตร์เบื้องหลังสาขานี้ | [บทเรียน](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | ความยุติธรรมและการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | ปัญหาทางปรัชญาสำคัญเกี่ยวกับความยุติธรรมที่นักเรียนควรพิจารณาในการสร้างและใช้โมเดล ML | [บทเรียน](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | เทคนิคสำหรับการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เทคนิคที่นักวิจัย ML ใช้ในการสร้างโมเดล ML มีอะไรบ้าง | [บทเรียน](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | แนะนำการถดถอย | [Regression](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 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](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 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](2-Regression/README.md) | สร้างโมเดลถดถอยเชิงเส้นและถดถอยพหุนาม | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](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 App](3-Web-App/README.md) | สร้างแอปเว็บเพื่อใช้งานโมเดลที่ผ่านการฝึกฝนมา | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | แนะนำการจำแนกประเภท | [Classification](4-Classification/README.md) | ทำความสะอาด เตรียมและแสดงภาพข้อมูลของคุณ; แนะนำการจำแนกประเภท | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | อาหารเอเชียและอินเดียแสนอร่อย 🍜 | [Classification](4-Classification/README.md) | แนะนำตัวจำแนก | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | อาหารเอเชียและอินเดียแสนอร่อย 🍜 | [Classification](4-Classification/README.md) | ตัวจำแนกเพิ่มขึ้น | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | อาหารเอเชียและอินเดียแสนอร่อย 🍜 | [Classification](4-Classification/README.md) | สร้างแอปเว็บแนะนำโดยใช้โมเดลของคุณ | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | แนะนำการจัดกลุ่ม | [Clustering](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 | สำรวจรสนิยมดนตรีไนจีเรีย 🎧 | [Clustering](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 | แนะนำการประมวลผลภาษาธรรมชาติ (NLP) ☕️ | [Natural language processing](6-NLP/README.md) | เรียนรู้พื้นฐานเกี่ยวกับ NLP โดยการสร้างบอทง่ายๆ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | งาน NLP ที่พบบ่อย ☕️ | [Natural language processing](6-NLP/README.md) | เพิ่มความรู้ใน NLP โดยการเข้าใจงานทั่วไปที่จำเป็นเมื่อต้องจัดการกับโครงสร้างภาษา | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | การแปลภาษาและการวิเคราะห์อารมณ์ ♥️ | [Natural language processing](6-NLP/README.md) | การแปลภาษาและการวิเคราะห์อารมณ์กับ Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | โรงแรมโรแมนติกในยุโรป ♥️ | [Natural language processing](6-NLP/README.md) | การวิเคราะห์อารมณ์กับรีวิวโรงแรม 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | โรงแรมโรแมนติกในยุโรป ♥️ | [Natural language processing](6-NLP/README.md) | การวิเคราะห์อารมณ์กับรีวิวโรงแรม 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | แนะนำการพยากรณ์อนุกรมเวลา | [Time series](7-TimeSeries/README.md) | แนะนำการพยากรณ์อนุกรมเวลา | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ การใช้พลังงานโลก ⚡️ - การพยากรณ์อนุกรมเวลาด้วย ARIMA | [Time series](7-TimeSeries/README.md) | การพยากรณ์อนุกรมเวลาด้วย ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ การใช้พลังงานโลก ⚡️ - การพยากรณ์อนุกรมเวลาด้วย SVR | [Time series](7-TimeSeries/README.md) | การพยากรณ์อนุกรมเวลาด้วย Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | แนะนำการเรียนรู้เสริมแรง | [Reinforcement learning](8-Reinforcement/README.md) | แนะนำการเรียนรู้เสริมแรงด้วย Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | ช่วยปีเตอร์หนีหมาป่า! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| บทส่งท้าย | กรณีศึกษาและการประยุกต์ใช้ 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)
## การเข้าถึงแบบออฟไลน์
คุณสามารถรันเอกสารนี้แบบออฟไลน์ดยใช้ [Docsify](https://docsify.js.org/#/). Fork รีโปนี้, [ติดตั้ง Docsify](https://docsify.js.org/#/quickstart) บนเครื่องของคุณ จากนั้นในโฟลเดอร์รากของรีโปนี้ พิมพ์ `docsify serve` เว็บไซต์จะถูกให้บริการผ่านพอร์ต 3000 บนเครื่องของคุณ: `localhost:3000`.
คุณสามารถเรียกดูเอกสารนี้แบบออฟไลน์ด้วการใช้ [Docsify](https://docsify.js.org/#/). ทำการ fork repository นี้, [ติดตั้ง Docsify](https://docsify.js.org/#/quickstart) ในเครื่องของคุณ แล้วในโฟลเดอร์รากของ repo นี้ ให้พิมพ์คำสั่ง `docsify serve` เว็บไซต์จะถูกให้บริการที่พอร์ต 3000 บน localhost ของคุณ: `localhost:3000`
## ไฟล์ PDF
ค้นหาไฟล์ 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
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-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 @@
---
### การเรียนรู้หลัก
### การเรียนรู้พื้นฐาน
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
@ -199,25 +209,30 @@
---
### ชุดเรื่อง Copilot
### ชุด Copilot
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## การขอความช่วยเหลือ
## ขอความช่วยเหลือ
หากคุณติดขัดหรือมีคำถามเกี่ยวกับการพัฒนาแอป AI เข้าร่วมกับผู้เรียนและนักพัฒนาที่มีประสบการณ์ในการสนทนาเกี่ยวกับ MCP นี่คือชุมชนที่ให้การสนับสนุนซึ่งคำถามได้รับการต้อนรับและแบ่งปันความรู้กันอย่างเสรี
หากคุณติดขัดหรือมีคำถามเกี่ยวกับการสร้างแอป AI เข้าร่วมกับผู้เรียนและนักพัฒนาที่มีประสบการณ์ในการสนทนาเกี่ยวกับ MCP นี่คือชุมชนที่ให้การสนับสนุนซึ่งยินดีตอบคำถามและแบ่งปันความรู้กันอย่างอิสระ
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
หากคุณมีคำติชมเกี่ยวกับผลิตภัณฑ์หรือพบข้อผิดพลาดในขณะพัฒนาโปรดเยี่ยมชม:
หากคุณมีข้อเสนอแนะเกี่ยวกับผลิตภัณฑ์หรือพบข้อผิดพลาดขณะพัฒนาเยี่ยมชมได้ที่:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## เคล็ดลับเพิ่มเติมสำหรับการเรียนรู้
- ทบทวนสมุดบันทึกหลังเรียนแต่ละบทเพื่อความเข้าใจที่ดีขึ้น
- ฝึกฝนการนำอัลกอริทึมไปใช้ด้วยตัวเอง
- สำรวจชุดข้อมูลจริงโดยใช้แนวคิดที่เรียนรู้มา
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาด้วยปัญญาประดิษฐ์ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้ความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความคลาดเคลื่อน เอกสารต้นฉบับในภาษาดั้งเดิมถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ควรใช้บริการแปลโดยมนุษย์มืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใด ๆ ที่เกิดขึ้นจากการใช้การแปลนี้
**ข้อจำกัดความรับผิดชอบ**:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลถูกต้องที่สุด แต่โปรดทราบว่าการแปลโดยอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นฉบับถือเป็นแหล่งข้อมูลที่น่าเชื่อถือที่สุด สำหรับข้อมูลที่สำคัญ ควรใช้บริการแปลโดยมืออาชีพเพื่อความถูกต้อง เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดใดๆ ที่เกิดขึ้นจากการใช้การแปลนี้
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save