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

update-translations
localizeflow[bot] 1 week ago
parent 5f47c353eb
commit 6991f52604

@ -30,8 +30,8 @@
"language_code": "lt"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-03T17:40:51+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T09:16:17+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "lt"
},
@ -90,8 +90,8 @@
"language_code": "lt"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T07:43:58+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:17:28+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "lt"
},
@ -186,8 +186,8 @@
"language_code": "lt"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T08:00:00+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T09:17:51+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "lt"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "lt"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T09:07:06+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "lt"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-03T18:12:14+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "lt"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T09:07:13+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "lt"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T07:59:28+00:00",
@ -540,8 +552,8 @@
"language_code": "lt"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T09:18:06+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T09:16:10+00:00",
"source_file": "README.md",
"language_code": "lt"
},

@ -1,16 +1,18 @@
# Susipažinkite su Atsakingo DI įrankių rinkiniu
# Ištyrkite Atsakingo DI įrankių rinkinį
## Instrukcijos
## Nurodymai
Šioje pamokoje sužinojote apie Atsakingo DI įrankių rinkinį „atvirojo kodo, bendruomenės palaikomą projektą, skirtą padėti duomenų mokslininkams analizuoti ir tobulinti DI sistemas.“ Šiai užduočiai atlikti išnagrinėkite vieną iš RAI įrankių rinkinio [užrašinių](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) ir pateikite savo išvadas rašytiniame darbe arba pristatyme.
Šioje pamokoje sužinojote apie Atsakingo DI įrankių rinkinį, „atviro kodo, bendruomenės valdoma projektą, padedantį duomenų mokslininkams analizuoti ir tobulinti DI sistemas.“ Šiam užduoties atlikimui ištyrinėkite vieną iš RAI Toolbox [užrašų knygelių](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) ir pateikite savo išvadas rašto darbe arba pristatyme.
## Vertinimo kriterijai
## Vertinimo lentelė
| Kriterijai | Puikiai | Pakankamai | Reikia tobulinti |
| ---------- | ------- | ---------- | ---------------- |
| | Pateiktas rašytinis darbas arba „PowerPoint“ pristatymas, kuriame aptariamos Fairlearn sistemos, vykdyta užrašinė ir išvados, padarytos ją vykdant | Pateiktas rašytinis darbas be išvadų | Rašytinis darbas nepateiktas |
| Kriterijus | Puikiai | Patenkinamai | Reikia patobulinimų |
| -------- | --------- | -------- | ----------------- |
| | Pateikiamas rašto darbas arba „PowerPoint“ pristatymas, aptariantis Fairlearn sistemas, paleistą užrašų knygelę ir išvadas, padarytas ją paleidus | Pateikiamas rašto darbas be išvadų | Rašto darbo nėra |
---
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama profesionali žmogaus vertimo paslauga. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus interpretavimus, atsiradusius dėl šio vertimo naudojimo.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Atsakomybės išlyginimas**:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors stengiamės užtikrinti tikslumą, atkreipkite dėmesį, kad automatizuoti vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojamas profesionalus žmogaus vertimas. Neatsakome už jokius nesusipratimus ar klaidingus aiškinimus, kylančius dėl šio vertimo naudojimo.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,124 +1,136 @@
# Sukurkite regresijos modelį naudodami Scikit-learn: keturi regresijos būdai
# Sukurkite regresijos modelį naudodami Scikit-learn: regresija keturiais būdais
![Linijinės ir polinominės regresijos infografika](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> Infografika: [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Prieš paskaitą atlikite testą](https://ff-quizzes.netlify.app/en/ml/)
## Pradedančiųjų pastaba
Linijinė regresija naudojama, kai norime nuspėti **skaitinę reikšmę** (pavyzdžiui, namo kainą, temperatūrą ar pardavimus).
Ji veikia ieškodama tiesės, kuri geriausiai atspindi ryšį tarp įvesties požymių ir išvesties.
Šiame pamokoje daugiausia dėmesio skiriame koncepcijos supratimui, prieš nagrinėjant pažangesnes regresijos technikas.
![Linijinė ir polininė regresija infografika](../../../../translated_images/lt/linear-polynomial.5523c7cb6576ccab.webp)
> Infografika autoriaus [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Priešpaskaitinis testas](https://ff-quizzes.netlify.app/en/ml/)
> ### [Ši pamoka taip pat prieinama R kalba!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Įvadas
Iki šiol jūs tyrinėjote, kas yra regresija, naudodami pavyzdinius duomenis iš moliūgų kainų duomenų rinkinio, kurį naudosime visoje šioje pamokoje. Taip pat vizualizavote duomenis naudodami Matplotlib.
Iki šiol jūs susipažinote, kas yra regresija, naudodami pavyzdinius duomenis iš moliūgų kainų rinkinio, kurį naudosime per visą pamoką. Taip pat juos vizualizavote naudodami Matplotlib.
Dabar esate pasiruošę giliau pasinerti į regresiją mašininio mokymosi (ML) kontekste. Nors vizualizacija leidžia suprasti duomenis, tikroji mašininio mokymosi galia slypi _modelių treniravime_. Modeliai yra treniruojami naudojant istorinius duomenis, kad automatiškai užfiksuotų duomenų priklausomybes, ir jie leidžia prognozuoti rezultatus naujiems duomenims, kurių modelis dar nematė.
Dabar esate pasiruošę giliau gilintis į regresiją ML kontekste. Nors vizualizacija leidžia geriau suprasti duomenis, tikroji Mašininio Mokymosi galia kyla iš _modelių mokymo_. Modeliai mokomi pagal istorinį duomenų rinkinį, kad automatiškai užfiksuotų duomenų priklausomybes ir leistų prognozuoti rezultatus naujiems, anksčiau nematytiems duomenims.
Šioje pamokoje sužinosite daugiau apie du regresijos tipus: _paprastą linijinę regresiją_ ir _polinominę regresiją_, kartu su kai kuriais šių metodų matematiniais pagrindais. Šie modeliai leis mums prognozuoti moliūgų kainas, atsižvelgiant į skirtingus įvesties duomenis.
Šioje pamokoje sužinosite daugiau apie du regresijos tipus: _pagrindinę linijinę regresiją_ ir _polininę regresiją_, taip pat apie dalį matematikos, esančios šių metodų pagrindu. Šie modeliai leis mums prognozuoti moliūgų kainas, remiantis skirtingais įvesties duomenimis.
[![ML pradedantiesiems - Linijinės regresijos supratimas](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML pradedantiesiems - Linijinės regresijos supratimas")
> 🎥 Spustelėkite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą vaizdo įrašą apie linijinę regresiją.
> 🎥 Paspauskite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą linijinės regresijos apžvalgą.
> Visame šioje mokymo programoje darome prielaidą, kad turite minimalias matematikos žinias, ir siekiame, kad ji būtų prieinama studentams iš kitų sričių. Atkreipkite dėmesį į pastabas, 🧮 išnašas, diagramas ir kitus mokymosi įrankius, kurie padės suprasti.
> Per visą šią kurso programą mes laikome, kad matematikos žinios minimalios ir stengiamės jas padaryti prieinamas studentams iš kitų sričių, todėl atkreipkite dėmesį į pastabas, 🧮 iškylamuosius langus, diagramas ir kitus mokymosi įrankius, padedančius suvokimui.
### Prieš pradedant
### Reikalavimai
Iki šiol turėtumėte būti susipažinę su moliūgų duomenų struktūra, kurią nagrinėjame. Šioje pamokoje galite rasti iš anksto įkeltus ir išvalytus duomenis _notebook.ipynb_ faile. Faile moliūgų kaina pateikiama už bušelį naujame duomenų rėmelyje. Įsitikinkite, kad galite paleisti šiuos užrašus naudodami Visual Studio Code branduolius.
Jau turėtumėte būti susipažinę su moliūgų duomenų struktūra, kurią nagrinėjame. Ją galite rasti iš anksto įkeltą ir išvalytą šios pamokos _notebook.ipynb_ faile. Faile moliūgų kaina rodoma už bushelį naujame duomenų rinkinyje. Užtikrinkite, kad galite paleisti šiuos užrašų knygelių failus Visual Studio Code branduoliuose.
### Pasiruošimas
### Paruošimas
Primename, kad įkeliame šiuos duomenis tam, kad galėtume užduoti klausimus:
Primename, kad duomenis įkeliame tam, kad galėtume užduoti klausimus.
- Kada geriausia pirkti moliūgus?
- Kokią kainą galiu tikėtis už miniatiūrinių moliūgų dėžę?
- Ar turėčiau juos pirkti pusės bušelio krepšiuose ar 1 1/9 bušelio dėžėse?
Pažiūrėkime giliau į šiuos duomenis.
- Kokios kainos galiu tikėtis už iešminius moliūgus dėžėje?
- Ar pirkti juos per pusės bushelio krepšius, ar per 1 1/9 bushelio dėžutes?
Toliau gilinamės į šiuos duomenis.
Praeitoje pamokoje sukūrėte Pandas duomenų rinkinį ir užpildėte jį dalimi originalių duomenų, standartizuodami kainas pagal bushelį. Tačiau tai leido surinkti tik apie 400 duomenų taškų ir tik rudens mėnesiams.
Ankstesnėje pamokoje sukūrėte Pandas duomenų rėmelį ir užpildėte jį dalimi pradinio duomenų rinkinio, standartizuodami kainas pagal bušelį. Tačiau taip galėjote surinkti tik apie 400 duomenų taškų ir tik rudens mėnesiams.
Pažiūrėkite į duomenis, kuriuos iš anksto įkėlėme šios pamokos užrašų knygelėje. Duomenys įkelti ir parodytas pradinis sklaidos grafikas rodo mėnesio duomenis. Galbūt galime dar šiek tiek plačiau pažvelgti į duomenų pobūdį, juos dar labiau išvalydami.
Pažvelkite į duomenis, kurie yra iš anksto įkelti šios pamokos pridedamame užrašų faile. Duomenys yra iš anksto įkelti, o pradinis sklaidos grafikas yra sudarytas, kad parodytų mėnesio duomenis. Galbūt galime gauti šiek tiek daugiau informacijos apie duomenų pobūdį, juos dar labiau išvalydami.
## Linijinės regresijos tiesė
## Linijinės regresijos linija
Kaip sužinojote 1-pamokoje, linijinės regresijos užduotis yra nubraižyti tiesę, kuri:
Kaip sužinojote 1-oje pamokoje, linijinės regresijos tikslas yra nubrėžti liniją, kuri:
- **Atvaizduoja kintamųjų ryšius**. Parodo sąryšį tarp kintamųjų
- **Leidžia prognozuoti**. Tiksliai numatyti, kur naujas duomenų taškas kris santykyje su ta tiesė.
- **Parodo kintamųjų ryšius**. Parodo ryšį tarp kintamųjų
- **Leidžia prognozuoti**. Leidžia tiksliai prognozuoti, kur naujas duomenų taškas atsidurs santykyje su ta linija.
Įprasta **mažiausių kvadratų regresijoje** piešti tokį tiesiųjį grafiką. Terminas „Mažiausių kvadratų“ reiškia procesą, kurio metu minimalizuojama bendroji klaida modelyje. Kiekvienam duomenų taškui matuojame vertikalų atstumą (vadinamą likučiu) tarp tikrosios reikšmės ir mūsų regresijos linijos.
Įprasta **mažiausių kvadratų regresija** naudoti šio tipo linijai braižyti. Terminas „mažiausi kvadratai“ reiškia, kad visi duomenų taškai aplink regresijos liniją yra pakelti kvadratu ir tada sudedami. Idealiu atveju, galutinė suma yra kuo mažesnė, nes norime kuo mažiau klaidų arba `mažiausių kvadratų`.
Šiuos atstumus kvadratuojame dėl dviejų pagrindinių priežasčių:
Mes tai darome, nes norime modeliuoti liniją, kuri turi mažiausią bendrą atstumą nuo visų mūsų duomenų taškų. Taip pat kvadratuojame terminus prieš juos sudėdami, nes mums rūpi jų dydis, o ne kryptis.
1. **Dydžio svarba, o ne kryptis:** Norime, kad klaida -5 būtų vertinama taip pat kaip +5. Kvadratuojant visos reikšmės tampa teigiamos.
> **🧮 Parodykite matematiką**
>
> Ši linija, vadinama _geriausiai tinkančia linija_, gali būti išreikšta [lygtimi](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
2. **Išskirtinių atvejų bausmė:** Kvadratuojant didelės klaidos įgauna didesnį svorį, dėl to tiesė stengiasi būti arčiau toli esančių taškų.
Tada sudedame visus kvadratuotus atstumus. Mūsų tikslas rasti tą tiesę, kuri minimizuoja šį sumą (mažiausia įmanoma reikšmė) todėl vadinama „mažiausių kvadratų“ metodu.
> **🧮 Parodykite man matematiką**
>
> Ši tiesė, vadinama _geriausiai pritaikyta tiesė_, gali būti išreikšta [lygtimi](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` yra „paaiškinamasis kintamasis“. `Y` yra „priklausomas kintamasis“. Linijos nuolydis yra `b`, o `a` yra y-ašies perėmimas, kuris nurodo `Y` reikšmę, kai `X = 0`.
> `X` yra 'paaiškinamasis kintamasis'. `Y` yra 'priklausomas kintamasis'. Tiesės nuolydis yra `b`, o `a` yra y-interceptas, kuris reiškia `Y` reikšmę, kai `X = 0`.
>
>![apskaičiuoti nuolydį](../../../../2-Regression/3-Linear/images/slope.png)
>![nuolydžio skaičiavimas](../../../../translated_images/lt/slope.f3c9d5910ddbfcf9.webp)
>
> Pirmiausia apskaičiuokite nuolydį `b`. Infografika: [Jen Looper](https://twitter.com/jenlooper)
> Pirmiausia apskaičiuojame nuolydį `b`. Infografika autoriaus [Jen Looper](https://twitter.com/jenlooper)
>
> Kitaip tariant, remiantis mūsų moliūgų duomenų pradiniu klausimu: „prognozuokite moliūgo kainą už bušelį pagal mėnesį“, `X` reikštų kainą, o `Y` reikštų pardavimo mėnesį.
> Kitaip tariant, kalbant apie mūsų moliūgų duomenų pradinį klausimą: „prognozuoti moliūgų kainą už bushelį pagal mėnesį“, `X` reikštų kainą, o `Y` būtų pardavimo mėnuo.
>
>![užbaigti lygtį](../../../../2-Regression/3-Linear/images/calculation.png)
>![lygtys užbaigimas](../../../../translated_images/lt/calculation.a209813050a1ddb1.webp)
>
> Apskaičiuokite `Y` reikšmę. Jei mokate apie 4 dolerius, tai turi būti balandis! Infografika: [Jen Looper](https://twitter.com/jenlooper)
> Apskaičiuokite `Y` reikšmę. Jei mokate apie 4 USD, tai turi būti balandis! Infografika autoriaus [Jen Looper](https://twitter.com/jenlooper)
>
> Matematikos, kuri apskaičiuoja liniją, tikslas yra parodyti linijos nuolydį, kuris taip pat priklauso nuo perėmimo, arba kur `Y` yra, kai `X = 0`.
> Matematikos formule turi parodyti linijos nuolydį, kuris taip pat priklauso nuo sankirtos, arba kur `Y` yra, kai `X=0`.
>
> Galite stebėti šių reikšmių skaičiavimo metodą svetainėje [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Taip pat apsilankykite [mažiausių kvadratų skaičiuoklėje](https://www.mathsisfun.com/data/least-squares-calculator.html), kad pamatytumėte, kaip skaičių reikšmės veikia liniją.
> Galite stebėti skaičiavimo metodą šioje svetainėje [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Taip pat apsilankykite [Šiame mažiausių kvadratų skaičiuoklyje](https://www.mathsisfun.com/data/least-squares-calculator.html), kad pamatytumėte, kaip skaičių vertės veikia tiesę.
## Koreliacija
Dar vienas terminas, kurį reikia suprasti, yra **koreliacijos koeficientas** tarp duotų X ir Y kintamųjų. Naudodami sklaidos grafiką, galite greitai vizualizuoti šį koeficientą. Grafikas, kuriame duomenų taškai išsidėstę tvarkinga linija, turi aukštą koreliaciją, tačiau grafikas, kuriame duomenų taškai išmėtyti tarp X ir Y, turi žemą koreliaciją.
Dar vienas svarbus terminas yra **koreliacijos koeficientas** tarp tam tikrų X ir Y kintamųjų. Naudodami sklaidos grafiką greitai galite vizualizuoti šį koeficientą. Grafikas su duomenų taškais, susitelkusiais į tvarkingą liniją, turi aukštą koreliaciją, o su duomenų taškais išsibarsčiusiais tarp X ir Y - žemą koreliaciją.
Geras linijinės regresijos modelis bus tas, kuris turi aukštą (artimesnį 1 nei 0) koreliacijos koeficientą, naudojant mažiausių kvadratų regresijos metodą su regresijos linija.
Geras linijinės regresijos modelis turi būti toks, kurio koreliacijos koeficientas pagal mažiausių kvadratų regresijos metodą yra aukštas (arčiau 1 nei 0).
✅ Paleiskite šios pamokos pridedamą užrašų failą ir pažiūrėkite į mėnesio ir kainos sklaidos grafiką. Ar duomenys, siejantys mėnesį su moliūgų pardavimo kaina, atrodo turintys aukštą ar žemą koreliaciją, remiantis jūsų vizualine sklaidos grafiko interpretacija? Ar tai pasikeičia, jei naudojate tikslesnį matą, pvz., *metų dieną* (t. y. dienų skaičių nuo metų pradžios)?
✅ Paleiskite šios pamokos užrašų knygelę ir pažiūrėkite į MonthPrice sklaidos grafiką. Ar duomenys, susiejantys mėnesį su moliūgų kainomis, atrodo turintys aukštą ar žemą koreliaciją pagal jūsų vizualinę sklaidos grafiką? Ar tai pasikeičia, jei vietoje `Month` panaudojate smulkesnį matavimą, pvz., *metų dieną* (t.y. dienų skaičių nuo metų pradžios)?
Toliau pateiktame kode darome prielaidą, kad išvalėme duomenis ir gavome duomenų rėmelį, vadinamą `new_pumpkins`, panašų į šį:
Toliau pateiktame kode skelbiame, kad duomenys buvo sutvarkyti ir mes turime duomenų rėmelį `new_pumpkins`, panašų į šį:
ID | Mėnuo | MetųDiena | Rūšis | Miestas | Pakuotė | Mažiausia Kaina | Didžiausia Kaina | Kaina
---|-------|-----------|-------|---------|---------|-----------------|------------------|------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bušelio dėžės | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bušelio dėžės | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bušelio dėžės | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bušelio dėžės | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bušelio dėžės | 15.0 | 15.0 | 13.636364
ID | Mėnuo | MetųDiena | Veislė | Miestas | Pakuotė | Žemiausia kaina | Aukščiausia kaina | Kaina
---|-------|-----------|---------|---------|---------|----------------|------------------|-------
70 | 9 | 267 | PYRAGO TIPO | BALTIMORA | 1 1/9 bushelio dėžutės | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PYRAGO TIPO | BALTIMORA | 1 1/9 bushelio dėžutės | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PYRAGO TIPO | BALTIMORA | 1 1/9 bushelio dėžutės | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PYRAGO TIPO | BALTIMORA | 1 1/9 bushelio dėžutės | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PYRAGO TIPO | BALTIMORA | 1 1/9 bushelio dėžutės | 15.0 | 15.0 | 13.636364
> Duomenų valymo kodas yra pateiktas [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Atlikome tuos pačius valymo veiksmus kaip ir ankstesnėje pamokoje, ir apskaičiavome `MetųDiena` stulpelį naudodami šią išraišką:
> Duomenų valymo kodas yra prieinamas faile [`notebook.ipynb`](notebook.ipynb). Atlikome tuos pačius valymo žingsnius kaip ir ankstesnėje pamokoje ir apskaičiavome `DayOfYear` stulpelį naudodami šią išraišką:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Dabar, kai suprantate linijinės regresijos matematiką, sukurkime regresijos modelį, kad pamatytume, ar galime prognozuoti, kuri moliūgų pakuotė turės geriausias kainas. Kažkas, perkantis moliūgus šventinei moliūgų aikštelei, galėtų norėti šios informacijos, kad optimizuotų savo pirkinius.
Dabar, kai suprantate linijinės regresijos matematinius pagrindus, sukurkime Regresijos modelį, kad sužinotume, ar galime prognozuoti, kuri moliūgų pakuotė turės geriausias kainas. Kas nors, perkantis moliūgus šventiniam moliūgų laukui, norėtų turėti šią informaciją, kad galėtų optimizuoti moliūgų pirkimus.
## Ieškome koreliacijos
## Koreliacijos paieška
[![ML pradedantiesiems - Koreliacijos paieška: Linijinės regresijos raktas](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML pradedantiesiems - Koreliacijos paieška: Linijinės regresijos raktas")
[![ML pradedantiesiems - Koreliacijos paieška: raktas į linijinę regresiją](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML pradedantiesiems - Koreliacijos paieška: raktas į linijinę regresiją")
> 🎥 Spustelėkite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą vaizdo įrašą apie koreliaciją.
> 🎥 Paspauskite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą koreliacijos apžvalgą.
Iš ankstesnės pamokos tikriausiai matėte, kad vidutinė kaina skirtingais mėnesiais atrodo taip:
Iš ankstesnės pamokos greičiausiai jau matėte, kad vidutinė kainų tendencija pagal mėnesius atrodo maždaug taip:
<img alt="Vidutinė kaina pagal mėnesį" src="../../../../translated_images/lt/barchart.a833ea9194346d76.webp" width="50%"/>
Tai rodo, kad turėtų būti tam tikra koreliacija, ir galime pabandyti treniruoti linijinį regresijos modelį, kad prognozuotume ryšį tarp `Mėnuo` ir `Kaina`, arba tarp `MetųDiena` ir `Kaina`. Štai sklaidos grafikas, rodantis pastarąjį ryšį:
Tai rodo, kad turėtų būti kažkokia koreliacija, ir galime bandyti apmokyti linijinės regresijos modelį prognozuoti ryšį tarp `Month` ir `Price` arba tarp `DayOfYear` ir `Price`. Štai sklaidos grafikas, rodantis pastarąjį ryšį:
<img alt="Sklaidos grafikas: Kaina vs. Metų Diena" src="../../../../translated_images/lt/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Sklaidos grafikas: Kaina prieš Metų dieną" src="../../../../translated_images/lt/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Pažiūrėkime, ar yra koreliacija, naudodami `corr` funkciją:
Pažiūrėkime, ar yra koreliacija naudodami funkciją `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Atrodo, kad koreliacija yra gana maža: -0.15 pagal `Mėnuo` ir -0.17 pagal `MetųDiena`, tačiau gali būti kita svarbi priklausomybė. Atrodo, kad yra skirtingos kainų grupės, atitinkančios skirtingas moliūgų rūšis. Norėdami patvirtinti šią hipotezę, nubrėžkime kiekvieną moliūgų kategoriją skirtinga spalva. Perduodami `ax` parametrą `scatter` braižymo funkcijai, galime nubrėžti visus taškus tame pačiame grafike:
Atrodo, kad koreliacija gana maža, -0,15 pagal `Month` ir -0,17 pagal `DayOfMonth`, bet gali būti kitas svarbus ryšys. Atrodo, kad kainų grupės atitinka skirtingas moliūgų veisles. Norėdami patvirtinti šią hipotezę, nubraižykime kiekvieną moliūgų kategoriją skirtingomis spalvomis. Paduodami `ax` parametrą funkcijai `scatter`, galime nubraižyti visus taškus vienoje diagramoje:
```python
ax=None
@ -128,42 +140,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="Sklaidos grafikas: Kaina vs. Metų Diena" src="../../../../translated_images/lt/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Sklaidos grafikas: Kaina prieš Metų dieną su spalvomis" src="../../../../translated_images/lt/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Mūsų tyrimas rodo, kad rūšis turi didesnę įtaką bendrai kainai nei faktinė pardavimo data. Tai galime pamatyti stulpeline diagrama:
Mūsų tyrimas rodo, kad veislė labiau veikia bendrą kainą nei tikroji pardavimo data. Tai galime pamatyti ir juostinėje diagramoje:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Stulpelinė diagrama: Kaina pagal rūšį" src="../../../../translated_images/lt/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Juostinė diagrama: kaina pagal veislę" src="../../../../translated_images/lt/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Dabar sutelkime dėmesį tik į vieną moliūgų rūšį, „pie type“, ir pažiūrėkime, kokią įtaką data turi kainai:
Tuo tarpu sutelkime dėmesį tik į vieną moliūgų veislę, pie type, ir pažiūrėkime, kokį poveikį data turi kainai:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Sklaidos grafikas: Kaina vs. Metų Diena" src="../../../../translated_images/lt/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Sklaidos grafikas: Kaina prieš Metų dieną, tik pie type" src="../../../../translated_images/lt/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Jei dabar apskaičiuosime koreliaciją tarp `Kaina` ir `MetųDiena` naudodami `corr` funkciją, gausime maždaug `-0.27` - tai reiškia, kad treniruoti prognozavimo modelį yra prasminga.
Jei dabar apskaičiuosime koreliaciją tarp `Price` ir `DayOfYear` panaudodami funkciją `corr`, gausime kažką panašaus į `-0.27` o tai reiškia, kad verta apmokyti prognozuojamą modelį.
> Prieš treniruojant linijinį regresijos modelį, svarbu įsitikinti, kad mūsų duomenys yra švarūs. Linijinė regresija neveikia gerai su trūkstamomis reikšmėmis, todėl verta pašalinti visas tuščias ląsteles:
> Prieš pradėdami apmokyti linijinės regresijos modelį, svarbu įsitikinti, kad duomenys yra švarūs. Linijinė regresija prastai veikia su trūkstamomis reikšmėmis, todėl verta pašalinti visas tuščias langelius:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Kitas požiūris būtų užpildyti tas tuščias reikšmes vidutinėmis reikšmėmis iš atitinkamo stulpelio.
Kitas būdas - užpildyti tuščias reikšmes atitinkamų stulpelių vidurkiais.
## Paprasta linijinė regresija
[![ML pradedantiesiems - Linijinė ir polinominė regresija naudojant Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML pradedantiesiems - Linijinė ir polinominė regresija naudojant Scikit-learn")
[![ML pradedantiesiems - Linijinė ir polininė regresija naudojant Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML pradedantiesiems - Linijinė ir polininė regresija naudojant Scikit-learn")
> 🎥 Spustelėkite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą vaizdo įrašą apie linijinę ir polinominę regresiją.
> 🎥 Paspauskite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą linijinės ir polininės regresijos apžvalgą.
Norėdami treniruoti mūsų linijinį regresijos modelį, naudosime **Scikit-learn** biblioteką.
Mūsų Linijinės regresijos modelio mokymui naudosime **Scikit-learn** biblioteką.
```python
from sklearn.linear_model import LinearRegression
@ -171,59 +183,69 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Pradėsime atskirdami įvesties reikšmes (savybes) ir laukiamą rezultatą (etiketę) į atskirus numpy masyvus:
Pradėsime atskirdami įvesties reikšmes ( požymius) ir laukiamą išvestį (etiketę) į atskirus numpy masyvus:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Atkreipkite dėmesį, kad turėjome atlikti `reshape` įvesties duomenims, kad linijinės regresijos paketas juos suprastų teisingai. Linijinė regresija tikisi 2D masyvo kaip įvesties, kur kiekviena masyvo eilutė atitinka įvesties savybių vektorių. Mūsų atveju, kadangi turime tik vieną įvestį, mums reikia masyvo su forma N×1, kur N yra duomenų rinkinio dydis.
> Atkreipkite dėmesį, kad reikėjo atlikti `reshape` su įvesties duomenimis, kad Linijinės regresijos paketas suprastų juos teisingai. Linijinė regresija laukia 2D masyvo kaip įvesties, kur kiekviena masyvo eilutė atitinka požymių vektorių. Mūsų atveju, kai turime tik vieną įvestį, mums reikia masyvo formos N×1, kur N duomenų rinkinio dydis.
Tada turime padalyti duomenis į treniravimo ir testavimo duomenų rinkinius, kad galėtume patikrinti savo modelį po treniravimo:
Tada turime padalinti duomenis į mokymo ir testavimo rinkinius, kad galėtume modelį patikrinti po mokymo:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Galiausiai, treniruoti faktinį linijinį regresijos modelį užtrunka tik dvi kodo eilutes. Apibrėžiame `LinearRegression` objektą ir pritaikome jį mūsų duomenims naudodami `fit` metodą:
Galiausiai, faktinis Linijinės regresijos modelio mokymas užima tik dvi kodo eilutes. Apibrėžiame `LinearRegression` objektą ir pritaikome jį mūsų duomenims naudodami `fit` metodą:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` objektas po `fit`-inimo turi visus regresijos koeficientus, kuriuos galima pasiekti naudojant `.coef_` savybę. Mūsų atveju yra tik vienas koeficientas, kuris turėtų būti apie `-0.017`. Tai reiškia, kad kainos atrodo šiek tiek mažėjančios laikui bėgant, bet ne per daug - apie 2 centus per dieną. Taip pat galime pasiekti regresijos susikirtimo tašką su Y ašimi naudodami `lin_reg.intercept_` - mūsų atveju
Mūsų klaida atrodo susijusi su 2 taškais, tai yra ~17%. Nelabai gerai. Kitas modelio kokybės rodiklis yra **determinacijos koeficientas**, kurį galima gauti taip:
`LinearRegression` objektas po `fit` pritaikymo turi visus regresijos koeficientus, prie kurių galima prieiti naudodami `.coef_` savybę. Mūsų atveju yra tik vienas koeficientas, kuris turėtų būti maždaug `-0.017`. Tai reiškia, kad kainos, atrodo, šiek tiek krinta laikui bėgant, bet ne per daug, apie 2 centus per dieną. Taip pat galime prieiti prie regresijos susikirtimo su Y ašimi naudodami `lin_reg.intercept_` mūsų atveju jis bus maždaug `21`, rodantis kainą metų pradžioje.
Norėdami pamatyti, kokia tiksliai yra mūsų modelio kokybė, galime prognozuoti kainas testiniame duomenų rinkinyje ir tada pamatuoti, kiek mūsų prognozės yra arti tikėtinų reikšmių. Tai galima padaryti naudojant vidurinės kvadratinės paklaidos (MSE) metriką, kuri yra visų kvadratinių skirtumų tarp tikėtinos ir prognozuotos reikšmės vidurkis.
```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}%)')
```
Mūsų klaida atrodo apie 2 taškus, tai apie ~17%. Ne per gera. Kitas modelio kokybės indikatorius yra **nustatymo koeficientas**, kurį galima gauti taip:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Jei reikšmė yra 0, tai reiškia, kad modelis neatsižvelgia į įvesties duomenis ir veikia kaip *blogiausias linijinis prognozuotojas*, kuris tiesiog yra rezultatų vidutinė reikšmė. Reikšmė 1 reiškia, kad galime tobulai prognozuoti visus numatomus rezultatus. Mūsų atveju determinacijos koeficientas yra apie 0.06, kas yra gana žema reikšmė.
```
Jei reikšmė yra 0, tai reiškia, kad modelis neatsižvelgia į įvesties duomenis ir veikia kaip *blogiausias tiesinis prognozuotojas*, kuris tiesiog paima vidutinę reikšmę. Reikšmė 1 reiškia, kad galime tobulai prognozuoti visas tikėtinas reikšmes. Mūsų atveju koeficientas yra apie 0.06, kas yra gan žema.
Taip pat galime nubraižyti testinius duomenis kartu su regresijos linija, kad geriau suprastume, kaip regresija veikia mūsų atveju:
Taip pat galime nupiešti testinius duomenis kartu su regresijos linija, kad geriau matytume, kaip regresija veikia mūsų atveju:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="Linijinė regresija" src="../../../../translated_images/lt/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/lt/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Polinominė regresija
## Polinominė regresija
Kitas linijinės regresijos tipas yra polinominė regresija. Nors kartais tarp kintamųjų yra linijinis ryšys kuo didesnis moliūgas pagal tūrį, tuo didesnė kaina kartais šių ryšių negalima pavaizduoti kaip plokštumos ar tiesės.
Kitas linijinės regresijos tipas yra polinominė regresija. Nors kartais tarp kintamųjų yra tiesinė priklausomybė kuo didesnis moliūnas tūriu, tuo didesnė kaina kartais šių priklausomybių negalima nubraižyti plokštuma ar tiesia linija.
Štai [keletas pavyzdžių](https://online.stat.psu.edu/stat501/lesson/9/9.8) duomenų, kuriems galėtų būti taikoma polinominė regresija.
Čia yra [daugiau pavyzdžių](https://online.stat.psu.edu/stat501/lesson/9/9.8) duomenų, kuriems gali tikti polinominė regresija
Pažvelkite dar kartą į ryšį tarp datos ir kainos. Ar šis sklaidos grafikas atrodo taip, kad jį būtinai reikėtų analizuoti tiesės pagalba? Ar kainos negali svyruoti? Tokiu atveju galite išbandyti polinominę regresiją.
Dar kartą pažiūrėkite į priklausomybę tarp Datos ir Kainos. Ar šis taškų debesis būtinai turėtų būti analizuojamas tiesia linija? Ar kainos negali svyruoti? Tokiu atveju galite išbandyti polinominę regresiją.
✅ Polinomai yra matematinės išraiškos, kurios gali susidėti iš vieno ar daugiau kintamųjų ir koeficientų.
✅ Polinomai yra matematiniai išraiškos, kurios gali susidaryti iš vieno ar daugiau kintamųjų ir koeficientų
Polinominė regresija sukuria kreivę, kuri geriau atitinka nelinijinius duomenis. Mūsų atveju, jei įvesties duomenyse įtrauksime kvadratinį `DayOfYear` kintamąjį, turėtume galėti pritaikyti savo duomenis parabolinei kreivei, kuri turės minimumą tam tikru metų momentu.
Polinominė regresija sukuria išlenktą liniją, kad geriau pritaikytų netiesinius duomenis. Mūsų atveju, jei į įvesties duomenis įtrauksime pakeltą kvadratu `DayOfYear` kintamąjį, galėsime pritaikyti duomenis parabolės formai, turinčiai minimumą metų viduje.
Scikit-learn turi naudingą [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), leidžiantį sujungti skirtingus duomenų apdorojimo žingsnius. **Pipeline** yra **vertintojų** grandinė. Mūsų atveju sukursime pipeline, kuris pirmiausia prideda polinomines savybes prie mūsų modelio, o tada treniruoja regresiją:
Scikit-learn turi naudingą [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), leidžiančią sujungti skirtingus duomenų apdorojimo žingsnius. **Pipeline** yra **lankų** seka. Mūsų atveju sukursime pipeline, kuris pirmiausia prideda polinominius požymius prie mūsų modelio ir tada treniruoja regresiją:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -232,62 +254,62 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
```
Naudojant `PolynomialFeatures(2)` reiškia, kad įtrauksime visus antro laipsnio polinomus iš įvesties duomenų. Mūsų atveju tai tiesiog reikš `DayOfYear`<sup>2</sup>, bet turint du įvesties kintamuosius X ir Y, tai pridės X<sup>2</sup>, XY ir Y<sup>2</sup>. Jei norime, galime naudoti aukštesnio laipsnio polinomus.
Naudojant `PolynomialFeatures(2)` reiškia, kad įtraukiame visus antro laipsnio polinomus iš įvesties duomenų. Mūsų atveju tai reikštų tik `DayOfYear`<sup>2</sup>, bet turint du kintamuosius X ir Y, bus pridedama X<sup>2</sup>, XY ir Y<sup>2</sup>. Taip pat galime naudoti aukštesnio laipsnio polinomus, jei norime.
Pipeline galima naudoti taip pat, kaip ir originalų `LinearRegression` objektą, t.y. galime `fit` pipeline, o tada naudoti `predict`, kad gautume prognozės rezultatus. Štai grafikas, rodantis testinius duomenis ir aproksimacijos kreivę:
Pipelines galima naudoti taip pat kaip originalų `LinearRegression` objektą, t.y. galime pritaikyti `fit` pipeline, o paskui naudoti `predict`, kad gautume prognozių rezultatus. Čia pateiktas grafikas, rodantis testinius duomenis ir aproksimacinę kreivę:
<img alt="Polinominė regresija" src="../../../../translated_images/lt/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/lt/poly-results.ee587348f0f1f60b.webp" width="50%" />
Naudojant polinominę regresiją, galime gauti šiek tiek mažesnį MSE ir aukštesnį determinacijos koeficientą, bet ne žymiai. Turime atsižvelgti į kitas savybes!
Naudodami polinominę regresiją galime gauti šiek tiek mažesnį MSE ir didesnį nustatymo koeficientą, bet ne žymiai. Turime atsižvelgti į daugiau požymių!
> Galite pastebėti, kad mažiausios moliūgų kainos stebimos kažkur apie Heloviną. Kaip tai paaiškintumėte?
> Galite pastebėti, kad mažiausios moliūnų kainos fiksuojamos kažkur apie Heloviną. Kaip tai galėtumėte paaiškinti?
🎃 Sveikiname, ką tik sukūrėte modelį, kuris gali padėti prognozuoti pyraginių moliūgų kainą. Tikriausiai galite pakartoti tą pačią procedūrą visiems moliūgų tipams, bet tai būtų varginantis darbas. Dabar išmokime, kaip įtraukti moliūgų veislę į mūsų modelį!
🎃 Sveikiname, ką tik sukūrėte modelį, kuris gali padėti prognozuoti pyraginių moliūnų kainą. Tikriausiai galite tą patį padaryti visoms moliūnų rūšims, bet tai būtų varginanti užduotis. Dabar išmoksime, kaip atsižvelgti į moliūnų veislę mūsų modelyje!
## Kategorinės savybės
## Kategoriniai požymiai
Idealiame pasaulyje norėtume sugebėti prognozuoti kainas skirtingoms moliūgų veislėms naudodami tą patį modelį. Tačiau `Variety` stulpelis šiek tiek skiriasi nuo tokių stulpelių kaip `Month`, nes jame yra ne skaitinės reikšmės. Tokie stulpeliai vadinami **kategoriniais**.
Idealioje pasaulyje norėtume galėti prognozuoti kainas skirtingoms moliūnų veislėms naudojant tą patį modelį. Tačiau stulpelis `Variety` yra šiek tiek kitoks nei, pavyzdžiui, `Month`, nes jame yra ne skaitinės reikšmės. Tokie stulpeliai vadinami **kategoriniais**.
[![ML pradedantiesiems - Kategorinių savybių prognozės naudojant linijinę regresiją](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML pradedantiesiems - Kategorinių savybių prognozės naudojant linijinę regresiją")
[![ML pradedantiesiems kategorinių požymių prognozės su tiesine regresija](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML pradedantiesiems kategorinių požymių prognozės su tiesine regresija")
> 🎥 Spustelėkite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą vaizdo įrašą apie kategorinių savybių naudojimą.
> 🎥 Paspauskite aukščiau esančią nuotrauką, jei norite trumpą vaizdo įrašą apie kategorinių požymių naudojimą.
Čia galite pamatyti, kaip vidutinė kaina priklauso nuo veislės:
Čia matote, kaip vidutinė kaina priklauso nuo veislės:
<img alt="Vidutinė kaina pagal veislę" src="../../../../translated_images/lt/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/lt/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Norėdami atsižvelgti į veislę, pirmiausia turime ją konvertuoti į skaitinę formą, arba **užkoduoti**. Yra keli būdai, kaip tai padaryti:
Norėdami atsižvelgti į veislę, pirmiausia turime ją paversti skaitine reikšme, arba **užkoduoti**. Yra keli būdai, kaip tai padaryti:
* Paprastas **skaitinis kodavimas** sukurs skirtingų veislių lentelę, o tada pakeis veislės pavadinimą indeksu toje lentelėje. Tai nėra geriausia idėja linijinei regresijai, nes linijinė regresija naudoja faktinę indekso skaitinę reikšmę ir prideda ją prie rezultato, padaugindama iš tam tikro koeficiento. Mūsų atveju ryšys tarp indekso numerio ir kainos yra aiškiai nelinijinis, net jei užtikrinsime, kad indeksai būtų išdėstyti tam tikra tvarka.
* **Vieno karšto kodavimo (One-hot encoding)** pakeis `Variety` stulpelį 4 skirtingais stulpeliais, po vieną kiekvienai veislei. Kiekviename stulpelyje bus `1`, jei atitinkama eilutė priklauso tam tikrai veislei, ir `0` kitu atveju. Tai reiškia, kad linijinėje regresijoje bus keturi koeficientai, po vieną kiekvienai moliūgų veislei, atsakingi už "pradinę kainą" (arba "papildomą kainą") tai konkrečiai veislei.
* Paprastas **skaitmeninis kodavimas** sukurs skirtingų veislių lentelę, o tada veislės pavadinimą pakeis indeksu šioje lentelėje. Tai nėra geriausias sprendimas tiesinei regresijai, nes tiesinė regresija naudoja tikrąją skaitinę indekso reikšmę ir prideda ją prie rezultato pasvėrusi tam tikru koeficientu. Mūsų atveju priklausomybė tarp indekso numerio ir kainos yra aiškiai netiesinė, net jei užtikrintume, kad indeksai būtų išdėstyti tam tikra tvarka.
* **One-hot kodavimas** pakeis `Variety` stulpelį 4 skirtingais stulpeliais, po vieną kiekvienai veislei. Kiekviename stulpelyje bus `1`, jei atitinkamas įrašas yra tos veislės, ir `0` kitu atveju. Tai reiškia, kad tiesinėje regresijoje bus keturi koeficientai, po vieną kiekvienai moliūnų veislei, atsakingi už "pradinę kainą" (ar tiksliau - "papildomą kainą") konkrečiai veislei.
Žemiau pateiktas kodas rodo, kaip galime vieno karšto kodavimo būdu užkoduoti veislę:
Žemiau pateiktas kodas, rodantis, kaip galima one-hot koduoti veislę:
```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
Norėdami treniruoti linijinę regresiją, naudodami vieno karšto kodavimo būdu užkoduotą veislę kaip įvestį, tiesiog turime tinkamai inicializuoti `X` ir `y` duomenis:
Norėdami apmokyti tiesinę regresiją, naudodami one-hot koduotą veislę kaip įvestį, tiesiog turime teisingai inicializuoti `X` ir `y` duomenis:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
Likęs kodas yra toks pat, kaip tas, kurį naudojome aukščiau linijinei regresijai treniruoti. Jei tai išbandysite, pamatysite, kad vidutinė kvadratinė klaida yra maždaug tokia pati, tačiau gauname daug aukštesnį determinacijos koeficientą (~77%). Norėdami gauti dar tikslesnes prognozes, galime atsižvelgti į daugiau kategorinių savybių, taip pat skaitines savybes, tokias kaip `Month` ar `DayOfYear`. Norėdami gauti vieną didelį savybių masyvą, galime naudoti `join`:
Likusi kodo dalis tokia pati kaip aukščiau naudota tiesinei regresijai treniruoti. Jei išbandysite, pamatysite, kad vidutinė kvadratinė klaida bus maždaug tokia pati, bet gausime daug didesnį nustatymo koeficientą (~77%). Norėdami gauti dar tikslesnes prognozes, galime atsižvelgti į daugiau kategorinių požymių, taip pat į skaitinius požymius, tokius kaip `Month` ar `DayOfYear`. Norėdami gauti vieną didelį požymių masyvą, galime naudoti `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -295,68 +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']
```
```
Čia taip pat atsižvelgiame į `City` ir `Package` tipą, kas suteikia MSE 2.84 (10%) ir determinaciją 0.94!
Čia taip pat atsižvelgiame į `City` ir `Package` tipą, kas duoda MSE 2.84 (10%) ir nustatymo koeficientą 0.94!
## Viskas kartu
## Apibendrinimas
Norėdami sukurti geriausią modelį, galime naudoti kombinuotus (vieno karšto kodavimo kategorinius + skaitinius) duomenis iš aukščiau pateikto pavyzdžio kartu su polinomine regresija. Štai visas kodas jūsų patogumui:
Kad sukurtume geriausią modelį, galime naudoti sujungtus (one-hot koduotus kategorinius + skaitinius) duomenis kartu su polinomine regresija. Štai viso kodo pavyzdys jūsų patogumui:
```python
# set up training data
# nustatyti mokymo duomenis
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
# padaryti treniruočių ir testavimo skaidymą
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
# sukonfigūruoti ir apmokyti procesų seką
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data
# prognozuoti rezultatus testavimo duomenims
pred = pipeline.predict(X_test)
# calculate MSE and determination
# apskaičiuoti vidutinę kvadratinę paklaidą ir determinacijos koeficientą
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)
```
```
Tai turėtų suteikti geriausią determinacijos koeficientą beveik 97% ir MSE=2.23 (~8% prognozės klaida).
Tai turėtų duoti geriausią nustatymo koeficientą beveik 97% ir MSE=2.23 (~8% prognozės klaida).
| Modelis | MSE | Determinacija |
|---------|-----|---------------|
| `DayOfYear` Linijinis | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polinominis | 2.73 (17.0%) | 0.08 |
| `Variety` Linijinis | 5.24 (19.7%) | 0.77 |
| Visos savybės Linijinis | 2.84 (10.5%) | 0.94 |
| Visos savybės Polinominis | 2.23 (8.25%) | 0.97 |
| Modelis | MSE | Nustatymas |
|---------|-----|------------|
| `DayOfYear` Tiesinė | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polinominė | 2.73 (17.0%) | 0.08 |
| `Variety` Tiesinė | 5.24 (19.7%) | 0.77 |
| Visi požymiai Tiesinė | 2.84 (10.5%) | 0.94 |
| Visi požymiai Polinominė | 2.23 (8.25%) | 0.97 |
🏆 Puikiai padirbėta! Jūs sukūrėte keturis regresijos modelius per vieną pamoką ir pagerinote modelio kokybę iki 97%. Paskutinėje regresijos dalyje išmoksite apie logistinę regresiją, skirtą kategorijoms nustatyti.
🏆 Puikiai! Pamokoje sukūrėte keturis regresijos modelius ir pagerinote modelio kokybę iki 97%. Galutinėje regresijos dalyje susipažinsite su logistinę regresiją, skirtą kategorijoms nustatyti.
---
## 🚀Iššūkis
---
## 🚀Iššūkis
Išbandykite kelis skirtingus kintamuosius šiame užrašų knygelėje, kad pamatytumėte, kaip koreliacija atitinka modelio tikslumą.
Išbandykite kelis skirtingus kintamuosius šiame sąsiuvinyje, kad pamatytumėte, kaip koreliacija atitinka modelio tikslumą.
## [Po paskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
## [Po paskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
## Apžvalga ir savarankiškas mokymasis
## Peržiūra ir savarankiškas mokymasis
Šioje pamokoje išmokome apie linijinę regresiją. Yra ir kitų svarbių regresijos tipų. Perskaitykite apie Stepwise, Ridge, Lasso ir Elasticnet metodus. Geras kursas, norint sužinoti daugiau, yra [Stanfordo statistinio mokymosi kursas](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
Šioje pamokoje išmokome apie tiesinę regresiją. Yra ir kitų svarbių regresijos tipų. Perskaitykite apie žingsninę, „ridge“, lasso ir elasticnet technikas. Geras kursas, norint sužinoti daugiau, yra [Stanford statistinio mokymosi kursas](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Užduotis
## Užduotis
[Sukurkite modelį](assignment.md)
[Sukurti modelį](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipiame dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudoti profesionalų žmogaus vertimą. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus aiškinimus, kylančius dėl šio vertimo naudojimo.
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipkite dėmesį, kad automatizuoti vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Svarbiai informacijai rekomenduojame pasitelkti profesionalų žmogišką vertimą. Mes neatsakome už bet kokius nesusipratimus ar klaidingą interpretaciją, kilusią naudojant šį vertimą.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,27 +1,27 @@
# Virtuvės klasifikatoriai 2
Šioje antroje klasifikavimo pamokoje jūs tyrinėsite daugiau būdų, kaip klasifikuoti skaitmeninius duomenis. Taip pat sužinosite apie pasekmes, renkantis vieną klasifikatorių vietoj kito.
Šioje antroje klasifikacijos pamokoje jūs išnagrinėsite daugiau būdų, kaip klasifikuoti skaitmeninius duomenis. Taip pat sužinosite apie pasekmes, pasirenkant vieną klasifikatorių vietoj kito.
## [Prieš paskaitą: testas](https://ff-quizzes.netlify.app/en/ml/)
## [Prieš paskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
### Būtinos žinios
### Reikalavimai prieš pradedant
Daroma prielaida, kad jau baigėte ankstesnes pamokas ir turite išvalytą duomenų rinkinį savo `data` aplanke, pavadintą _cleaned_cuisines.csv_, esančiame šio 4 pamokų aplanko šaknyje.
Tarkime, kad jūs jau baigėte ankstesnes pamokas ir turite išvalytą duomenų rinkinį savo `data` aplanke, pavadintą _cleaned_cuisines.csv_ šiame 4 pamokų aplanko šaknyje.
### Pasiruošimas
### Paruošimas
Mes įkėlėme jūsų _notebook.ipynb_ failą su išvalytu duomenų rinkiniu ir padalijome jį į X ir y duomenų rėmelius, paruoštus modelio kūrimo procesui.
Mes įkėlėme jūsų _notebook.ipynb_ failą su išvalytais duomenimis ir padalinome juos į X ir y duomenų rinkinius, paruoštus modelio kūrimo procesui.
## Klasifikavimo žemėlapis
## Klasifikacijos žemėlapis
Ankstesnėje pamokoje sužinojote apie įvairias galimybes klasifikuoti duomenis, naudodamiesi „Microsoft“ apgaulės lapu. Scikit-learn siūlo panašų, bet detalesnį apgaulės lapą, kuris gali dar labiau padėti susiaurinti jūsų pasirinkimą (kitaip vadinamą klasifikatoriais):
Anksčiau sužinojote apie įvairias galimybes klasifikuoti duomenis naudodami Microsoft sukurtą pagalbinį lapą. Scikit-learn siūlo panašų, bet detalesnį pagalbinį lapą, kuris gali dar labiau padėti susiaurinti jūsų estimatorius (kitas klasifikatorių pavadinimas):
![ML žemėlapis iš Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Patarimas: [aplankykite šį žemėlapį internete](https://scikit-learn.org/stable/tutorial/machine_learning_map/) ir spustelėkite kelią, kad perskaitytumėte dokumentaciją.
![ML Map from Scikit-learn](../../../../translated_images/lt/map.e963a6a51349425a.webp)
> Patarimas: [apsilankykite šiame žemėlapyje internete](https://scikit-learn.org/stable/tutorial/machine_learning_map/) ir spustelėkite kelio taškus, kad perskaitytumėte dokumentaciją.
### Planas
Šis žemėlapis yra labai naudingas, kai aiškiai suprantate savo duomenis, nes galite „eiti“ jo keliais iki sprendimo:
Šis žemėlapis labai naudingas, kai jūs aiškiai suprantate savo duomenis, nes galite „žingsniuoti“ po jo kelius iki sprendimo:
- Turime >50 pavyzdžių
- Norime prognozuoti kategoriją
@ -29,16 +29,16 @@ Ankstesnėje pamokoje sužinojote apie įvairias galimybes klasifikuoti duomenis
- Turime mažiau nei 100 tūkst. pavyzdžių
- ✨ Galime pasirinkti Linear SVC
- Jei tai neveikia, kadangi turime skaitmeninius duomenis
- Galime išbandyti ✨ KNeighbors Classifier
- Jei tai neveikia, išbandykite ✨ SVC ir ✨ Ensemble Classifiers
- Galime išbandyti ✨ KNeighbors klasifikatorių
- Jei ir tai neveikia, išbandykite ✨ SVC ir ✨ Ensemble klasifikatorius
Tai labai naudingas kelias, kurio verta laikytis.
## Užduotis padalykite duomenis
## Užduotis - padalinkite duomenis
Sekdami šį kelią, turėtume pradėti importuodami kai kurias reikalingas bibliotekas.
Sekdami šiuo keliu, turėtume pradėti nuo reikalingų bibliotekų importavimo.
1. Importuokite reikalingas bibliotekas:
1. Importuokite reikiamas bibliotekas:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@ Sekdami šį kelią, turėtume pradėti importuodami kai kurias reikalingas bibl
import numpy as np
```
1. Padalykite savo mokymo ir testavimo duomenis:
1. Padalinkite treniruočių ir testinius duomenis:
```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 klasifikatorius
Support-Vector Clustering (SVC) yra Support-Vector Machines šeimos ML technikų dalis (daugiau apie jas sužinosite žemiau). Šiame metode galite pasirinkti „branduolį“ (kernel), kuris nusprendžia, kaip suskirstyti etiketes. Parametras „C“ reiškia „reguliavimą“, kuris reguliuoja parametrų įtaką. Branduolys gali būti vienas iš [kelių](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); čia mes nustatome jį kaip „linear“, kad užtikrintume Linear SVC naudojimą. Tikimybė pagal nutylėjimą yra „false“; čia mes nustatome ją kaip „true“, kad gautume tikimybių įvertinimus. Atsitiktinę būseną nustatome kaip „0“, kad sumaišytume duomenis ir gautume tikimybes.
Paramos vektorių klasterizacija (SVC) yra Paramų vektorių mašinų (Support-Vector machines) šeimos mašininio mokymosi metodas (daugiau apie juos skaitykite žemiau). Šiame metode galite pasirinkti „branduolį“ (kernel), kuris nusprendžia, kaip klasterizuoti etiketes. Parametras „C“ reiškia „reguliarizaciją“, kuri reguliuoja parametrų įtaką. Branduolys gali būti vienas iš [kelių](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); čia mes nustatome jį į „linear“, kad naudotume linijinį SVC. Tikimybė pagal nutylėjimą yra „false“; čia ją nustatome į „true“, kad gautume tikimybių įvertinimus. Atsitiktinumo būsena nustatyta į „0“, kad duomenys būtų permaišyti ir gautume tikimybes.
### Užduotis pritaikykite Linear SVC
### Užduotis - pritaikykite linijinį SVC
Pradėkite kurdami klasifikatorių masyvą. Jūs palaipsniui pridėsite prie šio masyvo, kai testuosite.
Pradėkite kurdami klasifikatorių masyvą. Jį palaipsniui papildysite, kai testuosime.
1. Pradėkite nuo Linear SVC:
```python
C = 10
# Create different classifiers.
# Sukurkite skirtingus klasifikatorius.
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Treniruokite savo modelį naudodami Linear SVC ir išspausdinkite ataskaitą:
2. Apmokykite savo modelį naudodami Linear SVC ir atspausdinkite ataskaitą:
```python
n_classifiers = len(classifiers)
@ -88,7 +88,7 @@ Pradėkite kurdami klasifikatorių masyvą. Jūs palaipsniui pridėsite prie ši
print(classification_report(y_test,y_pred))
```
Rezultatas yra gana geras:
Rezultatas gana geras:
```output
Accuracy (train) for Linear SVC: 78.6%
@ -107,19 +107,19 @@ Pradėkite kurdami klasifikatorių masyvą. Jūs palaipsniui pridėsite prie ši
## K-Neighbors klasifikatorius
K-Neighbors yra „kaimynų“ šeimos ML metodų dalis, kuriuos galima naudoti tiek prižiūrimam, tiek neprižiūrimam mokymuisi. Šiame metode sukuriamas iš anksto nustatytas taškų skaičius, o duomenys renkami aplink šiuos taškus, kad būtų galima prognozuoti apibendrintas etiketes.
K-Neighbors priklauso „kaimynų“ (neighbors) šeimai mašininio mokymosi metodų, kuriuos galima naudoti tiek prižiūrimam, tiek neprižiūrimam mokymuisi. Šiame metode sukuriamas iš anksto apibrėžtas taškų skaičius, o duomenys surenkami aplink šiuos taškus, kad būtų galima prognozuoti bendrines etiketes duomenims.
### Užduotis pritaikykite K-Neighbors klasifikatorių
### Užduotis - pritaikykite K-Neighbors klasifikatorių
Ankstesnis klasifikatorius buvo geras ir gerai veikė su duomenimis, bet galbūt galime pasiekti geresnį tikslumą. Išbandykite K-Neighbors klasifikatorių.
1. Pridėkite eilutę prie savo klasifikatorių masyvo (po Linear SVC elemento pridėkite kablelį):
1. Įtraukite eilutę į savo klasifikatorių masyvą (po Linear SVC elemento pridėkite kablelį):
```python
'KNN classifier': KNeighborsClassifier(C),
```
Rezultatas yra šiek tiek blogesnis:
Rezultatas šiek tiek prastesnis:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,23 +136,23 @@ Ankstesnis klasifikatorius buvo geras ir gerai veikė su duomenimis, bet galbūt
weighted avg 0.76 0.74 0.74 1199
```
✅ Sužinokite daugiau apie [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
✅ Sužinokite apie [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Support Vector Classifier
## Support Vector klasifikatorius
Support-Vector klasifikatoriai yra [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) šeimos ML metodų dalis, naudojama klasifikavimo ir regresijos užduotims. SVM „sudeda mokymo pavyzdžius į taškus erdvėje“, kad maksimaliai padidintų atstumą tarp dviejų kategorijų. Vėlesni duomenys yra sudedami į šią erdvę, kad būtų galima prognozuoti jų kategoriją.
Paramų vektorių klasifikatoriai yra mašininio mokymosi metodų, skirtų klasifikacijai ir regresijai, šeimos dalis [Paramų vektorių mašinų](https://wikipedia.org/wiki/Support-vector_machine) (SVM). SVM „žemėlapiuoja treniruočių pavyzdžius į erdvės taškus“, kad maksimaliai padidintų atstumą tarp dviejų kategorijų. Tolimesni duomenys taip pat žemėlapiuojami į šią erdvę, kad būtų galima prognozuoti jų kategorijas.
### Užduotis pritaikykite Support Vector Classifier
### Užduotis - pritaikykite Support Vector klasifikatorių
Pabandykime pasiekti šiek tiek geresnį tikslumą naudodami Support Vector Classifier.
Pabandykime gauti šiek tiek geresnį tikslumą su Support Vector klasifikatoriumi.
1. Po K-Neighbors elemento pridėkite kablelį, tada pridėkite šią eilutę:
1. Po K-Neighbors elemento pridėkite kablelį ir tada pridėkite šią eilutę:
```python
'SVC': SVC(),
```
Rezultatas yra gana geras!
Rezultatas gana geras!
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ Pabandykime pasiekti šiek tiek geresnį tikslumą naudodami Support Vector Clas
weighted avg 0.84 0.83 0.83 1199
```
✅ Sužinokite daugiau apie [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ Sužinokite apie [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Ensemble Classifiers
## Ensemble klasifikatoriai
Sekime kelią iki galo, nors ankstesnis testas buvo gana geras. Išbandykime „Ensemble Classifiers“, konkrečiai Random Forest ir AdaBoost:
Sekime kelią iki galo, nors ankstesnis testas buvo gana geras. Išbandykime kai kuriuos „Ensemble klasifikatorius“, ypatingai Random Forest ir AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
Rezultatas yra labai geras, ypač Random Forest:
Rezultatas labai geras, ypač Random Forest atveju:
```output
Accuracy (train) for RFST: 84.5%
@ -210,25 +210,25 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ Sužinokite daugiau apie [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
✅ Sužinokite apie [Ensemble klasifikatorius](https://scikit-learn.org/stable/modules/ensemble.html)
Šis mašininio mokymosi metodas „sujungia kelių bazinių įvertintojų prognozes“, kad pagerintų modelio kokybę. Mūsų pavyzdyje naudojome Random Trees ir AdaBoost.
Šis mašininio mokymosi metodas „jungia kelių bazinių estimatorių prognozes“, kad pagerintų modelio kokybę. Mūsų pavyzdyje naudojome Atsitiktinius Medžius (Random Trees) ir AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), vidurkinimo metodas, sukuria „mišką“ iš „sprendimų medžių“, įterptų su atsitiktinumu, kad būtų išvengta per didelio pritaikymo. Parametras n_estimators nustatomas kaip medžių skaičius.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest) vidurkinimo metodas, kuris kuria „mišką“ „sprendimų medžių“, įterptų su atsitiktinumu, kad būtų išvengta perdavimo. n_estimators parametras nurodo medžių skaičių.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) pritaiko klasifikatorių duomenų rinkiniui, o tada pritaiko šio klasifikatoriaus kopijas tam pačiam duomenų rinkiniui. Jis sutelkia dėmesį į neteisingai klasifikuotų elementų svorius ir koreguoja kitą klasifikatorių, kad ištaisytų klaidas.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) pritaiko klasifikatorių duomenų rinkiniui, po to pritaiko šio klasifikatoriaus kopijas tam pačiam duomenų rinkiniui. Jis sutelkia dėmesį į neteisingai klasifikuotų elementų svorius ir koreguoja tinkamumą kitam klasifikatoriui.
---
## 🚀Iššūkis
Kiekviena iš šių technikų turi daug parametrų, kuriuos galite koreguoti. Ištyrinėkite kiekvieno numatytuosius parametrus ir pagalvokite, ką šių parametrų koregavimas reikštų modelio kokybei.
Kiekviena iš šių technikų turi daugybę parametrų, kuriuos galite koreguoti. Išnagrinėkite kiekvienos numatytuosius parametrus ir pagalvokite, ką jų pakoregavimas reikštų modelio kokybei.
## [Po paskaitos: testas](https://ff-quizzes.netlify.app/en/ml/)
## [Po paskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
## Peržiūra ir savarankiškas mokymasis
## Apžvalga ir savarankiškas mokymasis
Šiose pamokose yra daug terminologijos, todėl skirkite minutę peržiūrėti [šį sąrašą](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) naudingų terminų!
Šiose pamokose yra daug terminų, todėl skirkite minutę peržiūrėti [šį terminų sąrašą](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)!
## Užduotis
@ -236,5 +236,7 @@ Kiekviena iš šių technikų turi daug parametrų, kuriuos galite koreguoti. I
---
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipiame dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudotis profesionalių vertėjų paslaugomis. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus aiškinimus, kylančius dėl šio vertimo naudojimo.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatizuoti vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turi būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojamas profesionalus žmogaus vertimas. Mes neatsakome už bet kokius nesusipratimus ar neteisingus interpretavimus, kylančius dėl šio vertimo naudojimo.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -3,7 +3,9 @@
{
"cell_type": "markdown",
"metadata": {},
"source": []
"source": [
"# Sukurkite klasifikavimo modelį\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**Atsakomybės apribojimas**: \nŠis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipiame dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudotis profesionalių vertėjų paslaugomis. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus aiškinimus, kylančius dėl šio vertimo naudojimo.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Atsakomybės apribojimas**:\nŠis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors stengiamės užtikrinti tikslumą, atkreipkite dėmesį, kad automatiniai vertimai gali turėti klaidų arba netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinės informacijos atveju rekomenduojamas profesionalus žmogaus vertimas. Mes neatsakome už jokius nesusipratimus ar klaidingas interpretacijas, kylančias dėl šio vertimo naudojimo.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-03T20:27:10+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "lt"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# Sukurkite daugiau klasifikacijos modelių\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**Atsakomybės apribojimas**: \nŠis dokumentas buvo išverstas naudojant AI vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama profesionali žmogaus vertimo paslauga. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus interpretavimus, atsiradusius dėl šio vertimo naudojimo.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Atsakomybės apribojimas**:\nŠis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors stengiamės užtikrinti tikslumą, prašome atkreipti dėmesį, kad automatizuoti vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojamas profesionalus žmogiškasis vertimas. Mes neatsakome už jokius nesusipratimus ar klaidingas interpretacijas, kilusias dėl šio vertimo naudojimo.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-03T20:27:30+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "lt"
}
},
"nbformat": 4,

@ -8,78 +8,88 @@
[![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/)
### 🌐 Daugiakalbė palaikymas
### 🌐 Daugiakalbė parama
#### Palaikoma per GitHub veiksmą (automatinis ir visada atnaujintas)
#### Palaikoma per GitHub Action (Automatizuota ir visada atnaujinta)
<!-- 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](../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](./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)
> **Pageidaujate klonuoti vietoje?**
> Šiame saugykloje yra daugiau nei 50 kalbų vertimų, kurie žymiai padidina atsisiuntimo dydį. Norėdami klonuoti be vertimų, naudokite retinimą (sparse checkout):
> **Norite klonuoti vietoje?**
>
> Šiame saugykloje yra 50+ kalbų vertimų, kurie ženkliai padidina parsisiuntimo dydį. Norėdami klonuoti be vertimų, naudokite sparčiosios atrankos funkciją:
>
> **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'
> ```
> Tai suteiks jums viską, ko reikia kursui baigti, su daug greitesniu atsisiuntimu.
>
> **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"
> ```
>
> Tai suteiks viską, ko reikia kursui užbaigti, daug greičiau atsisiunčiant.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Prisijunkite prie mūsų bendruomenės
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Mes vykdome Discord mokymosi su DI seriją, sužinokite daugiau ir prisijunkite prie mūsų [Learn with AI Series](https://aka.ms/learnwithai/discord) nuo 2025 m. rugsėjo 18 iki 30 d. Gaunate patarimų ir gudrybių, kaip naudotis GitHub Copilot duomenų mokslui.
Mes turime vykstančią Discord mokymosi su DI seriją, sužinokite daugiau ir prisijunkite prie mūsų [Mokymasis su DI serijoje](https://aka.ms/learnwithai/discord) rugsėjo 18 - 30 d., 2025 m. Sužinosite patarimus ir gudrybes, kaip naudoti GitHub Copilot Duomenų Mokslui.
![Learn with AI series](../../translated_images/lt/3.9b58fd8d6c373c20.webp)
![Mokymasis su DI serija](../../translated_images/lt/3.9b58fd8d6c373c20.webp)
# Mašininis mokymasis pradedantiesiems kurikulumą
# Mašininis mokymasis pradedantiesiems Mokymo programa
> 🌍 Keliaukite po pasaulį mokydamiesi mašininio mokymosi per pasaulio kultūras 🌍
> 🌍 Keliaukime po pasaulį tyrinėdami Mašininį mokymąsi per pasaulio kultūras 🌍
„Microsoft“ debesų technologijų entuziastai džiaugiasi galėdami pasiūlyti 12 savaičių, 26 pamokų kurikulumą, skirtą **mašininio mokymosi** temai. Šiame kurikule sužinosite apie tai, ką kartais vadiname **klasikiniu mašininiu mokymusi**, daugiausia naudodami „Scikit-learn“ biblioteką ir vengdami giluminio mokymosi, kuris aptariamas mūsų [DI pradedantiesiems kurikule](https://aka.ms/ai4beginners). Derinkite šias pamokas su mūsų ['Duomenų mokslas pradedantiesiems' kurikulu](https://aka.ms/ds4beginners)!
„Microsoft“ Debesijos advokatų komanda džiaugiasi galėdama pasiūlyti 12 savaičių, 26 pamokų mokymo programą, skirtą **Mašininio mokymosi** pagrindams. Šioje programoje sužinosite apie tai, kas kartais vadinama **klasikiniu mašininiu mokymusi**, daugiausia naudojant Scikit-learn biblioteką ir vengiant giluminio mokymosi, kuris aptariamas mūsų [DI pradedantiesiems mokymo programoje](https://aka.ms/ai4beginners). Taip pat derinkite šias pamokas su mūsų ['Duomenų mokslo pradedantiesiems' programa](https://aka.ms/ds4beginners).
Keliaukite su mumis po pasaulį, taikydami šias klasikines technikas duomenims iš skirtingų pasaulio vietų. Kiekvienoje pamokoje yra prieš pamoką ir po pamokos testai, rašytinės instrukcijos pamokai atlikti, sprendimas, užduotis ir daugiau. Mūsų projektinis mokymas leidžia mokytis kartu su praktika tai patikrintas būdas geriau įsisavinti naujus įgūdžius.
Keliaukite su mumis po pasaulį taikant šias klasikines technikas duomenims iš įvairių pasaulio sričių. Kiekviena pamoka apima prieš pamoką ir po pamokos testus, rašytines instrukcijas pamokai atlikti, sprendimą, užduotį ir dar daugiau. Mūsų projektinė pedagogika leidžia mokytis projektuojant, kas yra įrodyta kaip efektyvus įgūdžių įsisavinimo būdas.
**✍️ Nuoširdus dėkui autoriams** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ir Amy Boyd
**✍️ Nuoširdus dėkui mūsų autoriams** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ir Amy Boyd
**🎨 Ačiū kūrėjams** Tomomi Imura, Dasani Madipalli ir Jen Looper
**🎨 Taip pat dėkojame iliustratoriams** Tomomi Imura, Dasani Madipalli ir Jen Looper
**🙏 Specialūs dėkojimai 🙏 Microsoft studentų ambasadoriams autoriams, peržiūrėtojams ir turinio bendradarbiams**, ypač Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ir Snigdha Agarwal
**🙏 Ypatingas ačiū 🙏 mūsų Microsoft Studentų Ambasadorių autoriams, recenzentams ir turinio kūrėjams**, ypač Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ir Snigdha Agarwal
**🤩 Papildomas ačiū Microsoft studentų ambasadoriams Eric Wanjau, Jasleen Sondhi ir Vidushi Gupta už mūsų R pamokas!**
**🤩 Papildomas dėkingumas Microsoft Studentų Ambasadoriams Eric Wanjau, Jasleen Sondhi ir Vidushi Gupta už mūsų R pamokas!**
# Pradžia
Atlikite šiuos veiksmus:
1. **Padarykite „fork“**: spustelėkite mygtuką „Fork“ viršutiniame dešiniajame šio puslapio kampe.
2. **Klonuokite saugyklą**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
Sekite šiuos veiksmus:
1. **Šakojimo saugykla**: Spustelėkite mygtuką „Fork“ viršutiniame dešiniajame šio puslapio kampe.
2. **Klonuokite saugyklą**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [rasite visus papildomus šio kurso išteklius mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [raskite visus papildomus šio kurso išteklius mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Reikia pagalbos?** Patikrinkite mūsų [trikčių šalinimo gidą](TROUBLESHOOTING.md), kaip spręsti dažniausias įdiegimo, nustatymo ir pamokų vykdymo problemas.
> 🔧 **Reikia pagalbos?** Peržiūrėkite mūsų [Trikčių šalinimo gaires](TROUBLESHOOTING.md) su dažnų įdiegimo, nustatymo ir pamokų vykdymo problemų sprendimais.
**[Studentai](https://aka.ms/student-page)**, norėdami naudotis šiuo kurikulu, padarykite visos saugyklos „fork“ į savo GitHub paskyrą ir atlikite pratimus savarankiškai arba grupėje:
**[Studentai](https://aka.ms/student-page)**, naudodami šią programą, sukurkite savo GitHub paskyroje saugyklos atšaką ir atlikite užduotis savarankiškai arba grupėje:
- Pradėkite nuo priešpaskaitinio testo.
- Perskaitykite paskaitą ir atlikite užduotis, stabtelėdami ir apmąstydami po kiekvieną žinių patikrinimą.
- Stenkitės kurti projektus suprasdami pamokas, o ne vien vykdydami sprendimų kodą; tačiau šis kodas yra prieinamas kiekvienos pamokos, orientuotos į projektus, `/solution` kataloguose.
- Atlikite paslapkaitinį testą.
- Atlikite iššūkį.
- Atlikite užduotį.
- Baigę pamokų grupę apsilankykite [diskusijų lentoje](https://github.com/microsoft/ML-For-Beginners/discussions) ir „mokykitės garsiai“, užpildydami atitinkamą PAT vertinimą. PAT (Progresso Vertinimo Įrankis) yra rubrika, kurią galite užpildyti geriau įsisavindami mokymąsi. Taip pat galite reaguoti į kitus PAT, kad mokytumėmės kartu.
- Perskaitykite paskaitą ir atlikite veiklas, sustodami ir apmąstydami kiekvieną žinių patikrinimą.
- Stenkitės kurti projektus suprasdami pamokas, o ne vien tik paleisdami sprendimo kodą; tačiau šis kodas yra prieinamas kiekvienos projektinės pamokos `/solution` aplankuose.
- Atlikite po paskaitos testą.
- Įvykdykite iššūkį.
- Įvykdykite užduotį.
- Baigus pamokų grupę, apsilankykite [Diskusijų lentoje](https://github.com/microsoft/ML-For-Beginners/discussions) ir „mokykitės garsiai“, užpildydami atitinkamą PAT vertinimo formą. „PAT“ yra pažangos vertinimo priemonė, kurią užpildote, kad pagilintumėte savo žinias. Taip pat galite reaguoti į kitų PAT, kad mokytumės kartu.
> Tolimesniam mokymuisi rekomenduojame sekti šiuos [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulius ir mokymosi kelius.
**Dėstytojai**, mes [pateikėme keletą patarimų](for-teachers.md), kaip naudoti šį kurikulą.
**Mokytojai**, mes pateikėme [keletą pasiūlymų](for-teachers.md), kaip naudoti šią programą.
---
## Vaizdo apžvalgos
## Vaizdo įrašų peržiūros
Kai kurios pamokos pateikiamos trumpų formų vaizdo įrašais. Jas visas rasite tiesiogiai pamokose arba [ML pradedantiesiems grojaraštyje Microsoft Developer YouTube kanale](https://aka.ms/ml-beginners-videos) spustelėję paveikslėlį žemiau.
Kai kurios pamokos yra prieinamos trumpų vaizdo įrašų pavidalu. Visus juos galite rasti tiesiogiai pamokose arba [ML pradedantiesiems grojaraštyje Microsoft Developer YouTube kanale](https://aka.ms/ml-beginners-videos), spustelėję žemiau pateiktą paveikslėlį.
[![ML for beginners banner](../../translated_images/lt/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -89,79 +99,79 @@ Kai kurios pamokos pateikiamos trumpų formų vaizdo įrašais. Jas visas rasite
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif kūrė** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif sukūrė** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Spustelėkite viršutinį paveikslėlį, kad peržiūrėtumėte vaizdo įrašą apie projektą ir jo kūrėjus!
> 🎥 Spustelėkite aukščiau esantį paveikslėlį, kad pamatytumėte video apie projektą ir jį sukūrusius žmones!
---
## Pedagogika
Kuriant šį kurikulą pasirinkome du pedagoginius principus: užtikrinti, kad jis būtų praktinis, **projektų pagrindu** ir būtų įtrauktos **dažnos viktorinos**. Be to, šis kurikulas turi bendrą **temą**, suteikiančią nuoseklumą.
Kurdami šią mokymo programą pasirinkome du pedagoginius principus: užtikrinti, kad ji būtų praktinė ir **projektinė**, bei kad joje būtų **dažni testai**. Be to, šiai programai suteikta bendra **tema**, suteikianti nuoseklumą.
Suderinus turinį su projektais, mokymosi procesas tampa patrauklesnis ir koncepcijų įsisavinimas sustiprinamas. Be to, mažos rizikos testas prieš paskaitą nukreipia studentą į naujos temos mokymąsi, o antras testas po paskaitos užtikrina geresnį įsisavinimą. Šis kurikulas sukurtas būti lankstus ir įdomus, jį galima atlikti pilnai arba dalimis. Projektai pradžioje yra paprasti ir palaipsniui sudėtingėja iki 12 savaičių ciklo pabaigos. Šiame kurikule taip pat yra pabaigos pastaba apie mašininio mokymosi taikymą realiame pasaulyje, kurį galima naudoti kaip papildomą užduotį arba diskusijų pagrindą.
Užtikrinant turinio suderinamumą su projektais, procesas studentams tampa įdomesnis, o sąvokų įsisavinimas padidėja. Be to, mažos rizikos testas prieš paskaitą nukreipia studentų dėmesį į mokymąsi, o po paskaitos atliekamas testas palaiko geresnį įsisavinimą. Ši programa sukurta būti lanksti ir smagi, ją galima atlikti visą arba dalimis. Projektai prasideda nuo paprastų ir didėja sudėtingumu per 12 savaičių ciklą. Programa taip pat apima postscriptą apie realaus gyvenimo ML taikymus, kuris gali būti naudojamas kaip papildomas balas arba diskusijų pagrindas.
> Raskite mūsų [Elgesio kodeksą](CODE_OF_CONDUCT.md), [Indėlio taisykles](CONTRIBUTING.md), [Vertimo gaires](TRANSLATIONS.md) ir [Trikčių šalinimo vadovą](TROUBLESHOOTING.md). Laukiame jūsų konstruktyvios grįžtamosios informacijos!
> Rasite mūsų [Elgesio kodeksą](CODE_OF_CONDUCT.md), [Indėlio taisykles](CONTRIBUTING.md), [Vertimų gaires](TRANSLATIONS.md) ir [Trikčių šalinimo instrukcijas](TROUBLESHOOTING.md). Labai laukiame jūsų konstruktyvios atsiliepimų!
## Kiekviena pamoka apima
- neprivalomą eskizą
- neprivalomą papildomą vaizdo įrašą
- vaizdo apžvalgą (tik kai kurios pamokos)
- [priešpaskaitinį pasiruošimo testą](https://ff-quizzes.netlify.app/en/ml/)
- pasirenkamą eskizo užrašą
- pasirenkamą papildomą vaizdo įrašą
- vaizdo įrašo peržiūrą (kai kurioms pamokoms)
- [priešpaskaitinį įkaitinimo testą](https://ff-quizzes.netlify.app/en/ml/)
- rašytinę pamoką
- projektinėse pamokose žingsnis po žingsnio gaires, kaip kurti projektą
- projekto pamokoms žingsnis po žingsnio vadovus, kaip sukurti projektą
- žinių patikrinimus
- iššūkį
- papildomą skaitymą
- užduotį
- [po paskaitos testą](https://ff-quizzes.netlify.app/en/ml/)
> **Pastaba apie kalbas**: šios pamokos daugiausia parašytos Python kalba, tačiau daug jų taip pat prieinamos R kalba. Norėdami atlikti R pamoką, eikite į `/solution` katalogą ir ieškokite R pamokų. Jos turi .rmd plėtinį, kuris žymi **R Markdown** failą, kurį galima apibūdinti kaip `kodo blokų` (R arba kitomis kalbomis) ir `YAML antraštės` (kuri nurodo, kaip formatuoti išvestį, pvz., PDF) integraciją į `Markdown` dokumentą. Todėl tai yra puiki kūrimo sistema duomenų mokslui, nes leidžia derinti kodą, jo rezultatus ir pastebėjimus, rašant juos Markdown formatu. Be to, R Markdown dokumentus galima eksportuoti į tokias išvesties formas kaip PDF, HTML ar Word.
> **Pastaba apie testus**: Visi testai yra [Quiz App aplanke](../../quiz-app), iš viso 52 testai po tris klausimus. Jie yra susieti pamokų viduje, tačiau testų programėlę galima paleisti ir vietoje; vadovaukitės nurodymais `quiz-app` aplanke, kad galėtumėte ją paleisti vietoje arba įdiegti į Azure.
| Pamokos numeris | Tema | Pamokos grupavimas | Mokymosi tikslai | Susieta pamoka | Autorius |
| :-------------: | :----------------------------------------------------------: | :----------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | Įvadas į mašininį mokymąsi | [Įvadas](1-Introduction/README.md) | Išmokite pagrindines mašininio mokymosi sąvokas | [Pamoka](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Mašininio mokymosi istorija | [Įvadas](1-Introduction/README.md) | Sužinokite šio srities istoriją | [Pamoka](1-Introduction/2-history-of-ML/README.md) | Jen ir Amy |
| 03 | Teisingumas ir mašininis mokymasis | [Įvadas](1-Introduction/README.md) | Kokios yra svarbios filosofinės teisingumo problemos, kurias studentai turėtų apsvarstyti kuriant ir taikant ML modelius? | [Pamoka](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Mašininio mokymosi technikos | [Įvadas](1-Introduction/README.md) | Kokias technikas ML tyrėjai naudoja kurdami ML modelius? | [Pamoka](1-Introduction/4-techniques-of-ML/README.md) | Chris ir Jen |
| 05 | Įvadas į regresiją | [Regresija](2-Regression/README.md) | Pradėkite naudotis Python ir Scikit-learn regresijos modeliams | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Vaizduokite ir valykite duomenis, ruošiantis ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Kurkite linijinius ir polinominius regresijos modelius | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ir Dmitry • Eric Wanjau |
| 08 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Kurkite loginės regresijos modelį | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Interneto programėlė 🔌 | [Web App](3-Web-App/README.md) | Sukurkite internetinę programėlę, kad naudotumėte savo išmokytą modelį | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Įvadas į klasifikavimą | [Klasifikacija](4-Classification/README.md) | Valykite, paruoškite ir vizualizuokite duomenis; įvadas į klasifikavimą | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ir Cassie • Eric Wanjau |
| 11 | Gardūs Azijos ir Indijos virtuvės patiekalai 🍜 | [Klasifikacija](4-Classification/README.md) | Įvadas į klasifikatorius | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ir Cassie • Eric Wanjau |
| 12 | Gardūs Azijos ir Indijos virtuvės patiekalai 🍜 | [Klasifikacija](4-Classification/README.md) | Daugiau klasifikatorių | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ir Cassie • Eric Wanjau |
| 13 | Gardūs Azijos ir Indijos virtuvės patiekalai 🍜 | [Klasifikacija](4-Classification/README.md) | Sukurkite rekomendacinę interneto programėlę naudodami savo modelį | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Įvadas į klasterizavimą | [Klasterizacija](5-Clustering/README.md) | Valykite, paruoškite ir vizualizuokite savo duomenis; įvadas į klasterizaciją | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Nigerijos muzikos skonių tyrinėjimas 🎧 | [Klasterizacija](5-Clustering/README.md) | Tyrinėkite K-Means klasterizavimo metodą | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Įvadas į natūralios kalbos apdorojimą ☕️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Išmokite NLP pagrindus kurdami paprastą botą | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Bendros NLP užduotys ☕️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Gilinkite NLP žinias suprasdami dažnas užduotis, reikalingas kalbos struktūroms apdoroti | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Vertimas ir nuotaikos analizė ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Vertimas ir nuotaikos analizė su Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantiški Europos viešbučiai ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Nuotaikos analizė su viešbučių atsiliepimais 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantiški Europos viešbučiai ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Nuotaikos analizė su viešbučių atsiliepimais 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Įvadas į laiko eilučių prognozavimą | [Laiko eilutės](7-TimeSeries/README.md) | Įvadas į laiko eilučių prognozavimą | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Pasaulinis elektros naudojimas ⚡️ - laiko eilučių prognozavimas su ARIMA | [Laiko eilutės](7-TimeSeries/README.md) | Laiko eilučių prognozavimas su ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Pasaulinis elektros naudojimas ⚡️ - laiko eilučių prognozavimas su SVR | [Laiko eilutės](7-TimeSeries/README.md) | Laiko eilučių prognozavimas su palaikomųjų vektorių regresoriumi | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Įvadas į sustiprintą mokymąsi | [Sustiprintas mokymasis](8-Reinforcement/README.md) | Įvadas į sustiprintą mokymąsi su Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Padėkite Peteriui išvengti vilko! 🐺 | [Sustiprintas mokymasis](8-Reinforcement/README.md) | Sustiprinto mokymosi sporto salė | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Tikro pasaulio ML scenarijai ir taikymai | [ML laukinėje gamtoje](9-Real-World/README.md) | Įdomūs ir atskleidžiantys klasikinio ML realaus pasaulio taikymai | [Pamoka](9-Real-World/1-Applications/README.md) | Komanda |
| Postscript | Modelių derinimas ML naudojant RAI prietaisų skydelį | [ML laukinėje gamtoje](9-Real-World/README.md) | Modelių derinimas mašininio mokymosi srityje naudojant Atsakingo AI prietaisų skydelio komponentus | [Pamoka](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [raskite visus papildomus šio kurso išteklius mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Offline prieiga
Šią dokumentaciją galite naudoti offline naudodami [Docsify](https://docsify.js.org/#/). Šakinkite šį repozitoriją, [įdiekite Docsify](https://docsify.js.org/#/quickstart) savo vietiniame kompiuteryje, tada šio repozitorijos šakniniame aplanke įrašykite `docsify serve`. Svetainė bus paleista 3000 prievade jūsų localhost: `localhost:3000`.
## PDF'ai
Curriculum PDF su nuorodomis rasite [čia](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Kiti kursai
> **Pastaba apie kalbas**: Šios pamokos daugiausia parašytos Python kalba, tačiau daug jų yra ir R kalba. Norėdami atlikti R pamoką, eikite į `/solution` katalogą ir ieškokite R pamokų. Jos turi .rmd plėtinį, kuris reiškia **R Markdown** failą, kurį galima paprastai apibrėžti kaip `kodo blokų` (R ar kitų kalbų) ir `YAML antraštės` (kuri nurodo, kaip formatuoti išvestis, pvz., PDF) įterpimą `Markdown` dokumente. Todėl tai yra puikus duomenų mokslo kūrimo karkasas, nes leidžia derinti savo kodą, jo išvestį ir savo mintis, leidžiant jas užrašyti Markdown formatu. Be to, R Markdown dokumentus galima išvesti į tokius formatus kaip PDF, HTML ar Word.
> **Pastaba apie testus**: Visi testai yra [Quiz App kataloge](../../quiz-app), iš viso 52 testai po tris klausimus. Jie yra susieti su pamokomis, tačiau testų programą galima paleisti vietoje; vadovaukitės `quiz-app` katalogo instrukcijomis, kaip ją paleisti vietoje arba išdiegti į Azure.
| Pamokos numeris | Tema | Pamokų grupavimas | Mokymosi tikslai | Susieta pamoka | Autorius |
| :-------------: | :---------------------------------------------------------: | :--------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | Įvadas į mašininį mokymąsi | [Įvadas](1-Introduction/README.md) | Sužinokite pagrindines mašininio mokymosi sąvokas | [Pamoka](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Mašininio mokymosi istorija | [Įvadas](1-Introduction/README.md) | Sužinokite šios srities istoriją | [Pamoka](1-Introduction/2-history-of-ML/README.md) | Jen ir Amy |
| 03 | Teisingumas ir mašininis mokymasis | [Įvadas](1-Introduction/README.md) | Kokie svarbūs filosofiniai teisingumo klausimai, kuriuos studentai turėtų apsvarstyti kurdami ir taikydami ML modelius? | [Pamoka](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Mašininio mokymosi metodikos | [Įvadas](1-Introduction/README.md) | Kokias technikas ML tyrėjai naudoja kurdami ML modelius? | [Pamoka](1-Introduction/4-techniques-of-ML/README.md) | Chris ir Jen |
| 05 | Įvadas į regresiją | [Regresija](2-Regression/README.md) | Pradėkite dirbti su Python ir Scikit-learn regresijos modeliams | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Duomenų vizualizavimas ir valymas pasiruošiant ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Sukurkite linijinius ir polinominius regresijos modelius | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ir Dmitry • Eric Wanjau |
| 08 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Sukurkite logistinį regresijos modelį | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Tinklalapio programa 🔌 | [Web App](3-Web-App/README.md) | Sukurkite tinklalapio programą, skirtą naudoti treniruotą modelį | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Įvadas į klasifikaciją | [Klasifikacija](4-Classification/README.md) | Valykite, paruoškite ir vizualizuokite savo duomenis; įvadas į klasifikaciją | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ir Cassie • Eric Wanjau |
| 11 | Gardžios Azijos ir Indijos virtuvės 🍜 | [Klasifikacija](4-Classification/README.md) | Įvadas į klasifikatorius | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ir Cassie • Eric Wanjau |
| 12 | Gardžios Azijos ir Indijos virtuvės 🍜 | [Klasifikacija](4-Classification/README.md) | Daugiau klasifikatorių | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ir Cassie • Eric Wanjau |
| 13 | Gardžios Azijos ir Indijos virtuvės 🍜 | [Klasifikacija](4-Classification/README.md) | Sukurkite rekomendacinės sistemos tinklalapį naudodami savo modelį | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Įvadas į grupavimą (klasterizavimą) | [Grupavimas](5-Clustering/README.md) | Valykite, paruoškite ir vizualizuokite savo duomenis; Įvadas į grupavimą | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Nigerijos muzikos skonių tyrinėjimas 🎧 | [Grupavimas](5-Clustering/README.md) | Tyrinėkite K-sredinių grupavimo metodą | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Įvadas į natūralios kalbos apdorojimą ☕️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Sužinokite NLP pagrindus kuriant paprastą botą | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Įprasti NLP uždaviniai ☕️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Pagilinkite savo NLP žinias suprasdami dažnus uždavinius, reikalingus kalbos struktūroms | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Vertimas ir nuotaikų analizė ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Vertimas ir nuotaikų analizė su Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantiški Europos viešbučiai ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Nuotaikų analizė su viešbučių apžvalgomis 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantiški Europos viešbučiai ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Nuotaikų analizė su viešbučių apžvalgomis 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Įvadas į laiko eilučių prognozavimą | [Laiko eilutės](7-TimeSeries/README.md) | Įvadas į laiko eilučių prognozavimą | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Pasaulio galios vartojimas ⚡️ - laiko eilučių prognozavimas su ARIMA | [Laiko eilutės](7-TimeSeries/README.md) | Laiko eilučių prognozavimas su ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Pasaulio galios vartojimas ⚡️ - laiko eilučių prognozavimas su SVR | [Laiko eilutės](7-TimeSeries/README.md) | Laiko eilučių prognozavimas su atraminio vektoriaus regresoriumi | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Įvadas į sustiprintą mokymąsi | [Sustiprintas mokymasis](8-Reinforcement/README.md) | Įvadas į sustiprintą mokymąsi naudojant Q-Mokymą | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Padėkite Peteriui išvengti vilko! 🐺 | [Sustiprintas mokymasis](8-Reinforcement/README.md) | Sustiprinto mokymosi Gimnasijos aplinka | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Tikros pasaulio ML scenarijai ir taikymai | [ML laukinėje aplinkoje](9-Real-World/README.md) | Įdomios ir atskleidžiančios realaus pasaulio klasikinio ML taikymo pavyzdžiai | [Pamoka](9-Real-World/1-Applications/README.md) | Komanda |
| Postscript | Modelio derinimas ML naudojant RAI valdymo skydelį | [ML laukinėje aplinkoje](9-Real-World/README.md) | Modelio derinimas mašininio mokymosi metu naudojant Responsible AI valdymo skydelio komponentus | [Pamoka](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [raskite visas papildomas šio kurso medžiagas mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Vietinis prieinamumas
Šią dokumentaciją galite naudoti ir offline režimu naudodami [Docsify](https://docsify.js.org/#/). Sukurkite šio repo kopiją, [įdiekite Docsify](https://docsify.js.org/#/quickstart) savo vietinėje mašinoje, ir tuomet šio repo šakninėje direktorijoje įveskite `docsify serve`. Svetainė bus patiekiama per 3000 prievadą jūsų localhost'e: `localhost:3000`.
## PDF failai
Raskite viso kurso mokymo planą su nuorodomis [čia](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Kiti kursai
Mūsų komanda kuria ir kitus kursus! Pažiūrėkite:
@ -172,7 +182,7 @@ Mūsų komanda kuria ir kitus kursus! Pažiūrėkite:
[![LangChain pradedantiesiems](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 / Agentai
### Azure / Edge / MCP / agentai
[![AZD pradedantiesiems](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 pradedantiesiems](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 pradedantiesiems](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)
@ -180,11 +190,11 @@ Mūsų komanda kuria ir kitus kursus! Pažiūrėkite:
---
### Generatyvinio AI serija
[![Generatyvioji DI pradedantiesiems](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)
[![Generatyvioji DI (.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)
[![Generatyvioji DI (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)
[![Generatyvioji DI (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)
### Generatyvinė dirbtinis intelektas
[![Generatyvi DI pradedantiesiems](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)
[![Generatyvi DI (.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)
[![Generatyvi DI (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)
[![Generatyvi DI (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)
---
@ -193,31 +203,36 @@ Mūsų komanda kuria ir kitus kursus! Pažiūrėkite:
[![Duomenų mokslas pradedantiesiems](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)
[![DI pradedantiesiems](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)
[![Kibernetinis saugumas pradedantiesiems](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)
[![Tinklapių kūrimas pradedantiesiems](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 pradedantiesiems](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 kūrimas pradedantiesiems](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)
[![Interneto svetainių kūrimas pradedantiesiems](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)
[![Daiktų internetas pradedantiesiems](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)
[![Išplėstinės realybės kūrimas pradedantiesiems](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 serija
[![Copilot DI porinėms programavimo užduotims](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 dirbtinio intelekto poriniam programavimui](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 nuotykiai](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 -->
## Pagalbos gavimas
Jei įstringate arba turite klausimų apie DI programų kūrimą. Prisijunkite prie kitų mokinių ir patyrusių kūrėjų, kurie dalyvauja diskusijose apie MCP. Tai palaikanti bendruomenė, kurioje klausimai yra laukiami, o žinios laisvai dalijamos.
Jei užstrigote arba turite klausimų apie DI programėlių kūrimą, prisijunkite prie kitų besimokančiųjų ir patyrusių programuotojų diskusijose apie MCP. Tai palaikanti bendruomenė, kurioje klausimai yra laukiam ir žinios dalijamasi laisvai.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Jei turite atsiliepimų apie produktą arba susiduriate su klaidomis kūrimo metu, apsilankykite:
Jei turite produktų atsiliepimų arba aptinkate klaidų, statydami, apsilankykite:
[![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)
## Papildomi mokymosi patarimai
- Peržiūrėkite užrašų knygutes po kiekvienos pamokos geresniam supratimui.
- Praktikuokite algoritmų įgyvendinimą savarankiškai.
- Tirskite realaus pasaulio duomenų rinkinius naudodami išmoktus konceptus.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipkite dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Pirminis dokumentas originalia kalba yra laikomas autoritetingu šaltiniu. Svarbiai informacijai rekomenduojama naudoti profesionalų žmogaus vertimą. Mes neatsakome už bet kokius nesusipratimus ar neteisingą interpretaciją, kylančią naudojantis šiuo vertimu.
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipkite dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba laikomas autoritetingu šaltiniu. Dėl svarbios informacijos rekomenduojamas profesionalus žmogiškas vertimas. Mes neatsakome už bet kokius nesusipratimus ar neteisingus aiškinimus, kylantčius dėl šio vertimo naudojimo.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -30,8 +30,8 @@
"language_code": "my"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T12:42:19+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T09:09:14+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "my"
},
@ -90,8 +90,8 @@
"language_code": "my"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T11:30:53+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:10:40+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "my"
},
@ -186,8 +186,8 @@
"language_code": "my"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T13:15:21+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T09:11:15+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "my"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "my"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T09:06:42+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "my"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T13:16:55+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "my"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T09:06:51+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "my"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T13:12:28+00:00",
@ -540,8 +552,8 @@
"language_code": "my"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T09:13:41+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T09:09:05+00:00",
"source_file": "README.md",
"language_code": "my"
},

@ -1,16 +1,18 @@
# တာဝန်ရှိသော AI Toolbox ကိုလေ့လာပါ
# တာဝန်ရှိသော AI ကလမ်းညွှန်ကိရိယာဘောက်စ်ကို ရှာဖွေပါ
## လမ်းညွှန်ချက်များ
## ညွှန်ကြားချက်များ
ဒီသင်ခန်းစာမှာ သင် တာဝန်ရှိသော AI Toolbox အကြောင်းကိုလေ့လာခဲ့ပြီး၊ "AI စနစ်များကို ခွဲခြမ်းစိတ်ဖြာပြီး တိုးတက်အောင်လုပ်ဆောင်ရန် အကူအညီပေးသော open-source, community-driven project" ဖြစ်သည်။ ဒီအလုပ်ပေးစာအတွက် RAI Toolbox ရဲ့ [notebooks](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) တစ်ခုကိုလေ့လာပြီး သင်ရရှိသောအချက်အလက်များကို စာတမ်း သို့မဟုတ် တင်ပြချက်အဖြစ်တင်ပြပါ။
ဤသင်ခန်းစာတွင် သင်သည် တာဝန်ရှိသော AI ကလမ်းညွှန်ကိရိယာဘောက်စ် (Responsible AI Toolbox) အကြောင်း သိရှိခဲ့ပြီး၊ "ဒေတာသိပ္ပံပညာရှင်များအား AI စနစ်များကို 分析လုပ်ရန်နှင့် တိုးတက်ကောင်းမွန်စေရန် ကူညီပေးသည့် open-source၊ ပရောဂျက် အသိုင်းအဝိုင်းမောင်းနှင်မှုဖြစ်သည်"။ ဤတာဝန်အတွက် RAI Toolbox ၏ [notebooks](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) တစ်ခုကို စူးစမ်းလေ့လာကာ သင်၏ ရရှိသောအတည်ပြုချက်များကို စာတမ်း သို့မဟုတ် ပွဲတော်တင်သွင်းချက် တစ်ခုအဖြစ် တင်ပြပါ။
## အဆင့်သတ်မှတ်ချက်
## အကဲဖြတ်စံသတ်မှတ်ချက်များ
| အချက်အလက် | ထူးချွန်သော | လုံလောက်သော | တိုးတက်မှုလိုအပ်သော |
| အချက်အလက်များ | ထူးခြားသော | လုံလောက်သော | တိုးတက်မှုလိုအပ်သော |
| -------- | --------- | -------- | ----------------- |
| | Fairlearn ရဲ့ စနစ်များ၊ run လုပ်ထားသော notebook နှင့် run လုပ်ပြီးရရှိသော အကျိုးအမြတ်များကို ဆွေးနွေးထားသော စာတမ်း သို့မဟုတ် powerpoint တင်ပြချက်တစ်ခုကို တင်ပြထားသည် | အကျိုးအမြတ်များမပါရှိသော စာတမ်းတစ်ခုကို တင်ပြထားသည် | စာတမ်းမတင်ပြထားပါ |
| | Fairlearn ၏ စနစ်များ၊ လည်ပတ်ခဲ့သော notebook နှင့် လည်ပတ်ခြင်းမှ ရရှိသော အနှစ်ချုပ်များကို ဆွေးနွေးထားသော စာတမ်း သို့မဟုတ် PowerPoint တင်ဆက်မှုတစ်ခုကို တင်ပြထားသည် | အနှစ်ချုပ် မပါဘဲ စာတမ်းတစ်စောင်ကို တင်ပြထားသည် | စာတမ်း တင်ပြမှု မရှိပါ |
---
**အကြောင်းကြားချက်**:
ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [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,85 +1,97 @@
# Scikit-learn ကို အသုံးပြု၍ Regression မော်ဒယ်တစ်ခု တည်ဆောက်ခြင်း: Regression လုပ်နည်း ၄ မျို
# Scikit-learn အသုံးပြု၍ regression မော်ဒယ် တည်ဆောက်ခြင်း - regression လေးနည်းလမ်
![Linear vs polynomial regression infographic](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
> Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded)
## စတားသူမှတ်ချက်
Linear regression ကို **ဂဏန်းတန်ဖိုး** (ဥပမာ- အိမ်ဈေးနှုန်း၊ အပူချိန်၊ သို့မဟုတ် ရောင်းအား) ခန့်မှန်းလိုသည့်အခါ အသုံးပြုသည်။
ဒါဟာ input အင်အားများနဲ့ output အကြား ဆက်နွယ်မှုကို အကောင်းဆုံး ကိုယ်စားပြုသော တတ်တရာဟောင်းတစ်ခုကို ရှာဖွေခြင်းဖြင့် အလုပ်လုပ်သည်။
ဒီသင်ခန်းစာမှာတော့ အဆင့်မြင့် regression နည်းများကို ရှာဖွေမတတ်ခင် แนวคิดကို နားလည်ခြင်းကို အာရုံစိုက်သွားမှာဖြစ်ပါတယ်။
![Linear vs polynomial regression infographic](../../../../translated_images/my/linear-polynomial.5523c7cb6576ccab.webp)
> infographic ကို [Dasani Madipalli](https://twitter.com/dasani_decoded) ဖန်တီးသည်။
## [Pre-lecture quiz](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)
### နိဒါန်း
ယခင်အခန်းများတွင် Regression ဆိုတာဘာလဲဆိုတာကို သင် Pumpkin စျေးနှုန်း dataset ကို အသုံးပြု၍ လေ့လာခဲ့ပြီး Matplotlib ကို အသုံးပြု၍ visualization လုပ်ခဲ့ပါသည်။
အခုထိ pumpkin ဈေးနှုန်းဒေတာအရေအတွက်နဲ့ regression ဆိုတာ ဘာလဲဆိုတာကို လေ့လာခဲ့ပြီး Matplotlib ဖြင့် ဓာတ်ပုံဆွဲပြီးဖြစ်ပြီဖြစ်ပါသည်။
အခုတော့ ML အတွက် Regression ကို ပိုမိုနက်နက်ရှိုင်းရှိုင်း လေ့လာရန် အဆင်သင့်ဖြစ်ပါပြီ။ Visualization က ဒေတာကို နားလည်စေသလို Machine Learning ရဲ့ အဓိကအားသာချက်ကတော့ _မော်ဒယ်များကို လေ့ကျင့်ခြင်း_ ဖြစ်ပါတယ်။ မော်ဒယ်များကို သမိုင်းကြောင်းဒေတာပေါ်မှာ လေ့ကျင့်ပြီး ဒေတာအချင်းချင်း ဆက်နွယ်မှုများကို အလိုအလျောက် ဖမ်းဆီးနိုင်စေပြီး မော်ဒယ်မမြင်ဖူးသေးတဲ့ ဒေတာအသစ်များအတွက် အကျိုးအမြတ်ကို ခန့်မှန်းနိုင်စေပါတယ်။
ယခုအခါ ML အတွက် regression ကို နက်နဲစွာ လေ့လာရန် အသင့်ဖြစ်ပါပြီ။ Visualization က ဒေတာကို နားလည်ဖို့ အကူအညီဖြစ်ပေမယ့် Machine Learning ရဲ့ အဓိကအားသာချက်က _မော်ဒယ်များကို လေ့ကျင့်ခြင်း_ မှာ ဖြစ်သည်။ မော်ဒယ်များကို ရှေးဟောင်းဒေတာပေါ် မူတည်၍ အလိုအလျောက် ဒေတာအချိုးအစားတွေကို အတိအကျဖမ်းယူသည်၊ ထို့ကြောင့် မူလမမြင်ဖူးသော ဒေတာအတွက် ခန့်မှန်းချက်များ ဖန်တီးနိုင်သည်။
ဒီသင်ခန်းစာမှာ Regression အမျိုးအစား ၂ မျိုးကို ပိုမိုနက်နက်ရှိုင်းရှိုင်း လေ့လာပါမည်။ _အခြေခံ Linear Regression_ နှင့် _Polynomial Regression_ တို့ဖြစ်ပြီး ဒီနည်းလမ်းများရဲ့ သင်္ချာဆိုင်ရာ အခြေခံကိုလည်း လေ့လာပါမည်။ ဒီမော်ဒယ်များက Pumpkin စျေးနှုန်းကို input data အမျိုးမျိုးပေါ်မူတည်ပြီး ခန့်မှန်းနိုင်စေပါမည်။
ဒီသင်ခန်းစာမှာ_မူလ linear regression_ နဲ့ _polynomial regression_ ဆိုတဲ့ regression နှစ်မျိုးနဲ့ အခြေခံသင်္ချာနည်းများကို တက်တူးလေ့လာပြီး၊ ဤမော်ဒယ်များဖြင့် pumpkin အမျိုးအစားအလိုက် ဈေးနှုန်းခန့်မှန်းမှု ပြုလုပ်နိုင်မှာ ဖြစ်ပါတယ်။
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 Linear Regression ရဲ့ အကျဉ်းချုပ်ကို ကြည့်ရန် အထက်ပါပုံကို နှိပ်ပါ
> 🎥 ဒေါက်ဗိုင်းလင်ကို နှိပ်၍ linear regression အကြောင်း နိဒါန်းဗီဒီယို ကြည့်ရှုနိုင်ပါသည်
> ဒီသင်ရိုးတစ်ခုလုံးမှာ သင်္ချာအပေါ် အနည်းငယ်သာ သိရှိမှုရှိသည်ဟု သတ်မှတ်ပြီး သင်္ချာကို အခြားနယ်ပယ်မှ ကျောင်းသားများလည်း နားလည်နိုင်စေရန် ရည်ရွယ်ထားပါသည်။ 🧮 မှတ်ချက်များ၊ အကြောင်းပြ callouts၊ ရှင်းလင်းပုံများနှင့် အခြားသင်ယူမှုကိရိယာများကို အသုံးပြုထားသည်။
> ဒီ သင်ရိုးအတန်းများအတွက် သင်္ချာနည်းပညာဆိုင်ရာ အသိပညာနည်းပါးမှသာ ယူဆောင်ထားပြီး၊ အခြားကဏ္ဍမှလာသော ကျောင်းသားများအတွက် လွယ်ကူစေရန် မှတ်စု၊ 🧮 ဟောပြောချက်များ၊ ပုံများနှင့် အခြားသင်ယူရေးကိရိယာများ ထည့်သွင်းထားသည်။
### ကြိုတင်လိုအပ်ချက
### ဆော့ရွတ
Pumpkin data ရဲ့ ဖွဲ့စည်းပုံကို ယခုအချိန်မှာ သင်နားလည်ပြီးဖြစ်ရမည်။ ဒီသင်ခန်းစာရဲ့ _notebook.ipynb_ ဖိုင်မှာ preloaded နှင့် pre-cleaned ဖြစ်ပြီး bushel တစ်ခုအတွက် Pumpkin စျေးနှုန်းကို အသစ်သော data frame မှာ ပြထားသည်။ Visual Studio Code ရဲ့ kernels တွင် ဒီ notebooks များကို run လုပ်နိုင်ရမည်
ယခုအခါ စိမ်းလန်းသစ်ဆန်းသော pumpkin data ဖွဲ့စည်းမှုနဲ့ ရင်းနှီးပြီး ဖြစ်နေသည်။ သင်တို့အတွက် ဒီသင်ခန်းစာ _notebook.ipynb_ ဖိုင်ထဲတွင် ကြိုတင်တင်ထားပြီး သန့်ရှင်းထားပါသည်။ ဖိုင်အတွင်းမှာ pumpkin ဈေးနှုန်းကို bushel အလိုက် ပြသထားပါသည်။ Visual Studio Code ၏ kernel တွင် ဒီ notebook များကို တည်ဆောက်၍ စမ်းသပ်နိုင် ဖို့ သေချာစေပါ
### ပြင်ဆင်မှု
ဒီဒေတာကို load လုပ်ပြီး အမေးအဖြေများကို ရှာဖွေဖို့ သတိပြုပါ။
သတိပေးချက်အဖြစ်, ဒီဒေတာကို လာယူတယ်ဆိုတာ ဒေတာအပေါ် မေးခွန်းတွေ ထုတ်ဖို့ပါပဲ။
- Pumpkin များ ဝယ်ဖို့ အချိန်ကောင်းဆုံး ဘယ်လိုဆိုတာ?
- Miniature pumpkin များ case တစ်ခုမှာ ဘယ်နှစ်နှုန်းထိ အရောင်းရှိမလဲ?
- Pumpkin half-bushel အိတ်လား ဒါမှမဟုတ် 1 1/9 bushel ပုံးလား ဝယ်သင့်မလား?
ဒီဒေတာကို ဆက်လက် ရှာဖွေကြမယ်။
ယခင်သင်ခန်းစာတွင် pandas data frame တစ်ခု တည်ဆောက်ပြီး မူလ dataset မှအချိုးအစားကို bushel အလိုက် တူညီအောင် ပြင်ဆင်ထားသည်။ သို့သော် အဲ့ဒီနည်းဖြင့် datapoint ၄ ရာခိုင်နှုန်းတိုင်သာ ရခဲ့ပြီး ရာသီဆောင်းလများအတွက်သာ ရှိခဲ့သည်။
- Pumpkin ဝယ်ဖို့ အချိန်ကောင်းဆုံးက ဘယ်အချိန်လဲ?
- Miniature pumpkins တစ် case ရဲ့ စျေးနှုန်းကို ဘယ်လောက်ခန့်မှန်းနိုင်မလဲ?
- Half-bushel baskets နဲ့ 1 1/9 bushel box တစ်ခုကို ဘယ်ဟာကို ဝယ်သင့်လဲ?
ဒီဒေတာကို ဆက်လက် လေ့လာကြည့်ရအောင်။
ဒီသင်ခန်းစာအတွက် အသစ်တင်ထားသော notebook ထဲရှိ ဒေတာကို ကြည့်ပါ။ ဒေတာကို ကြိုတင်တင်ထားပြီး အစပိုင်း scatterplot တစ်ခုကို month data ပြရန် ဖော်ပြထားသည်။ ဒေတာအတွက် ပိုမိုအသေးစိတ် ရယူဖို့ သန့်ရှင်းမှုပိုပြီး လုပ်သင့်သလို ဖြစ်နိုင်သည်။
ယခင်သင်ခန်းစာမှာ Pandas data frame တစ်ခုကို ဖန်တီးပြီး မူရင်း dataset ရဲ့ အစိတ်အပိုင်းတစ်ခုကို ထည့်သွင်းခဲ့သည်။ Pricing ကို bushel အတိုင်းအတာဖြင့် စံပြုခဲ့သည်။ ဒါပေမယ့် ၄၀၀ ခန့်သော datapoints ကိုသာ ရရှိခဲ့ပြီး ဆောင်းရာသီလများအတွက်သာ ရရှိခဲ့သည်။
## Linear regression လိုင်းတစ်ခု
ဒီသင်ခန်းစာရဲ့ notebook တွင် preloaded data ကို ကြည့်ပါ။ ဒေတာကို preloaded လုပ်ပြီး month data ကို scatterplot တစ်ခုအဖြစ် chart လုပ်ထားသည်။ ဒေတာရဲ့ nature ကို ပိုမိုသေချာစေရန် ပိုမိုသန့်စင်နိုင်မလားဆိုတာ ကြည့်ပါ
သင် သင်ခန်းစာ ၁ တွင် သင်တန်းရဲ့ ရည်ရွယ်ချက်မှာ ပြောင်းလဲမှု များကိုတစ်ခုချင်းစီ ဘယ်လို ဆက်နွယ်ကြောင်း ပြရန် တိုက်ရိုက်လမ်းကြောင်းဖော်လိုသည်ဆိုတာ ဖြစ်ကြောင်း သိရသည်
## Linear Regression Line တစ်ခု
- **ဇာတ်ကောင်များ ဆက်နွယ်မှု ပြသခြင်း**။ မတူညီသော ဇာတ်ကောင်များအကြား ဆက်နွယ်မှု ပြသခြင်း။
- **ခန့်မှန်းခြေပြုလုပ်ခြင်း**။ ပြီးခဲ့တဲ့ ဒေတာဇယားအပေါ် ခန့်မှန်းမှုပြုလုပ်၍ ဒေတာအသစ်အပေါ် ရသရွယ်မှု ပြုခြင်း။
Lesson 1 မှာ သင်လေ့လာခဲ့သလို Linear Regression ရဲ့ ရည်ရွယ်ချက်ကတော့ လိုင်းတစ်ခုကို plot လုပ်နိုင်ရန် ဖြစ်သည်။
**Least-Squares Regression** သေချာမှုအတွက် ဒီလိုလိုင်းကို ဆွဲတယ်။ "Least-Squares" ဆိုတာ သက်ဆိုင်ရာ မော်ဒယ်အတွင်း ဒေတာမှားယွင်းမှုတစ်ခုချင်းစီအတွက် မူလိုင်ရာမှားယွင်းမှုကို လျှော့ချဖို့ လုပ်ငန်းစဉ်တစ်ခု ဖြစ်ပါသည်။ ဒေတာအချက်လေးတစ်ခုချင်းစီအတွက် စစ်မှန်တဲ့အချက်နဲ့ regression လိုင်းအကြား လျှောက်လွှာဖြင့်ခွဲခြမ်းဖြတ်တောက်မှု (residual) ကိုတိုင်းတာပါသည်။
- **Variable ဆက်နွယ်မှုများကို ပြသရန်**။ Variable များအကြား ဆက်နွယ်မှုကို ပြသရန်
- **ခန့်မှန်းချက်များ ပြုလုပ်ရန်**။ Datapoint အသစ်တစ်ခုကို လိုင်းနှင့် ဆက်နွယ်မှုအပေါ် အတိအကျ ခန့်မှန်းရန်
ဒီအကွာအဝေးကို အောက်ပါ အကြောင်းညီညွတ်မှု နှစ်မျိုးကြောင့် ရေတွက်ပါသည်-
**Least-Squares Regression** သုံးပြီး ဒီလိုင်းကို ရေးဆွဲသည်။ 'Least-squares' ဆိုတာက Regression လိုင်းကို ဝန်းရံထားသော datapoints များကို square လုပ်ပြီး ထည့်ပေါင်းခြင်းဖြစ်သည်။ အဆုံးသတ်ပေါင်းစုက အနည်းဆုံးဖြစ်ရမည်။ အမှားများနည်းသော `least-squares` ကို ရရှိရန် ဖြစ်သည်။
1. **အချက်အလက် ဒေသအလိုက် မျှတခြင်း**: -5 မှာ အမှားတစ်ခုနဲ့ +5 မှာ အမှားတစ်ခုကို တူညီသဘောထားစေဖို့ ရည်ရွယ်သည်။ ကွေးသွားခြင်းအားဖြင့် တန်ဖိုးများအားလုံး မရှိမဖြစ် အပေါင်းလိုက် ဖြစ်စေသည်။
ဒါကို လုပ်ရတဲ့အကြောင်းကတော့ ဒေတာပွိုင့်များအားလုံးမှ cumulative distance အနည်းဆုံးဖြစ်သော လိုင်းတစ်ခုကို မော်ဒယ်ဖန်တီးလိုခြင်း ဖြစ်သည်။ ထို့အပြင် direction ကိုမဟုတ်ဘဲ magnitude ကိုသာ စိုးရိမ်သောကြောင့် term များကို square လုပ်ပြီး ထည့်ပေါင်းသည်။
2. **အပြင်မှာရှိနေသောမှားယွင်းမှုများကို ဒဏ်ရာပေးခြင်း**: အကြီးမားဆုံးအမှားများကို ပိုပြီး အာရုံစိုက်စေပြီး၊ လိုင်းသည် အဲ့ဒီဒေတာများနီးပါးမှာ ပိုနီးစပ်အောင် ဖိအားပေးသည်။
> **🧮 သင်္ချာကို ပြပါ**
ခုနောက်ဆုံး အခြေခံထားတဲ့ squared error သုံးပြီး ပြီးဆုံးရာ တန်ဖိုး၏ စုစုပေါင်းကို တွက်ချက်သည်။ အဲ့ဒီစုစုပေါင်းတန်ဖိုး အနည်းဆုံး ရှိတဲ့ လိုင်းကို ရှာဖွေပါတယ်။ဒါ့ကြောင့် "Least-Squares" လို့ခေါ်ကြတာဖြစ်ပါတယ်။
> **🧮 သင်္ချာအပိုင်း ပြပါ**
>
> ဒီလိုင်းကို _line of best fit_ ဟုခေါ်ပြီး [equation](https://en.wikipedia.org/wiki/Simple_linear_regression) ဖြင့် ဖော်ပြနိုင်သည်။
> ဒီလိုင်းကို _line of best fit_ လို့ခေါ်ပြီး [တစ်ခုတည်းသောဆွဲဆန့် regression ဆိပ်ကမ်း](https://en.wikipedia.org/wiki/Simple_linear_regression) ဖြင့်ဖော်ပြနိုင်ပါတယ်။
>
> ```
> Y = a + bX
> ```
>
> `X` က 'explanatory variable' ဖြစ်သည်။ `Y` က 'dependent variable' ဖြစ်သည်။ လိုင်းရဲ့ slope ကို `b` ဟုခေါ်ပြီး y-intercept ကို `a` ဟုခေါ်သည်။ `X = 0` ဖြစ်သောအခါ `Y` ရဲ့တန်ဖိုးကို ရည်ညွှန်းသည်။
> `X` သည် 'အကြောင်းပြချက် ပြောင်းလဲမှု' ကို ဆိုလိုသည်။ `Y` သည် 'ဘယ်လိုပြောင်းလဲမှု ထိခိုက်သည်' ကို ဆိုလိုသည်။ လိုင်း၏ အလျားညီသည် `b` ဖြစ်ပြီး `a` သည် y-intercept ဖြစ်ပြီး `X = 0` ဖြစ်သောအခါ `Y` တန်ဖိုးဖြစ်သည်။
>
>![calculate the slope](../../../../2-Regression/3-Linear/images/slope.png)
>![calculate the slope](../../../../translated_images/my/slope.f3c9d5910ddbfcf9.webp)
>
> ပထမဆုံး slope `b` ကိုတွက်ပါ။ Infographic by [Jen Looper](https://twitter.com/jenlooper)
> ပထမဦးဆုံး slope `b` ကိုတွက်ချက်ပါ။ infographic ကို [Jen Looper](https://twitter.com/jenlooper) ဖန်တီးသည်။
>
> Pumpkin data ရဲ့ မူရင်းမေးခွန်းကို ရည်ညွှန်းပါက "month အပေါ်မူတည်ပြီး bushel တစ်ခုအတွက် Pumpkin စျေးနှုန်းကို ခန့်မှန်းပါ" ဆိုသည်မှာ `X` က စျေးနှုန်းကို ရည်ညွှန်းပြီး `Y` က ရောင်းချသောလကို ရည်ညွှန်းသည်။
> နောက်ထပ် ရှင်းလင်းရန်၊ pumpkin data အရ "လစဉ် တစ် bushel အတွက် pumpkin ဈေးဖော်ပြချက် ခန့်မှန်းပါ" ဆိုသည်မှာ `X` သည် ဈေးနှုန်းကို ဆိုလိုပြီး `Y` သည် အရောင်းလကို ဆိုလိုသည်။
>
>![complete the equation](../../../../2-Regression/3-Linear/images/calculation.png)
>![complete the equation](../../../../translated_images/my/calculation.a209813050a1ddb1.webp)
>
> `Y` ရဲ့တန်ဖိုးကိုတွက်ပါ။ $4 ဝန်းကျင်ပေးရမယ်ဆိုရင် April ဖြစ်နေလိမ့်မယ်! Infographic by [Jen Looper](https://twitter.com/jenlooper)
> Y တန်ဖိုးကိုတွက်ချက်ပါ။ သင် $4 လောက်ပေးထားရင် April လဖြစ်မယ်! infographic ကို [Jen Looper](https://twitter.com/jenlooper) ဖန်တီးသည်။
>
> လိုင်းရဲ့ slope ကိုတွက်ရန် သင်္ချာက intercept ကိုလည်း အခြေခံထားသည်။ `X = 0` ဖြစ်သောအခါ `Y` ရဲ့တည်နေရာကိုလည်း ထည့်သွင်းတွက်ချက်ထားသည်။
> ဒီလိုင်းကိုတွက်ချက်ရာတွင် slope ကို ဖော်ထုတ်ပြီး၊ intercept (သို့) `X = 0` ဖြစ်စဉ် Y တန်ဖိုးရှိရာနေရာတိုက်ရိုက် ကိုဖော်ပြရပါမယ်။
>
> ဒီတန်ဖိုးများရဲ့ လိုင်းကို ဘယ်လိုသတ်မှတ်ရမလဲဆိုတာကို [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) ဝဘ်ဆိုဒ်မှာ ကြည့်နိုင်သည်။ [Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) ကိုလည်း သုံးပြီး တန်ဖိုးများက လိုင်းကို ဘယ်လိုသက်ရောက်မှုရှိသလဲဆိုတာ ကြည့်နိုင်သည်။
> ဤတန်ဖိုးများထုတ်ယူနည်းကို [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) ဆိုက်မှာ တွေ့နိုင်ပြီး၊ [Least-squares ကိရိယာ](https://www.mathsisfun.com/data/least-squares-calculator.html) မှာလည်း နံပါတ်များ၏ သက်ရောက်မှုကို ကြည့်ရှုနိုင်သည်။
## Correlation
## ဆက်စပ်မှု
ောက်ထပ်နားလည်ရမည့် term တစ်ခုကတော့ **Correlation Coefficient** ဖြစ်သည်။ X နှင့် Y variable များအကြား scatterplot ကို အသုံးပြု၍ Coefficient ကို မြန်မြန်ဆန်ဆန် visualization လုပ်နိုင်သည်။ Datapoints များကို တိကျသောလိုင်းတစ်ခုအတိုင်း scatter လုပ်ထားသော plot တွင် correlation မြင့်မားသည်။ X နှင့် Y အကြား scatter လုပ်ထားသော plot တွင် correlation နည်းပါမည်။
ားလည်ရန် လိုအပ်သော အခြား အသုံးအနှုန်းမှာ given X နဲ့ Y အကြားရှိ **Correlation Coefficient** ဖြစ်သည်။ Scatterplot တစ်ခုဖြင့် ဒီ coefficient ကို မြန်ဆန်စွာ ဓာတ်ပုံဆွဲကြည့်နိုင်သည်။ တိကျသွားသော အချက်များ စီစဉ်ရိုက်ထားသော plot တွင် Correlation အမြင့်ရှိပြီး၊ အချက်များကြားကွဲဝေးနေသော scatterplot တွင် Correlation နည်းပါးသည်။
Linear Regression မော်ဒယ်က correlation coefficient မြင့်မားသော (၁ နီးစပ်ပြီး မနီးစပ်သော) Least-Squares Regression method နှင့် regression line ရှိရမည်။
Linear regression မော်ဒယ်က Correlation Coefficient မြင့်မား (0 ထက် 1 နီးစပ်သော) ဖြစ်စေရန် Least-Squares Regression နည်းပြုလုပ်ခြင်းဖြင့် တည်ဆောက်သည်။
✅ ဒီသင်ခန်းစာရဲ့ notebook ကို run လုပ်ပြီး Month နှင့် Price scatterplot ကိုကြည့်ပါ။ Pumpkin ရောင်းချမှုအတွက် Month နှင့် Price data တွေဟာ scatterplot အရ correlation မြင့်မားသလား၊ နိမ့်နားသလားဆိုတာ သင့် visual interpretation အရ သတ်မှတ်ပါ။ `Month` အစား *day of the year* (နှစ်အစမှစ၍ ရက်ပေါင်း) ကို အသုံးပြုပါက အဲဒီ correlation က ပြောင်းလဲသလား?
✅ ဒီသင်ခန်းစာ ပါ Notebook ကို Run လိုက်ပြီး Month နဲ့ Price ရဲ့ scatterplot ကို ကြည့်ပါ။ Pumpkin ရောင်းအားတွင် Month နဲ့ Price ဆက်နွယ်မှုမြင့်မား/နည်းပါးသလား? ဒါမှမဟုတ် `Month` ကျော်ပြီး *နှစ်အတွင်းရက်* နဲ့ ခန့်မှန်းပါက ဘယ်လို ပြောင်းလဲသလဲ?
အောက်ပါ code မှာ သန့်စင်ပြီး data frame `new_pumpkins` ကို ရရှိထားသည်ဟု သတ်မှတ်ပါမည်။ အဲဒီ data frame က အောက်ပါအတိုင်းဖြစ်သည်။
အောက်ပါ code မှာ `new_pumpkins` data frame ကို ရယူထားပြီး ဆက်သွယ်မှု ရှိတယ်လိုထင်ရတယ်။
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
@ -89,36 +101,36 @@ ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Pri
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
> ဒီ data ကို သန့်စင်ရန် code ကို [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb) တွင် ရရှိနိုင်သည်။ ယခင်သင်ခန်းစာတွင် လုပ်ခဲ့သည့် သန့်စင်ခြင်းအဆင့်များကို ပြုလုပ်ပြီး `DayOfYear` column ကို အောက်ပါ expression ကို အသုံးပြု၍ တွက်ချက်ထားသည်။
> ဒေတာသန့်ရှင်းမှု ကိစ္စအတွက် code ကို [`notebook.ipynb`](notebook.ipynb) တွင် ရနိုင်သည်။ ယခင်သင်ခန်းစာကဲ့သို့ သန့်ရှင်းမှု လုပ်ဆောင်ပြီး `DayOfYear` column ကို အောက်ပါ အထူးဖော်ပြချက်ဖြင့် တွက်ချက်ထားသည်။
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Linear Regression ရဲ့ သင်္ချာကို နားလည်ပြီးပြီဆိုရင် Pumpkin စျေးနှုန်းများကို ခန့်မှန်းနိုင်ရန် Regression မော်ဒယ်တစ်ခုကို ဖန်တီးကြည့်ရအောင်။ Holiday Pumpkin Patch အတွက် Pumpkin packages များကို optimize လုပ်ရန် ဝယ်ယူသူတစ်ဦးအတွက် ဒီအချက်အလက်များ အသုံးဝင်နိုင်ပါမည်။
Linear regression တွင် သင်္ချာနည်းပညာနောက်ခံကို နားလည်လျှင်၊ pumpkin package များအတွက် အကောင်းဆုံး ဈေးနှုန်း ခန့်မှန်းရန် Regression မော်ဒယ်ကို ဖန်တီးကြမယ်။ အစပျိုး pumpkin patch အတွက် pumpkin ဝယ်သူများအတွက် package ဝယ်ယူမှု တိုးတက်အောင် အကောင်းဆုံး ကိုယ်စားလှယ်ဖြစ်စေခဲ့ပါလိမ့်မယ်။
## Correlation ရှာဖွေခြင်း
## ဆက်စပ်မှု ရှာခြင်း
[![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")
> 🎥 Correlation ရဲ့ အကျဉ်းချုပ်ကို ကြည့်ရန် အထက်ပါပုံကို နှိပ်ပါ။
> 🎥 correlation ကိုအကျဉ်းသွားသော ဗီဒီယိုအတွက် ဓာတ်ပုံကို နှိပ်ပါ။
ယခင်သင်ခန်းစာမှ သင်မြင်ခဲ့သည်မှာ အမျိုးမျိုးသောလများအတွက် အလယ်ပျဉ်စျေးနှုန်းသည် အောက်ပါအတိုင်းဖြစ်သည်။
ယခင်သင်ခန်းစာမှ ဖော်ပြသည့်အတိုင်း လစဉ် ပျမ်းမျှဈေးနှုန်းသည် အောက်ပါအတိုင်း ပုံဖော်ထားသည်။
<img alt="Average price by month" src="../../../../translated_images/my/barchart.a833ea9194346d76.webp" width="50%"/>
ဒါက correlation ရှိနိုင်သည်ဟု အကြံပြုသည်။ Linear Regression မော်ဒယ်ကို `Month` နှင့် `Price` အကြား သို့မဟုတ် `DayOfYear` နှင့် `Price` အကြား ဆက်နွယ်မှုကို ခန့်မှန်းရန် လေ့ကျင့်ကြည့်နိုင်သည်။ အောက်ပါ scatter plot က `DayOfYear` နှင့် `Price` အကြား ဆက်နွယ်မှုကို ပြသည်။
ဒါက ဆက်စပ်မှုရှိစေသင့်ကြောင်း ပြထားပြီး `Month` နဲ့ `Price` အကြား သို့မဟုတ် `DayOfYear` နဲ့ `Price` အကြား ဆက်နွယ်မှု မော်ဒယ်တည်ဆောက်ဖို့ ကြိုးစားကြည့်နိုင်သည်။ အောက်တွင် ယခုဆက်နွယ်မှုကို ပြသသည့် scatterplot ပါ -
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/my/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
`corr` function ကို အသုံးပြု၍ correlation ရှိမရှိ ကြည့်ရအောင်။
`corr` function သုံး၍ ဆက်စပ်မှုကြည့်ပါ -
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
`Month` အပေါ် correlation က -0.15 ဖြစ်ပြီး `DayOfYear` အပေါ် correlation က -0.17 ဖြစ်သည်။ ဒါပေမယ့် အခြားသော ဆက်နွယ်မှုတစ်ခုရှိနိုင်သည်။ Pumpkin အမျိုးအစားများနှင့် ဆက်နွယ်မှုရှိသည်ဟု ထင်ရသည်။ ဒီ hypothesis ကို အတည်ပြုရန် Pumpkin အမျိုးအစားတစ်ခုစီကို အရောင်ကွဲကွဲဖြင့် plot လုပ်ကြည့်ရအောင်။ `scatter` plotting function မှ `ax` parameter ကို အသုံးပြု၍ point အားလုံးကို graph တစ်ခုအပေါ် plot လုပ်နိုင်သည်။
အခြေအနေသည် correlation နည်းပါးသည်ကို လေ့လာရသည်၊ `Month` အတွက် -0.15၊ `DayOfMonth` အတွက် -0.17 ဖြစ်သော်လည်း pumpkin အမျိုးအစားအလိုက် group လည်းရှိသည်။ ဒီ hypothesis မှန်ကန်ရန် တစ်ခုချင်းစီကို အခြားစိတ်ကြည့်အရောင်အားဖြင့် scatter ပြကြမည်။ `scatter` function ထဲမှာ `ax` parameter ပေးပြီး နေရာတူမှန်တဲ့ ဂရပ် ဖော်ရန် -
```python
ax=None
@ -130,7 +142,7 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/my/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
ကျွန်ုပ်တို့ရဲ့ စုံစမ်းမှုက variety က စျေးနှုန်းအပေါ် date ထက် ပိုမိုသက်ရောက်မှုရှိသည်ဟု အတည်ပြုသည်။ Bar graph ဖြင့်လည်း မြင်နိုင်သည်။
စစ်ဆေးမှုချင်းရန် အမျိုးအစားပေါ် မူတည်၍ ဈေးနှုန်းထက် ရောင်းတော့မည့်နေ့ရက် ပိုမိုသက်ရောက်မှုရှိသည်ဟု တွေ့ရှိသည်။ အပြည့်အစုံ ကြည့်ရန် -
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
@ -138,7 +150,7 @@ new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
<img alt="Bar graph of price vs variety" src="../../../../translated_images/my/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
ယခုအချိန်မှာ 'pie type' ဟုခေါ်သော Pumpkin အမျိုးအစားတစ်ခုကိုသာ အာရုံစိုက်ပြီး date ရဲ့ စျေးနှုန်းအပေါ် သက်ရောက်မှုကို ကြည့်ရအောင်
နေ့ရက် သက်ရောက်မှုကို တစ်မျိုးတည်း pumpkin အမျိုးအစား 'pie type' အပေါ် ဦးတည်လျှောက်လဲကြည့်ပါ
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
@ -146,24 +158,24 @@ pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/my/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
`corr` function ကို အသုံးပြု၍ `Price` နှင့် `DayOfYear` အကြား correlation ကို တွက်ချက်ပါက `-0.27` ရရှိမည် - ဒါက predictive model တစ်ခုကို လေ့ကျင့်ခြင်း make sense ဖြစ်သည်ဟု ဆိုလိုသည်။
`Price` နှင့် `DayOfYear` အကြား correlation ကို `corr` function ဖြင့်တွက်လျှင် `-0.27` သို့မဟုတ် အနီးပါး ဖြစ်ပြီး ဖြစ်လာသည်မှာ သင်တန်းတက်ရန် ပြုလုပ်ယုံကြည်ရပါသည်။
> Linear Regression မော်ဒယ်ကို လေ့ကျင့်မည်ဆိုရင် ဒေတာကို သန့်စင်ထားရန် အရေးကြီးသည်။ Linear Regression က missing values များနှင့် အလုပ်မလုပ်သင့်သောကြောင့် အလွတ်နေသော cell များကို ဖယ်ရှားရန် make sense ဖြစ်သည်
> Linear regression မော်ဒယ် လေ့လာဖို့ မတိုင်မီ ဒေတာ သန့်ရှင်းမှုအတိုင်းအတာ ပြုလုပ်ပါ။ Linear regression သည် information ကျန်ရှိမှုများ (missing value) ဖြင့် မကောင်းဘူး၊ ထို့ကြောင့် ခြိမ်းခြောက်မှုရှိသော cell များကို ဖယ်ရှားပါ
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
အခြားနည်းလမ်းတစ်ခုကတော့ အလွတ်နေသော value များကို column တစ်ခုစီမှ mean value များဖြင့် ဖြည့်ရန် ဖြစ်သည်။
တစ်ခြားနည်းဖြင့် အတားအဆီးရှိသော ထောင့်များကို အထူးအတွက် များ၏ ပျမ်းမျှတန်ဖိုးဖြင့် ဖြည့်တင်းနိုင်သည်။
## Simple Linear Regression
## ရိုးရှင်းသော Linear Regression
[![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")
> 🎥 Linear Regression နှင့် Polynomial Regression ရဲ့ အကျဉ်းချုပ်ကို ကြည့်ရန် အထက်ပါပုံကို နှိပ်ပါ။
> 🎥 ဖြစ်ပေါ်သူများအတွက် Linear နဲ့ Polynomial Regression အကြောင်း နိဒါန်းဗီဒီယိုကြည့်ရန်ဓာတ်ပုံကို နှိပ်ပါ။
Linear Regression မော်ဒယ်ကို လေ့ကျင့်ရန် **Scikit-learn** library ကို အသုံးပြုပါမည်။
Linear Regression မော်ဒယ် သင်တန်းတက်ဖို့ **Scikit-learn** library ကို အသုံးပြုမည်။
```python
from sklearn.linear_model import LinearRegression
@ -171,52 +183,70 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
ပထမဆုံး input values (features) နှင့် ရလဒ် output (label) ကို numpy arrays သို့ ခွဲခြားပါ:
input တန်ဖိုးများ (features) နှင့် အလားအလာ output (label) ကို numpy array တွဲ ဘာသာပြန်ထားပါတယ်။
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Linear Regression package ကို မှန်ကန်စွာ နားလည်စေရန် input data ကို `reshape` ပြုလုပ်ရန် လိုအပ်သည်။ Linear Regression က input အဖြစ် 2D-array ကို မျှော်မှန်းသည်။ အဲဒီ array ရဲ့ row တစ်ခုစီက input features ရဲ့ vector ကို ကိုယ်စားပြုသည်။ ကျွန်ုပ်တို့ရဲ့အခြေအနေမှာ input တစ်ခုသာရှိသောကြောင့် N×1 အရွယ်အစားရှိသော array တစ်ခုလိုအပ်သည်။ N က dataset size ဖြစ်သည်။
> Linear Regression ကို သေချာနားလည်ဖို့ input data ကို `reshape` ပြောင်းတာ ဆိုင်းလိုင်းတစ်ခုသည် 2D-array ဖြစ်ရမည်ဖြစ်သည်။ input feature vector တစ်ခုချင်းစီသည်တန်းတစ်ကြောင်းတွင် ရှိရပါမည်။ ဒါကြောင့်၊ input တွေက တစ်ခုတည်းပါ ကနေ N×1 ရောဂါရှိသော array ဖြစ်အောင် ပြင်ထားရတယ်။
ထို့နောက် train dataset နှင့် test dataset များသို့ data ကို ခွဲခြားရန် လိုအပ်သည်။ ဒါက training ပြီးနောက် မော်ဒယ်ကို validate လုပ်နိုင်ရန် ဖြစ်သည်။
ထို့နောက် data ကို train နှင့် test dataset များခွဲခြားမယ်၊ သင်တန်းပြီးတဲ့နောက် မော်ဒယ်ကို စစ်ဆေးနိုင်ရန် ဖြစ်ပါတယ်။
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
နောက်ဆုံးမှာ Linear Regression မော်ဒယ်ကို training လုပ်ရန် code ၂ လိုင်းသာ လိုအပ်သည်။ `Linear
ကျွန်တော်တို့ရဲ့အမှားဟာ ၂ ခုလောက်မှာရှိပြီး၊ ~17% လောက်ဖြစ်ပါတယ်။ အတော်လေးမကောင်းပါဘူး။ မော်ဒယ်ရဲ့အရည်အသွေးကိုပြသနိုင်တဲ့အခြားအချက်တစ်ခုက **coefficient of determination** ဖြစ်ပြီး၊ ဒီလိုရနိုင်ပါတယ်။
နောက်ဆုံး Linear Regression မော်ဒယ် အတွက် training ကို နှစ်ကြောင်း ကုတ်ဖြင့် ပြုလုပ်နိုင်ပါသည်။ `LinearRegression` object ကိုသတ်မှတ်ပြီး `fit` method ဖြင့် data ကို လေ့ကျင့်သည်။
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`fit` လုပ်ပြီးနောက် `LinearRegression` အရာဝတ္ထုတွင် regression ၏ coefficient အားလုံးပါရှိပြီး၊ ပြီးတော့ `.coef_` ဆက်တင်မှတဆင့် ဝင်ရောက်မြင်နိုင်သည်။ ကျွန်ုပ်တို့ကိစ္စတွင် coefficient တစ်ခုသာရှိပြီး၊ ယင်းသည် အကြမ်းအားဖြင့် `-0.017` လောက် ဖြစ်ရမည်။ ၎င်းသည် စျေးနှုန်းများသည် အချိန်နှင့်အမျှ သေးငယ်စွာ လျော့နည်းသွားသော ဖြစ်ရပ်ဖြစ်ပြီး၊ တစ်ရက်လျော့တန်ဖိုးဟု ၂ ဆင့်ခန့်သာရှိသည်ဟု ဆိုလိုသည်။ အနည်းငယ် များစွာ လျော့နည်းသော်လည်း များစွာမဟုတ်ပါ။ ဒါ့အပြင် regression ၏ Y-axis နှင့် ဖြတ်သွားသော အချက်ကို `lin_reg.intercept_` မှတဆင့် ဝင်ရောက်ကြည့်ရှုနိုင်ပြီး၊ ကျွန်ုပ်တို့ကိစ္စတွင် ၂၁ အနီးဖြစ်ပြီး၊ ၎င်းသည် နှစ်အစောပိုင်းတွင် စျေးနှုန်းကို ဖော်ပြသည်။
ကျွန်ုပ်တို့၏ မော်ဒယ်တိကျမှု မည်မျှရှိသည်ကို ကြည့်ရန်၊ စမ်းသပ်ဒေတာတွင် စျေးနှုန်းများကို ခန့်မှန်းပြီး၊ ထိုခန့်မှန်းချက်များနှင့် မျှော်မှန်းထားသောတန်ဖိုးများမှာ မည်မျှနီးစပ်သည်ကို တိုင်းတတ်နိုင်သည်။ ၎င်းသည် mean square error (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}%)')
```
ကျွန်ုပ်တို့၏ အမှားသည် ၂ အမှတ်လောက်ဖြစ်ပြီး၊ ၁၇% ဆန်လောက်ဖြစ်သည်။ မမှန်ကန်ပါ။ မော်ဒယ်အရည်အသွေး၏ အခြားညွှန်ပြချက်ကတော့ **coefficient of determination** ဖြစ်ပြီး၊ အောက်ပါအတိုင်း ရယူနိုင်သည် -
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
တန်ဖိုးက 0 ဖြစ်ရင်၊ မော်ဒယ်က input data ကိုမထည့်သွင်းစဉ်းစားဘဲ၊ *အဆိုးဆုံး linear predictor* ဖြစ်ပြီး၊ ရလဒ်ရဲ့ပျမ်းမျှတန်ဖိုးကိုသာပြသပါတယ်။ တန်ဖိုးက 1 ဖြစ်ရင်၊ မျှော်မှန်းထားတဲ့ output အားလုံးကိုတိကျစွာခန့်မှန်းနိုင်ပါတယ်။ ကျွန်တော်တို့ရဲ့အခြေအနေမှာ coefficient က 0.06 လောက်ရှိပြီး၊ အတော်လေးနိမ့်ပါတယ်။
```
တန်ဖိုးသည် ဖြစ်လျှင်၊ မော်ဒယ်သည် input data ကိုမထည့်သွင်းသောဖြစ်ပြီး၊ *အဆိုးဆုံး လျင်မြန်စွာ ခန့်မှန်းသူ* အဖြစ် လုပ်ဆောင်နေသည်။ ၎င်းသည် ရလဒ်၏ ပျမ်းမျှတန်ဖိုးတစ်ခုသာဖြစ်သည်။ တန်ဖိုး ၁ ဖြစ်လျှင်၊ မျှော်မှန်းထားသော output အားလုံးကို တိကျမှန်ကန်စွာ ခန့်မှန်းနိုင်ခြင်းကို ဆိုလိုသည်။ ကျွန်ုပ်တို့ကိစ္စတွင် coefficient သည် .၀၆ အနီးဖြစ်ပြီး၊ သက်သက်မနည်းပါ။
ကျွန်တော်တို့ test data ကို regression line နဲ့အတူ plot လုပ်ပြီး၊ regression ကကျွန်တော်တို့အခြေအနေမှာဘယ်လိုအလုပ်လုပ်သလဲဆိုတာပိုမိုမြင်နိုင်ပါတယ်။
ကျွန်ုပ်တို့သည် စမ်းသပ်ဒေတာကို regression လိုင်းနှင့်ပေါင်းပြီး ဖြတ်ပေါ်ပုံကို ကြည့်ရှုနိုင်သည် -
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
```
<img alt="Linear regression" src="../../../../translated_images/my/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Polynomial Regression
## Polynomial Regression
Linear Regression ရဲ့အခြားအမျိုးအစားတစ်ခုက Polynomial Regression ဖြစ်ပါတယ်။ တစ်ခါတစ်လေ variable တွေကြား linear relationship ရှိနိုင်ပေမယ့် - ဥပမာ၊ ဖရဲသီးရဲ့အရွယ်အစားကြီးလာတာနဲ့အမျှ၊ စျေးနှုန်းမြင့်လာတာ - တစ်ခါတစ်လေ relationship တွေကို plane သို့မဟုတ်တည့်တည့်လိုင်းအဖြစ် plot လုပ်လို့မရနိုင်ပါဘူး
Linear Regression ၏ အမျိုးအစားတစ်ခုမှာ Polynomial Regression ဖြစ်သည်။ အချို့အခါတွင် 변수များအကြား လျှင်မြန်သော ဆက်စပ်မှုရှိသည် - ပုံမှန်အားဖြင့် pumpkin ၏ အရွယ်အစားပိုကြီးသလောက် စျေးနှုန်းပိုများသွားကြသည်။ သို့သော် အချို့အခါ၌ ယင်းဆက်စပ်မှုများကို စတိတ်တန်းသို့မဟုတ် ရှည်လျားသော လိုင်းအဖြစ် ပုံဖော်၍ မရနိုင်ပါ
[ဒီမှာ](https://online.stat.psu.edu/stat501/lesson/9/9.8) Polynomial Regression အသုံးပြုနိုင်တဲ့ data အမျိုးအစားအချို့ကိုကြည့်ပါ
✅ ဒီထဲမှာ [Polynomial Regression အသုံးပြုနိုင်သော နမူနာများ](https://online.stat.psu.edu/stat501/lesson/9/9.8) တချို့ ရှိပါသည်
Date နဲ့ Price ကြားက relationship ကိုထပ်ကြည့်ပါ။ ဒီ scatterplot ကိုတည့်တည့်လိုင်းနဲ့ခန့်မှန်းသင့်တယ်လို့ထင်ပါသလား။ စျေးနှုန်းတွေကအတက်အကျဖြစ်နိုင်တာမဟုတ်လား။ ဒီအခြေအနေမှာ Polynomial Regression ကိုစမ်းကြည့်နိုင်ပါတယ်။
Date နှင့် Price နှင့် ဆက်စပ်မှုကို ထပ်မံကြည့်ပါ။ ၎င်း scatterplot သည် လျှင်မြန်သော လိုင်းဖြင့် လေ့လာသင့်သည်ဟု သင်ထင်ပါသလား? စျေးနှုန်းတွေ အပြောင်းအလဲများ မဖြစ်နိုင်ပါသလား? ဒီကိစ္စတွင် polymer regression ကို စမ်းသုံးနိုင်သည်။
✅ Polynomial တွေက variable တစ်ခုသို့မဟုတ်အများကြီးနဲ့ coefficient တွေပါဝင်နိုင်တဲ့ mathematical expression တွေဖြစ်ပါတယ်။
✅ Polynomials ဆိုသည်မှာ များစွာသော variables နှင့် coefficient များပါဝင်နိုင်သော ဂဏန်းတွက်ချက်မှုဖော်ပြချက်များ ဖြစ်သည်။
Polynomial regression က nonlinear data ကိုပိုမိုတည့်တည့်အောင် curve လိုင်းတစ်ခုဖန်တီးပါတယ်။ ကျွန်တော်တို့အခြေအနေမှာ `DayOfYear` variable ကို input data ထဲမှာ squared အဖြစ်ထည့်သွင်းရင်၊ parabolic curve တစ်ခုနဲ့ data ကို fit လုပ်နိုင်ပြီး၊ curve ရဲ့အနိမ့်ဆုံးအချက်ကိုနှစ်တစ်နှစ်အတွင်းတစ်နေရာမှာရရှိနိုင်ပါမယ်။
Polynomial regression သည် nonlinear data များကို ပိုမိုသင့်လျော်စွာသိမ်းဆည်းရန် လိမ္မော်လိုင်းမျဉ်း curvature တစ်ခုကို ဖန်တီးပေးသည်။ ကျွန်ုပ်တို့ကိစ္စတွင် `DayOfYear` variable ကို အချက်အလက်ထဲတွင် ထပ်ထည့်ပါက data ကို parabolic curve ဖြင့် သိုလှောင်နိုင်ပြီး၊ တစ်နှစ်အတွင်း အနည်းဆုံးတန်ဖိုးရှိသောနေရာ တစ်ခုရှိမည်ဖြစ်သည်။
Scikit-learn မှာ data processing ရဲ့အဆင့်အမျိုးမျိုးကိုပေါင်းစည်းဖို့အတွက်အသုံးဝင်တဲ့ [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) ပါဝင်ပါတယ်။ **pipeline** က **estimators** တွေရဲ့ chain ဖြစ်ပါတယ်။ ကျွန်တော်တို့အခြေအနေမှာ၊ မော်ဒယ်ကို polynomial features တွေထည့်သွင်းပြီး၊ regression ကို training လုပ်တဲ့ 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** များ လှိုင်းလိုက်မှု ဖြစ်သည်။ ကျွန်ုပ်တို့ကိစ္စတွင် သင်္ချာစနစ်ကို ပထမဆုံး polynomial features ထပ်ထည့်ပြီး၊ ထို့နောက် regression ကို လေ့ကျင့်သွားမည် -
```python
from sklearn.preprocessing import PolynomialFeatures
@ -225,43 +255,43 @@ from sklearn.pipeline import make_pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
`PolynomialFeatures(2)` ကိုအသုံးပြုခြင်းက input data ထဲက second-degree polynomials အားလုံးကိုထည့်သွင်းပါမယ်။ ကျွန်တော်တို့အခြေအနေမှာ `DayOfYear`<sup>2</sup> ဖြစ်ပြီး၊ input variable X နဲ့ Y နှစ်ခုရှိရင်၊ X<sup>2</sup>, XY နဲ့ Y<sup>2</sup> ကိုထည့်သွင်းပါမယ်။ ပိုမြင့်တဲ့ degree polynomials တွေကိုအသုံးပြုချင်ရင်လည်းရပါတယ်။
```
`PolynomialFeatures(2)` အသုံးပြုခြင်းသည် input data ထဲမှ ဒုတိယအဆင့် polynomials အားလုံးကို ထည့်သွင်းသည့် အဓိပ္ပာယ်ဖြစ်သည်။ ကျွန်ုပ်တို့ကိစ္စတွင် `DayOfYear`<sup>2</sup> ဖြစ်မည်၊ ဒါပေမဲ့ variable နှစ်ခုအတွက် X နှင့် Y ရှိပါက X<sup>2</sup>, XY, Y<sup>2</sup> ကို ထည့်သွင်းမည်။ အဆင့်မြင့် polynomials များကိုလည်း အသုံးပြုနိုင်သည်။
Pipelines တွေကို original `LinearRegression` object နဲ့တူညီတဲ့နည်းလမ်းနဲ့အသုံးပြုနိုင်ပြီး၊ pipeline ကို `fit` လုပ်ပြီး၊ `predict` ကိုအသုံးပြုပြီး prediction results ရနိုင်ပါတယ်။ ဒီမှာ test data နဲ့ approximation curve ကိုပြသထားပါတယ်။
Pipeline များကို မူရင်း `LinearRegression` အရာဝတ္ထုပုံစံနဲ့ လိုက်ဖက်၍ သုံးနိုင်ပြီး၊ `fit` လုပ်ပြီးနောက် `predict` ကို သုံး၍ ခန့်မှန်းချက်များရယူနိုင်သည်။ စမ်းသပ်ဒေတာ နှင့် ပြီးရော curve ကို ပြသလိုက်ပါသည် -
<img alt="Polynomial regression" src="../../../../translated_images/my/poly-results.ee587348f0f1f60b.webp" width="50%" />
Polynomial Regression ကိုအသုံးပြုပြီး MSE နည်းပြီး determination မြင့်တက်နိုင်ပေမယ့်၊ အတော်လေးမထူးခြားပါဘူး။ အခြား feature တွေကိုလည်းထည့်သွင်းစဉ်းစားဖို့လိုအပ်ပါတယ်။
Polynomial Regression အသုံးပြုကာ နည်းနည်း သိပ်သာသော MSE နှင့် determination ကိုရရှိနိုင်သော်လည်း အရေးကြီးထိရောက်မှုမရှိပါ။ အခြား features များကိုပါ ထည့်သွင်းစဉ်းစားရန် လိုအပ်သည်။
> ဖရဲသီးစျေးနှုန်းအနိမ့်ဆုံးက Halloween အနီးမှာတွေ့ရတာကိုဘယ်လိုရှင်းပြနိုင်မလဲ?
> 🎃 နောက်တစ်ချက် - Halloween လယ်ဝန်းတွင် pumpkin စျေးနည်းနေမှုကို တွေ့ရသည်။ သင်ဘာကြောင့်ထင်သလဲ?
🎃 အားလုံးကိုဂုဏ်ပြုပါတယ်၊ pie ဖရဲသီးရဲ့စျေးနှုန်းကိုခန့်မှန်းနိုင်တဲ့မော်ဒယ်တစ်ခုဖန်တီးနိုင်ခဲ့ပါပြီ။ ဖရဲသီးအမျိုးအစားအားလုံးအတွက်တူညီတဲ့နည်းလမ်းကိုအသုံးပြုနိုင်ပေမယ့်၊ အတော်လေးအလုပ်ရှုပ်ပါတယ်။ အခုတော့ဖရဲသီးအမျိုးအစားကိုမော်ဒယ်ထဲမှာထည့်သွင်းစဉ်းစားနည်းကိုလေ့လာကြပါစို့!
🎃 သင်သည် အပိုင် pumpkin စျေးထုတ်ခန့်မှန်းနိုင်သော မော်ဒယ်တစ်ခု ဖန်တီးပြီးဖြစ်သည်။ Pumpkin အမျိုးအစားအားလုံးအတွက် ထပ်မံလုပ်ဆောင်နိုင်သော်လည်း ၎င်းသည် ဝေဒနာဖြစ်ပါမည်။ ယခု ကိစ္စအား model တွင် pumpkin အမျိုးအစားကို ထည့်သွင်းရန် သင်ယူကြမည်။
## Categorical Features
## Categorical Features
အကောင်းဆုံးအခြေအနေမှာ၊ ဖရဲသီးအမျိုးအစားအမျိုးမျိုးအတွက်တူညီတဲ့မော်ဒယ်ကိုအသုံးပြုပြီးစျေးနှုန်းကိုခန့်မှန်းနိုင်ချင်ပါတယ်။ သို့သော် `Variety` column က `Month` ကဲ့သို့ numeric value မပါဝင်ပါဘူး။ ဒီလို column တွေကို **categorical** လို့ခေါ်ပါတယ်။
Ideal လူမှုပညာတွင်၊ မတူညီသော pumpkin မျိုးစုံအတွက် တူညီသော မော်ဒယ်ဖြင့် စျေးနှုန်း ခန့်မှန်းနိုင်ရမည်။ သို့သော် `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")
> 🎥 အထက်ကပုံကိုနှိပ်ပြီး categorical features အသုံးပြုနည်းအကျဉ်းချုပ်ဗီဒီယိုကိုကြည့်ပါ။
> 🎥 အထက်ပါ ပုံကို နှိပ်၍ categorical feature များ အသုံးပြုခြင်း၏ ဗီဒီယိုအနှစ်ချုပ်ကို ကြည့်ရှုပါ။
ဒီမှာ variety အပေါ်မူတည်ပြီးပျမ်းမျှစျေးနှုန်းကိုမြင်နိုင်ပါတယ်။
Variety အလိုက် ပျမ်းမျှစျေးနှုန်းသည် အောက်ပါအတိုင်း ဖြစ်သည် -
<img alt="Average price by variety" src="../../../../translated_images/my/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Variety ကိုစဉ်းစားဖို့အတွက်၊ variety ကို numeric form သို့မဟုတ် **encode** လုပ်ဖို့လိုအပ်ပါတယ်။ encode လုပ်နည်းအမျိုးမျိုးရှိပါတယ်-
Variety ကို တွက်ချက်ရန်၊ ပထမဆုံး ဂဏန်းပုံစံသို့ ပြောင်းလဲသို့မဟုတ် **encode** ရပါမည်။ ၎င်းကို ပြုလုပ်နိုင်သည့် နည်းလမ်းများ အချို့မှာ -
* **Numeric encoding** က variety အမျိုးအစားတွေကို table တစ်ခုထဲမှာတည်ဆောက်ပြီး၊ variety နာမည်ကို table ထဲက index နဲ့အစားထိုးပါမယ်။ ဒါဟာ linear regression အတွက်အကောင်းဆုံးနည်းလမ်းမဟုတ်ပါဘူး၊ အကြောင်းက linear regression က index ရဲ့ actual numeric value ကိုယူပြီး၊ coefficient တစ်ခုနဲ့မြှောက်ပြီးရလဒ်ထဲထည့်သွင်းပါတယ်။ ကျွန်တော်တို့အခြေအနေမှာ index နံပါတ်နဲ့စျေးနှုန်းကြားက relationship က non-linear ဖြစ်ပါတယ်၊ indices တွေကိုအတိအကျစီစဉ်ထားတယ်ဆိုရင်တောင်ပါ
* **One-hot encoding** က `Variety` column ကို variety တစ်ခုစီအတွက် column ၄ ခုနဲ့အစားထိုးပါမယ်။ တစ်ခုချင်းစီ column မှာ၊ row တစ်ခုဟာအတိအကျ variety တစ်ခုဖြစ်ရင် `1` ပါမယ်၊ မဟုတ်ရင် `0` ပါမယ်။ ဒါက linear regression မှာ variety တစ်ခုချင်းစီအတွက် coefficient ၄ ခုပါဝင်ပြီး၊ အဲဒီ variety အတွက် "starting price" (သို့မဟုတ် "additional price") ကိုတာဝန်ယူပါမယ်။
* ရိုးရှင်းသော **numeric encoding** သည် မတူညီသော variety များ စာရင်းဆွဲ၍ အဲ့သည့် စာရင်းအတွင်း အညွှန်းတစ်ခုဖြင့် variety အမည်ကို တပ်ဆင်သည်။ ဤနည်းပညာသည် linear regression အတွက် အကောင်းဆုံး မဟုတ်ပါ၊ တကယ်လျှင် linear regression သည် အညွှန်း၏ တန်ဖိုးကို သုံးပြီး coefficient တစ်ခုထပ်ဖွဲ့သည်။ ကျွန်ုပ်တို့ကိစ္စတွင် အညွှန်းနံပါတ်နှင့် စျေးနှုန်း ဆက်စပ်မှုသည် nonlinear ဖြစ်ပြီး၊ အညွှန်းများ စနစ်တကျ အစီအစဉ်လိုက်ဖြစ်စေသော်လည်း ဖြစ်သည်
* **One-hot encoding** သည် `Variety` ကော်လံကို မျိုးစုံ ၄ ကော်လံသို့ အစားထိုးပြီး၊ မျိုးစုံတစ်ခုစီအတွက် ကော်လံတစ်ခုစီ ထားသည်။ ဝေငှားစုရင်းတစ်ကြောင်းသည် ထိုမျိုးစုံဖြစ်လျှင် `1` ဖြစ်မည်၊ မဟုတ်လျှင် `0` ဖြစ်မည်။ ၎င်းဖြင့် linear regression တွင် ကိုယ်စားလှယ် ၄ ယောက်ရှိမည်ဖြစ်ပြီး၊ pumpkin မျိုးစုံ တစ်ခုချင်းစီအတွက် စျေးအစ၊ ဒါမှမဟုတ် "အပေါင်းစုပေးငွေ" အတွက် တစ်ခုစီကို တာဝန်ယူမည်။
Variety ကို one-hot encode လုပ်နည်းကိုအောက်မှာပြထားပါတယ်-
အောက်ပါ ကုဒ်သည် variety ကို one-hot encode ပြုလုပ်ပုံကို ပြသည် -
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
@ -273,14 +303,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
One-hot encoded variety ကို input အဖြစ်အသုံးပြုပြီး linear regression ကို training လုပ်ဖို့အတွက်၊ `X` နဲ့ `y` data ကိုမှန်ကန်စွာ initialize လုပ်ဖို့လိုအပ်ပါတယ်-
one-hot encode တဲ့ variety ကို input အဖြစ်သုံး၍ linear regression လေ့ကျင့်ရန်၊ `X` နှင့် `y` အချက်အလက်များကို မှန်ကန်စွာ စတင်ရပါမည်။
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
ပေါ်မှာ Linear Regression ကို training လုပ်ဖို့အသုံးပြုတဲ့ code နဲ့အတူတူပါပဲ။ စမ်းကြည့်ရင်၊ mean squared error ကအတော်လေးတူတူပါပေမယ့်၊ coefficient of determination (~77%) ကပိုမြင့်တက်ပါတယ်။ ပိုမိုတိကျတဲ့ခန့်မှန်းချက်ရဖို့အတွက်၊ categorical features တွေ၊ နဲ့ numeric features တွေဖြစ်တဲ့ `Month` သို့မဟုတ် `DayOfYear` ကိုထည့်သွင်းစဉ်းစားနိုင်ပါတယ်။ feature တွေကိုတစ်စုတစ်စည်းအဖြစ်ရဖို့ `join` ကိုအသုံးပြုနိုင်ပါတယ်-
```
ကြောင်းအရာများသည် အပေါ်က Linear Regression ခေတ်မီပုံစံနှင့် ထပ်တူတူဖြစ်သည်။ စမ်းကြည့်လျှင် mean squared error မျှ ၎င်းနှင့်အတူတူ နီးပါး ဖြစ်ပြီး coefficient of determination ပြင်းထန်စွာ မြင့်သည် ( ~77%) ဟု တွေ့ရမည်။ ပိုမိုတိကျသော ခန့်မှန်းချက်များရရန် categorical features အပြင် numeric features များ (ဥပမာ `Month``DayOfYear`) ကိုပါ ထည့်သွင်းနိုင်ပြီး၊ feature များ စုစည်းရန် `join` ကို အသုံးပြုနိုင်သည် -
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -288,41 +318,41 @@ 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` type ကိုလည်းထည့်သွင်းထားပြီး၊ MSE 2.84 (10%) နဲ့ determination 0.94 ရရှိပါတယ်!
```
ဒီမှာ `City`ှင့် `Package` အမျိုးအစားများကိုပါ ထည့်သွင်းပြီး၊ မည်သည့် MSE 2.84 (10%) နှင့် determination 0.94 ရရှိသည်။
## Putting it all together
## အားလုံးကို ပေါင်းစပ်ခြင်း
အကောင်းဆုံးမော်ဒယ်ကိုဖန်တီးဖို့အတွက်၊ အပေါ်ကဥပမာထဲက combined (one-hot encoded categorical + numeric) data ကို Polynomial Regression နဲ့အတူအသုံးပြုနိုင်ပါတယ်။ အောက်မှာအပြည့်အစုံ code ကိုပြထားပါတယ်-
အကောင်းဆုံး မော်ဒယ်ကို မိတ်ဆက်ရန်၊ အပေါ်ပါ ဥပမာ၏ combined (one-hot encoded categorical + numeric) data ကို Polynomial Regression နှင့် တွဲသုံးရပါမည်။ ကျွန်ုပ်တို့၏ တူညီမှုအတွက် အပြည့်အစုံကုဒ် -
```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)
```
ဒီနည်းလမ်းက determination coefficient 97% နီးပါးနဲ့ MSE=2.23 (~8% prediction error) ရရှိစေပါမယ်။
```
ဤသည်မှာ determination coefficient အများဆုံး ၉၇% နီးပါး၊ MSE=2.23 (ခန့်မှန်းချက်အမှား ၈% လောက်) ပေးမည်။
| Model | MSE | Determination |
|-------|-----|---------------|
@ -330,27 +360,28 @@ print('Model determination: ', score)
| `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 |
🏆 အားလုံးကိုဂုဏ်ပြုပါတယ်! Regression models ၄ ခုကိုတစ်ခန်းတည်းမှာဖန်တီးပြီး၊ မော်ဒယ်ရဲ့အရည်အသွေးကို 97% အထိတိုးတက်စေခဲ့ပါတယ်။ Regression ရဲ့နောက်ဆုံးအပိုင်းမှာ၊ category တွေကိုသတ်မှတ်ဖို့ Logistic Regression ကိုလေ့လာပါမယ်။
| All features Polynomial | 2.23 (8.25%) | 0.97 |
---
🏆 ကောင်းမွန်ပါတယ်! သင်သည် Regression မော်ဒယ် ၄ ခုကို သင်ခန်းစာတစ်ခုတွင်တည်း ဖန်တီးပြီး မော်ဒယ်အရည်အသွေးကို ၉၇% ထိ မြှင့်တင်ခဲ့ပါသည်။ Regression နောက်ဆုံးအပိုင်းတွင် မည်သည့် category များဖြစ်သည်ကို သတ်မှတ်ပေးသည့် Logistic Regression ကို သင်ကြားမည် ဖြစ်သည်။
## 🚀Challenge
---
## 🚀 စိန်ခေါ်မှု
ဒီ notebook ထဲမှာ variable အမျိုးမျိုးကိုစမ်းကြည့်ပြီး၊ correlation နဲ့ model accuracy ကြားကဆက်နွယ်မှုကိုကြည့်ပါ။
ဒီ notebook တွင် မတူညီသော variables များကို စမ်းသပ်ပါ။ Correlation နှင့် model တိကျမှု ယှဉ်တွဲမှုကို ကြည့်ရှုပါ။
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## Review & Self Study
## ပြန်လည်သုံးသပ်ခြင်းနှင့် ကိုယ်တိုင်လေ့လာမှု
ဒီခန်းမှာ Linear Regression ကိုလေ့လာခဲ့ပါတယ်။ Regression ရဲ့အရေးကြီးတဲ့အမျိုးအစားအခြားများလည်းရှိပါတယ်။ Stepwise, Ridge, Lasso နဲ့ Elasticnet techniques တွေကိုဖတ်ရှုပါ။ ပိုမိုလေ့လာချင်ရင် [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) ကိုလေ့လာပါ။
ဒီသင်ခန်းစာတွင် Linear Regression အကြောင်း သင်ယူခဲ့ပါသည်။ ထိုသို့ အရေးကြီးသော Regression အမျိုးအစားအခြားများလည်း ရှိပါသည်။ Stepwise, Ridge, Lasso နှင့် Elasticnet နည်းစနစ်များကိုလေ့လာပါ။ ပိုမိုလေ့လာရန် Stanford Statistical Learning သင်တန်းရုပ်သံသည် အကောင်းဆုံးဖြစ်သည်။ [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Assignment
## တာဝန်လက်ခံခြင်း
[Build a Model](assignment.md)
[Build a Model](assignment.md)
---
**ဝက်ဘ်ဆိုက်မှတ်ချက်**:
ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [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,44 +1,44 @@
# Cuisine classifiers 2
# အစားအသောက် အမျိုးအစား ခွဲခြားခြင်း 2
ဒီ classification သင်ခန်းစာအပိုင်း (၂) မှာ သင် numeric data ကို classify လုပ်နိုင်တဲ့ နည်းလမ်းတွေကို ပိုမိုလေ့လာနိုင်မှာဖြစ်ပါတယ်။ အပြင်မှာ classifier တစ်ခုကို ရွေးချယ်တဲ့အခါမှာ ဖြစ်နိုင်တဲ့ အကျိုးဆက်တွေကိုလည်း သင်လေ့လာနိုင်ပါမယ်။
ဒီ ဒုတိယအတန်းခွဲခြားခြင်း ပညာသင်ခန်းစာမှာ သင်သည် ဂဏန်း ဒေတာများကို အမျိုးအစား ခွဲခြားနိုင်မည့် နည်းလမ်းများ ပိုမိုလေ့လာမည်ဖြစ်သည်။ သင်သည် အမျိုးအစားခွဲခြားသူ တစ်ခုပြီး တစ်ခုကို ရွေးချယ်ရာမှ ဖြစ်ပေါ်နိုင်သည့် ထိခိုက်မှုများကိုလည်း သိရှိမည်ဖြစ်သည်။
## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## [သင်ခန်းစာမတိုင်ခင် မေးခွန်းစစ်](https://ff-quizzes.netlify.app/en/ml/)
### ကြိုတင်လိုအပ်ချက်
### ယခင်သင်ခန်းစာလိုအပ်ချက်
သင်ဟာ အရင် lessons တွေကိုပြီးစီးထားပြီး `data` folder ထဲမှာ _cleaned_cuisines.csv_ ဆိုတဲ့ cleaned dataset ကိုရှိထားတယ်လို့ ယူဆပါတယ်။ ဒီ dataset ဟာ lessons (၄) ခုပါဝင်တဲ့ folder ရဲ့ root မှာရှိပါတယ်။
သင်သည် ယခင်သင်ခန်းစာများကို ပြီးမြောက်ပြီးဖြစ်ပြီး၊ ဒီ ၄-ခန်းသင်ခန်းစာ folder၏ ရှေ့ဆက် သက်သက်ရှိသော _cleaned_cuisines.csv_ ဟူသော သန့်ရှင်းထားသော ဒေတာစုစည်းမှုကို `data` ဖိုလ်ဒါအတွင်းရှိနေသည်ဟု ထင်မြင်ကြောင်း။
### ပြင်ဆင်မှု
### အဆင်ပြေမှု
သင_notebook.ipynb_ ဖိုင်ကို cleaned dataset နဲ့ loaded လုပ်ပြီး model တည်ဆောက်မှုအတွက် X နဲ့ y dataframes အဖြစ် ခွဲထားပါတယ်။
သင် _notebook.ipynb_ ဖိုင်ကို သန့်ရှင်းထားသော ဒေတာနှင့် ဖွင့်ထားပြီး X နှင့် y dataframes သို့ ခွဲထားပြီး မော်ဒယ်တည်ဆောက်ခြင်းလုပ်ငန်းစဉ်အတွက် အသင့်ဖြစ်သည်။
## Classification map
## အမျိုးအစား ခွဲခြားခြင်း အမြေပုံ
အရင် lessons မှာ Microsoft ရဲ့ cheat sheet ကို အသုံးပြုပြီး data ကို classify လုပ်နိုင်တဲ့ နည်းလမ်းတွေကို သင်လေ့လာခဲ့ပါတယ်။ Scikit-learn မှာ cheat sheet တစ်ခုလည်းရှိပြီး၊ အဲဒီ cheat sheet က သင့် estimators (classifier ကိုခေါ်တဲ့အခြားအမည်) ကို ပိုမိုကျဉ်းကျဉ်းစစ်နိုင်အောင် ကူညီပေးနိုင်ပါတယ်
ပြီးခဲ့သောအချိန်တွင် Microsoft ၏ cheat sheet ကို အသုံးပြု၍ ဒေတာ ခွဲခြားရာမှာ ရွေးချယ်နိုင်သည့် နည်းလမ်းမျိုးစုံကို သင်သိရှိခဲ့သည်။ Scikit-learn သည် ဆက်ဆံမှု ပိုမြင့်နှင့် အသေးစိတ်ကဲြသော cheat sheet ကို အသုံးပြုနိုင်ပြီး classifier များအား ပိုမို ကန့်သတ်နိုင်စေသည် (classifier အတွက် alternative term ဖြစ်သည်)
![ML Map from Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Tip: [visit this map online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) နှင့် path ကို click လုပ်ပြီး documentation ကိုဖတ်ပါ
![ML Map from Scikit-learn](../../../../translated_images/my/map.e963a6a51349425a.webp)
> အကြံပြုချက်- [ဤမြေပုံကို အွန်လိုင်းတွင် သွားရောက်ကြည့်ရှုပါ](https://scikit-learn.org/stable/tutorial/machine_learning_map/)၊ လမ်းကြောင်းအလိုက် နှိပ်၍ စာရွက်စာတမ်းများကို ဖတ်ရှုနိုင်ပါသည်
### အစီအစဉ်
ဒီ map ဟာ သင့် data ကို ရှင်းလင်းစွာနားလည်ပြီးတဲ့အခါမှာ အလွန်အသုံးဝင်ပါတယ်။ သင့် data ကို 'လမ်း' တစ်ခုလိုဖြတ်သန်းပြီး ဆုံးဖြတ်ချက်ကို ရယူနိုင်ပါတယ်။
ဒီမြေပုံသည် သင်၏ ဒေတာကို လုံးလုံးလင်လင် သိရှိပြီးနောက်တွင် ဦးတည်ချက်ချရာတွင် အလွန်အသုံးဝင်သည်။
- ကျွန်တော်တို့မှာ >50 samples ရှိပါတယ
- ကျွန်တော်တို့ category တစ်ခုကို predict လုပ်ချင်ပါတယ
- ကျွန်တော်တို့မှာ labeled data ရှိပါတယ
- ကျွန်တော်တို့မှာ 100K samples ထက်နည်းပါတယ်
- ✨ Linear SVC ကို ရွေးချယ်နိုင်ပါတယ
- အဲဒါမအောင်မြင်ရင်၊ ကျွန်တော်တို့မှာ numeric data ရှိတဲ့အတွက
- ✨ KNeighbors Classifier ကို စမ်းကြည့်နိုင်ပါတယ
- အဲဒါမအောင်မြင်ရင် ✨ SVC နဲ့ ✨ Ensemble Classifiers ကို စမ်းကြည့်ပါ
- မည်သည့်နောက်ထပ် sampling များ > 50ရှိသည
- အမျိုးအစားတစ်ခုကို ခန့်မှန်းလိုသည
- label အချက်အလက်ရှိသည
- sampling များ < 100K
- ✨ Linear SVC ကို ရွေးချယ်နိုင်သည
- အကယ်၍ မအောင်မြင်ပါက, ဂဏန်းဒေတာရှိသောကြောင့
- ✨ KNeighbors Classifier ကို စမ်းသပ်နိုင်သည
- မအောင်မြင်ပါက ✨ SVC နှင့် ✨ Ensemble Classifiers ကို စမ်းသပ်နိုင်သည်
ဒီလမ်းကြောင်းဟာ အလွန်အသုံးဝင်ပါတယ်။
ဒီလမ်းကြောင်းသည် လိုက်နာရန်အတွက် အလွန် အကျိုးဖြစ်ဖွယ် ဖြစ်သည်။
## လေ့ကျင့်မှု - data ကို ခွဲခြားပါ
## လေ့ကျင့်ခန်း - ဒေတာကို ခွဲခြားမှု
ဒီလမ်းကြောင်းကိုလိုက်ပြီး အသုံးပြုရန် libraries တချို့ကို import လုပ်ရပါမယ်
ဒီလမ်းကြောင်းအရ သုံးရန်လိုအပ်သည့် libraries များကို ယနေ့ဆီစတင် အတင်ပါ
1. လိုအပ်တဲ့ libraries တွေကို Import လုပ်ပါ:
1. လိုအပ်သော libraries များကို ထည့်သွင်းပါ-
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@
import numpy as np
```
1. သင့် training data နဲ့ test data ကို ခွဲခြားပါ:
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 classifier
Support-Vector clustering (SVC) ဟာ Support-Vector machines ML techniques မျိုးရိုးရဲ့ အစိတ်အပိုင်းတစ်ခုဖြစ်ပါတယ် (အောက်မှာပိုမိုလေ့လာနိုင်ပါတယ်)။ ဒီနည်းလမ်းမှာ label တွေကို cluster လုပ်ဖို့ 'kernel' ကိုရွေးချယ်နိုင်ပါတယ်။ 'C' parameter ဟာ 'regularization' ကိုဆိုလိုပြီး parameters တွေ၏ အကျိုးသက်ရောက်မှုကို ထိန်းညှိပေးပါတယ်။ Kernel ဟာ [အမျိုးမျိုး](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) ရှိနိုင်ပြီး၊ ဒီမှာ 'linear' ကို set လုပ်ထားပါတယ်။ Probability ဟာ 'false' အဖြစ် default ဖြစ်ပြီး၊ ဒီမှာ 'true' ကို set လုပ်ထားပါတယ်။ Random state ကို '0' အဖြစ် set လုပ်ထားပြီး data ကို shuffle လုပ်ကာ probabilities ရယူထားပါတယ်။
Support-Vector clustering (SVC) သည် Support-Vector machine များ၏ ကလေး ဖြစ်ပြီး ML နည်းပညာမျိုးဆက်တစ်ခုဖြစ်သည် (အောက်တွင် ပိုမိုလေ့လာပါ)။ ဤနည်း၊ သင်သည် 'kernel' ကို ရွေးချယ်ကာ labels များကို ဘယ်လို အုပ်စုဖွဲ့မည်ကိုဆုံးဖြတ်နိုင်သည်။ 'C' parameter သည် 'regularization' ကို ဆိုလိုပြီး သတ်မှတ်မှု parameter များ၏ သက်ရောက်မှုကို ထိန်းညှိပေးသည်။ kernel သည် [အမျိုးမျိုး](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) ရှိသော်လည်း; ဒီမှာ ဗဟိုထားသည်မှာ 'linear' ဖြစ်ပြီး linear SVC ကိုအသုံးချရန်ဖြစ်သည်။ Probability သည် မပေးထားပါက 'false' ဖြစ်သည်; ဒီမှာ ကို 'true' သတ်မှတ်ထားပြီး probability အခြေခံခန့်မှန်းမှုများပိုရရှိစေရန် ဖြစ်သည်။ random state ကို '0' သတ်မှတ်၍ ဒေတာတွေ စီမံချက်တည့် စောင့်ရှောက်ခြင်းအတွက်ဖြစ်သည်။
### လေ့ကျင့်မှု - Linear SVC ကို အသုံးပြုပါ
### လေ့ကျင့်ခန်း - Linear SVC ကို အသုံးပြုပါ
Classifiers array တစ်ခုကို စတင်ဖန်တီးပါ။ စမ်းသပ်မှုအတိုင်း ဒီ array ကို တိုးချဲ့သွားပါမယ်။
စတင်ရန် classifier array တစ်ခုကို ပြုလုပ်ပါ။ စမ်းသပ်မှုကြာလာသည့်အချိန်တွင် ဒီ array ထဲတွင် ဆက်လက် လုပ်ဆောင်သွားမည်။
1. Linear SVC ကို စတင်ပါ:
1. Linear SVC ဖြင့် စတင်ပါ-
```python
C = 10
# Create different classifiers.
# ကွဲပြားတဲ့ classifier များကို ဖန်တီးပါ။
classifiers = {
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
}
```
2. Linear SVC ကို အသုံးပြုပြီး model ကို train လုပ်ပြီး report ကို print ထုတ်ပါ:
2. Linear SVC ကို အသုံးပြု၍ မော်ဒယ်ကို လေ့ကျင့်ပြီး အစီရင်ခံစာ ထုတ်ရန်-
```python
n_classifiers = len(classifiers)
@ -88,7 +88,7 @@ Classifiers array တစ်ခုကို စတင်ဖန်တီးပါ
print(classification_report(y_test,y_pred))
```
ရလဒ်က အတော်လည်းကောင်းပါတယ်:
ရလဒ်က အလွန်ကောင်းမွန်သည်-
```output
Accuracy (train) for Linear SVC: 78.6%
@ -107,19 +107,19 @@ Classifiers array တစ်ခုကို စတင်ဖန်တီးပါ
## K-Neighbors classifier
K-Neighbors ဟာ ML methods "neighbors" မျိုးရိုးရဲ့ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး supervised နဲ့ unsupervised learning နှစ်မျိုးလုံးမှာ အသုံးပြုနိုင်ပါတယ်။ ဒီနည်းလမ်းမှာ point အရေအတွက်ကို predefined လုပ်ပြီး၊ generalized labels တွေကို predict လုပ်နိုင်ဖို့ data တွေကို အဲဒီ point တွေကို စုစည်းထားပါတယ်။
K-Neighbors သည် "neighbors" မျိုးဆက် ထဲရှိ ML နည်းလမ်းတစ်ခုဖြစ်ပြီး supervised နှင့် unsupervised learning နှစ်မျိုးလုံး အသုံးပြုနိုင်သည်။ ဤနည်းလမ်းတွင် ဖတ်ရှုသူများ စုစည်းထားသည့် အချက်အလက်များ၏ အရေအတွက်ကို သတ်မှတ်ပြီး အချက်အလက်များကို ဤအချက်အလက်များနားတွင် စုစည်းကာ အခြေခံ၍ label များကို ခန့်မှန်းသည်။
### လေ့ကျင့်မှု - K-Neighbors classifier ကို အသုံးပြုပါ
### လေ့ကျင့်ခန်း - K-Neighbors classifier ကို အသုံးပြုပါ
အရင် classifier က data နဲ့ အတော်လည်းကောင်းပါတယ်၊ ဒါပေမယ့် accuracy ပိုမိုကောင်းနိုင်မလား စမ်းကြည့်ပါ။ K-Neighbors classifier ကို စမ်းသပ်ပါ။
ယခင် classifier သည် ဒေတာနှင့် အတူ ကောင်းမွန်စွာ လုပ်ဆောင်သည်၊ ဒါပေမယ့် တိကျမှန်ကန်မှု ပိုမိုကောင်းစေဖို့ လုပ်နိုင်သည်။ K-Neighbors classifier ကို စမ်းကြည့်ပါ။
1. Linear SVC item အပြီးမှာ comma ထည့်ပြီး classifier array ကို တိုးချဲ့ပါ:
1. သင်၏ classifier array တွင် (Linear SVC မှာ comma ထည့်ပါ) အတန်းတစ်ကြောင်း ထည့်ပါ-
```python
'KNN classifier': KNeighborsClassifier(C),
```
ရလဒ်က နည်းနည်းပိုမိုဆိုးပါတယ်:
ရလဒ်က နည်းနည်း ပိုမဆိုးသည်-
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,23 +136,23 @@ K-Neighbors ဟာ ML methods "neighbors" မျိုးရိုးရဲ့
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 Classifier
Support-Vector classifiers ဟာ [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) မျိုးရိုးရဲ့ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး classification နဲ့ regression tasks တွေမှာ အသုံးပြုနိုင်ပါတယ်။ SVMs ဟာ "training examples တွေကို အာကာသထဲမှာ point အဖြစ် map လုပ်ပြီး" category နှစ်ခုကြားအကွာအဝေးကို maximize လုပ်ပါတယ်။ နောက်ထပ် data တွေကို အဲဒီအာကာသထဲ map လုပ်ပြီး category ကို predict လုပ်နိုင်ပါတယ်။
Support-Vector classifier များသည် [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) မျိုးဆက် ML နည်းလမ်းတစ်ခုဖြစ်ပြီး classification နှင့် regression လုပ်ငန်းများတွင် အသုံးပြုသည်။ SVM များသည် "သင်ကြားမှုဥပမာများကို အကွက်အတွင်း အချက်အလက်များအဖြစ် မှတ်တမ်းတင်ပြီး" အမျိုးအစား နှစ်ခုကြား အကွာအဝေးကို အများဆုံး ပြုလုပ်သည်။ နောက်ထပ်ရလာသော ဒေတာများသည် ဒီအကွက်တွင် စံချိန်ထားပြီး ထိုအမျိုးအစား ခန့်မှန်းမှု ခံယူသည်။
### လေ့ကျင့်မှု - Support Vector Classifier ကို အသုံးပြုပါ
### လေ့ကျင့်ခန်း - Support Vector Classifier ကို အသုံးပြုပါ
Support Vector Classifier ကို အသုံးပြုပြီး accuracy ပိုမိုကောင်းနိုင်မလား စမ်းကြည့်ပါ။
Support Vector Classifier နှင့် တိကျမှန်ကန်မှု ပိုမိုကောင်းစေဖို့ စမ်းကြည့်လိုက်ပါ။
1. K-Neighbors item အပြီးမှာ comma ထည့်ပြီး ဒီ line ကို ထည့်ပါ:
1. K-Neighbors item မှ comma ထည့်ပြီး အောက်ပါလိုင်းကို ထည့်ပါ-
```python
'SVC': SVC(),
```
ရလဒ်က အတော်လည်းကောင်းပါတယ်!
ရလဒ်က အလွန်ကောင်းမွန်သည်!
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ Support Vector Classifier ကို အသုံးပြုပြီး accurac
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 Classifiers
အရင် test က အတော်လည်းကောင်းပါတယ်၊ ဒါပေမယ့် လမ်းကြောင်းကို အဆုံးထိလိုက်ကြည့်ပါ။ '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%
@ -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) အကြောင်း သင်ယူပါ
Machine Learning ရဲ့ ဒီနည်းလမ်းဟာ "base estimators အများအပြားရဲ့ prediction တွေကို ပေါင်းစပ်ပြီး" model quality ကို တိုးတက်စေပါတယ်။ ကျွန်တော်တို့ရဲ့ ဥပမာမှာ Random Trees နဲ့ AdaBoost ကို အသုံးပြုထားပါတယ်။
ဒီ Machine Learning နည်းလမ်းသည် "အခြေခံ လေ့လာမှုနည်းလမ်းတစ်ချို့၏ ခန့်မှန်းချက်များကို ပေါင်းစည်းခြင်း" ဖြင့် မော်ဒယ်အရည်အသွေးကို တိုးတက်စေသည်။ ဥပမာမှာ Random Trees နှင့် AdaBoost ကို အသုံးပြုခဲ့သည်။
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest) ဟာ averaging method ဖြစ်ပြီး၊ 'decision trees' တွေကို 'forest' တစ်ခုအဖြစ် တည်ဆောက်ကာ randomness ကို ထည့်သွင်းပြီး overfitting ကိုရှောင်ရှားပါတယ်။ n_estimators parameter ကို trees အရေအတွက်အဖြစ် set လုပ်ထားပါတယ်။
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest) သည် averaging နည်းလမ်းဖြစ်ပြီး random ထည့်သွင်းထားသော 'decision trees' များဆောက်ပြီး overfitting မဖြစ်အောင် ကြိုးပမ်းသည်။ n_estimators parameter သည် သစ်ပင် အရေအတွက်ဖြစ်သည်။
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) ဟာ dataset ကို classifier တစ်ခုနဲ့ fit လုပ်ပြီး၊ အဲဒီ classifier ကို dataset အပေါ်မှာ ထပ်မံ fit လုပ်ပါတယ်။ အမှားဖြစ်တဲ့ items တွေ၏ weight ကို အာရုံစိုက်ပြီး၊ နောက်ထပ် classifier အတွက် fit ကို ပြင်ဆင်ပေးပါတယ်။
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) သည် dataset အတွက် classifier တစ်ခု အသုံးပြုကာ ထို classifier ၏ များစွာကို ထပ်မံခေါ်ယူကာ မမှန်ကန်စွာ ခွဲခြားထားသည့် အချက်အလက်များ အလေးချိန်ပေး ပြင်ဆင်ရန် ကြိုးပမ်းသည်။
---
## 🚀Challenge
## 🚀 စိန်ခေါ်မှု
ဒီ techniques တစ်ခုချင်းစီမှာ parameters အများအပြားရှိပြီး၊ default parameters တွေကို tweak လုပ်နိုင်ပါတယ်။ တစ်ခုချင်းစီရဲ့ default parameters တွေကို လေ့လာပြီး၊ parameters တွေကို tweak လုပ်ရင် model quality အပေါ် ဘယ်လိုသက်ရောက်မှုရှိမလဲ စဉ်းစားပါ။
နည်းလမ်းတိုင်းတွင် parameter များ အများကြီးရှိပြီး သင် tweak လုပ်နိုင်သည်။ parameter များ၏ default တန်ဖိုးများကို လေ့လာပြီး parameter tuning မှ မော်ဒယ် အရည်အသွေး တိုးတက်မှုအတွက် ဘာကို ဆိုလိုလိုက်လိမ့်မည်ဟု စဥ်းစားကြည့်ပါ။
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## [သင်ခန်းစာပြီးနောက် မေးခွန်းစစ်](https://ff-quizzes.netlify.app/en/ml/)
## Review & Self Study
## ပြန်လည်ကြည့်ရှုမှု & ကိုယ်တိုင်လေ့လာမှု
ဒီ lessons တွေမှာ jargon အများကြီးပါဝင်ပါတယ်၊ [ဒီစာရင်း](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) ကိုကြည့်ပြီး terminology အသုံးဝင်တဲ့အရာတွေကို ပြန်လည်သုံးသပ်ပါ။
ဤသင်ခန်းစာများတွင် စကားလုံးအသုံးများနေသောကြောင့် [ဒီစာရင်း](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) တွင် ပါသည့် အသုံးဝင်သော 용어များကို အကောင်းဆုံး ပြန်လည် သုံးသပ်ပါ။
## Assignment
## အပ်ဒိတ်
[Parameter play](assignment.md)
---
**အကြောင်းကြားချက်**:
ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [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 -->

@ -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**လက်မခံချက်** \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-06T12:28:08+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "my"
}
},
"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ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [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-06T12:28:27+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "my"
}
},
"nbformat": 4,

@ -8,160 +8,171 @@
[![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 Action ဖြင့် ထောက်ခံထားသည် (အလိုအလျောက်နှင့် အမြဲအသစ်ထားသည်)
#### GitHub Action ဖြင့် ထောက်ပံ့ထားပြီး (အလိုအလျောက်နှင့် အမြဲသစ်လွှာ)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](./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](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **ဒေသတွင်းကလုဏ်တင်ချင်ပါသလား?**
> ဤ repository တွင် ဘာသာစကား ၅၀ နှင့်အထက် ဘာသာပြန်ချက်များ ပါဝင်သည်၊ ဒါက ဒေါင်းလုပ်အရွယ်အစားကို အတွက်အကျယ်ပြန့်စေသည်။ ဘာသာပြန်ချက်များ မပါရှိဘဲ clone လုပ်ချင်တယ်ဆိုရင် sparse checkout ကိုသုံးပါ:
> **ဒေသခံမှာ ကိုးပရိုက်လုပ်ချင်ပါသလား?**
>
> ဒီ repository မှာ ဘာသာစကား ၅၀ ကျော်၏ ဘာသာပြန်မှုများ ပါဝင်ပြီး ဒါအားဖြင့် ဒေါင်းလုဒ်အရွယ်အစား ကြီးအောင် ဖြစ်စေပါတယ်။ ဘာသာပြန်မှုများမပါဘဲ clone လုပ်ရန် 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) ဝက်ဘ်ဆိုက်မှာ 2025 ခုနှစ် စက်တင်ဘာ ၁၈ ရက် မှ ၃၀ ရက် အထိ ပိုမိုသိရှိပြီး လက်တွဲပါဝင်နိုင်ပါသည်။ GitHub Copilot ကို Data Science အတွက် သုံးနည့်နည်းလမ်းများကို သင်ယူရမှာ ဖြစ်ပါတယ်။
ကျွန်ုပ်တို့မှာ AI နဲ့ တွေ့ဆုံသင်ယူရေးပြီးတော့ သွားလာနေတဲ့ Discord စီးရီးရှိပါတယ်၊ သင်ပို့ချောင်းပြီး [Learn with AI Series](https://aka.ms/learnwithai/discord) တွင် ၂၀၂၅ ခုနှစ် စက်တင်ဘာ ၁၈ ရက်မှ ၃၀ ရက်အထိ ပိုင်းခြားတွေ့ဆုံနိုင်ပါတယ်။ GitHub Copilot ကို Data Science အတွက် အသုံးပြုပုံနဲ့ ကောင်းတဲ့ tips တွေ ရရှိမှာ ဖြစ်ပါတယ်။
![Learn with AI series](../../translated_images/my/3.9b58fd8d6c373c20.webp)
# စက်ယန္တရားသင်ယူခြင်း အစပြုသူများအတွက် - သင်ရိုး برنامه
# စတင် မေ့လျော့ခြင်း မရှိသော စက်လေ့လာမှု - သင်တန်းအစီအစဉ်
> 🌍 ကမ္ဘာအနှံ့အဆက်သွားရင်း စက်ယန္တရားသင်ယူမှုကို ကမ္ဘာ့ယဉ်ကျေးမှုများမှတဆင့် ရှာဖွေကြမယ် 🌍
> 🌍 ကမ္ဘာ့ယဉ်ကျေးမှုတွေနဲ့ Machine Learning ကို စူးစမ်းလေ့လာရင်း ကမ္ဘာတစ်ဝှမ်း ခရီးသွားကြပါစို့ 🌍
Microsoft မှ Cloud Advocates များက ၁၂ ပတ်၊ ၂၆ သင်ခန်းစာ ရှိသည့် စက်ယန္တရားသင်ယူခြင်း အကြောင်း ပြည့်စုံသင်ရိုးအစီအစဉ်ကို ပေးအပ်နေပါသည်။ ဤသင်ရိုးတွင် အဓိကအားဖြင့် Scikit-learn ကို အသုံးပြု၍ ရိုးရာစက်ယန္တရားသင်ယူခြင်းကို သင်ယူမည် ဖြစ်ပြီး, အနက်ရှိုင်းသော သင်ယူမှုများကိုမှ ကျွန်တော်တို့ [AI for Beginners' curriculum](https://aka.ms/ai4beginners) တွင် လေ့လာနိုင်သည်။ ဒီသင်ရိုးအစီအစဉ်ကို ကျွန်တော်တို့ရဲ့ ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) အတူတွဲသင်ဖြင့် အသုံးပြုနိုင်ပါသည်။
Microsoft ၏ Cloud Advocates တွေက ၁၂ ပတ်တာ၊ အခန်း ၂၆ လုံးပါဝင်တဲ့ **Machine Learning** အကြောင်း သင်တန်းအစီအစဉ်တစ်ခု ပေးဆောင်ပေးနေပါတယ်။ ဒီအစီအစဉ်မှာတော့ အဓိကအားဖြင့် Scikit-learn ကို အသုံးပြုပြီး **classic machine learning** ဟုခေါ်သော နည်းလမ်းကို သင်ကြားပေးမှာ ဖြစ်ပြီး [AI for Beginners' curriculum](https://aka.ms/ai4beginners) တွင် ပါဝင်သောအတိုင်း deep learning ကို ကွာခြားစေပါတယ်။ ဒီသင်ခန်းစာတွေကို ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) နဲ့ တွဲပြီးသင်ကြားနိုင်ပါတယ်။
ကမ္ဘာ့ဒေတာများကို အသုံးပြု၍ ရိုးရာနည်းကောင်းများကို ကမ္ဘာအနှံ့ သွားရင်း လေ့လာကြမယ်။ သင်ခန်းစာတစ်ခုစီတွင် သင်ခန်းစာမတိုင်မီနှင့်ပြီးနောက် ပြသနာဖြေဆိုခြင်း၊ လက်တွေ့လုပ်ဆောင်ရန် ရေးသားချက်များ၊ ဖြေရှင်းချက်၊တာဝန်ထမ်းဆောင်မှုများ ပါဝင်သည်။ စီမံကိန်းအခြေပြု သင်ကြားမှုစနစ်က သင်ယူသူများ သင်ယူရမှုအသစ်ကို ပိုမိုသေချာစေသည်။
ကမ္ဘာရဲ့ အလယ်အလတ် မှ ဒေတာတွေကို classic နည်းစနစ်တွေနဲ့ လေ့လာကြည့်ရင်း ကမ္ဘာအနှံ့ ခရီးသွားကြပါစို့။ သင်ခန်းစာတိုင်းမှာ pre- and post- lesson quizzes, ရေးသားထားတဲ့ လမ်းညွှန်ချက်များ၊ ဖြေရှင်းချက်၊ မျှော်မှန်းထားသော လေ့ကျင့်မှု၊ အတန်းပေးချက် အစရှိသည့် အစိတ်အပိုင်းတွေ ပါဝင်ပါတယ်။ ကျွန်ုပ်တို့၏ project-based ပညာသင်ကြားမှုနည်းလမ်းက သင်ယူရင်း ပရောဂျက်တည်ဆောက်ခြင်းအတွင်းသင်ယူနိုင်စေပြီး, အသစ်သင်ယူရာတွင် အကျိုးရှိမှုရှိစေပါတယ်။
**✍️ ကျေးဇူးအထူးတင်ရှိသည် ကျွန်ုပ်တို့ရေးသားသူများ** 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
**🎨 ကျေးဇူးအထူးတင်ရှိပါတယ် ကျွန်ုပ်တို့ရဲ့ရုပ်ပုံဆွဲသူများ** 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. **Repository ကို Fork လုပ်ပါ**: ဒီစာမျက်နှာ၏ အပေါ်ညာဘက်ထောင့်ရှိ "Fork" ခလုတ်ကို နှိပ်ပါ။
2. **Repository ကို Clone လုပ်ပါ**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
ဒီအဆင့်တွေကို လိုက်နာပါ -
1. **Repository ကို Fork လုပ်ပါ**: ဒီစာမျက်နှာ အပေါ်ညာဘက်ထောင့်က "Fork" ခလုတ်ကို နှိပ်ပါ။
2. **Repository ကို Clone လုပ်ပါ**: `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)
> 🔧 **ကူညီရန် လိုအပ်ပါသလား?** installation, အပြင်အဆင်၊ သင်ခန်းစာများ မောင်းနှင်ရာ တွင် ဖြစ်တတ်သော ပြဿနာများကို ဖြေရှင်းရန် [ပြဿနာဖြေရှင်းလမ်းညွှန်](TROUBLESHOOTING.md) ကို ကြည့်ရှုပါ။
> 🔧 **အကူအညီလိုပါသလား?** ထပ်မံဖြေရှင်းရန် အကြောင်းအမျိုးမျိုးအတွက် [Troubleshooting Guide](TROUBLESHOOTING.md) ကို ကြည့်ပါ။
**[ကျောင်းသားများ](https://aka.ms/student-page)**, ဤသင်ရိုးအစီအစဉ်ကို သုံးရန်အတွက် သင့် GitHub အကောင့်သို့ repository အားလုံးကို fork လုပ်ပြီး သင်တန်းအတွက် သင့်အလိုအလျောက်ဖြင့် သို့မဟုတ် အဖွဲ့နှင့်အတူ လေ့ကျင့်ခွင့်များကို ပြီးမြောက်စွာ ဆောင်ရွက်ပါ။
**[ကျောင်းသားများ](https://aka.ms/student-page)**၊ ဒီသင်တန်းအစီအစဉ်ကို အသုံးပြုရန်အတွက် သင့်ကိုယ်ပိုင် GitHub အကောင့်သို့ repository အားလုံးကို fork လုပ်ပြီး ကိုယ့်အဖွဲ့၊ သို့မဟုတ် တစ်ကိုယ်တော် ဖြေဆိုပေးရန် -
- သင်ခန်းစာမတိုင်မီ စမ်းသပ်မှုကို စတင်ပါ။
- သင်တန်းစာဖတ်ပြီး လေ့ကျင့်ခန်းများကို ပြီးမြောက်ပါ၊ အသိပညာစစ်ဆေးခြင်းနှင့်အတူ ရပ်ပြီး သြႆတင်ဆင်ပါ။
- ဖြေရှင်းချက် ကုဒ်ကို မပြေး run ချသေးဘဲ သင်ခန်းစာကို နားလည်ပြီး စီမံကိန်းများကို ဖန်တီးကြည့်ပါ။ ဒါပေမဲ့ ဖြေရှင်းချက် သည် project များဆိုင်ရာသင်ခန်းစာနှင့် အတူ /solution ဖိုလ်ဒါအတွင်း တွင် ရရှိနိုင်သည်။
- သင်ခန်းစာပြီးနောက် စမ်းသပ်ချက်ကို လုပ်ပါ။
- စိန်ခေါ်မှုကို ပြီးမြောက်ပါ။
- တာဝန်ထမ်းဆောင်မှုကို ပြီးမြောက်ပါ။
- သင်ခန်းစာအုပ်စုတစ်ခု ပြီးမြောက်ပြီးနောက် [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) သို့ သွားရောက်ပြီး အတွက် PAT rubric ကို ဖြည့်၍ "အသံထွက်သော သင်ယူမှု" ပြုလုပ်ပါ။ 'PAT' ဆိုသည်မှာ သင်ယူမှုတိုးတက်ရေး ကိရိယာ (Progress Assessment Tool) ဖြစ်ပြီး လူတစ်ဦးချင်းစီ သင်ယူမှုအဆင့်မြှင့်တင်ရန် ဖြည့်စွက်ဖို့ ဖြစ်သည်။ သင်သည် အခြား PAT များတွင် တုံ့ပြန်နိုင်ပြီး အတူတူ သင်ယူနိုင်ပါသည်။
- pre-lecture quiz နဲ့ စတင်ပါ။
- သင်ခန်းစာကို ဖတ်ပြီး လေ့ကျင့်မှုတွေ ပြီးမြောက်အောင်လုပ်ပါ၊ တစ်ဆင့်ချင်းစီမှာ ရှာဖွေရေးရေးမေးခွန်းတွေကို ရပ်ပြီး စဉ်းစားကြည့်ပါ။
- ဖြေရှင်းချက်ကုဒ်ကို ဖြတ်သန်းပြီး ထပ်မံနားလည်ပြီး ပရောဂျက်တွေကို ချိတ်ဆက်ဖန်တီးကြည့်ပါ။ သို့သော် အဲဒီကုဒ်များကို `/solution` ဖိုလ်ဒါတွင် ရရှိနိုင်ပါတယ်။
- post-lecture quiz ကို ဖြေပါ။
- စိန်ခေါ်မှုကို ပြီးမြောက်အောင်လုပ်ပါ။
- အလုပ်ချမှတ်ချက်ကို ပြီးမြောက်အောင်လုပ်ပါ။
- သင်ခန်းစာအုပ်စုတစ်စုတစ်ခုပြီးလျှင် [ဆွေးနွေးမှုဖိုရမ်](https://github.com/microsoft/ML-For-Beginners/discussions) သို့ သွား၍ ပတ်သတ်ရာ PAT rubric ဖြည့်၍ "အသံထွက်ရန်" ကြိုးစားပါ။ 'PAT' ဆိုသည်မှာ Progress Assessment Tool ဖြစ်ပြီး သင်ယူမှုကို တိုးတက်စေမည့် လူပေါင်းစုံဖြည့်သည့် စည်းမျဉ်းဖြစ်သည်။ အခြား PAT များကိုလည်း တုံ့ပြန်နိုင်သောကြောင့် အတူတကွ သင်ယူနိုင်ပါသည်။
> ပိုမိုလေ့လာလိုပါက ကျွန်ုပ်တို့အကြံပြုလိုသော [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) module များနှင့် သင်ယူရေးလမ်းညွှန်များကို လိုက်နာသင်ယူပါ
> နောက်ထပ် လေ့လာလိုပါက ဒီ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) မော်ဂျူးများနှင့် သင်ယူမည့်လမ်းကြောင်းများကို လိုက်နာရန် အကြံပြုပါသည်
**ဆရာ/ဆရာမများ**, ဤသင်ရိုးအစီအစဉ်ကို အသုံးပြုနိုင်ရန်အတွက် အကြံပြုချက်အချို့ကို [here](for-teachers.md) တွင် ထည့်သွင်းထားသည်။
**ဆရာ/ဆရာမများ**, ဒီသင်တန်းအစီအစဉ်ကို ဘယ်လို အသုံးပြုရမည်နည်းအကြောင်း [အကြံပြုချက်များ](for-teachers.md) ပါဝင်သည်။
---
## ဗီဒီယို လမ်းပြများ
## ဗီဒီယို လမ်းညွှန်များ
သင်ခန်းစာတချို့ကို အတိုချုပ် ဗီဒီယိုဖြင့် ရနိုင်ပါသည်။ ဤဗီဒီယိုများအားလုံးကို သင်ခန်းစာတွင်း၊ ဒါမှမဟုတ် Microsoft Developer YouTube ချန်နယ်မှ [ML for Beginners playlist](https://aka.ms/ml-beginners-videos) တွင် အောက်ပါဓာတ်ပုံကိုနှိပ်၍ ကြည့်ရှုနိုင်ပါသည်။
အချို့သော သင်ခန်းစာများကို အချုပ်အခြား ဗီဒီယိုပုံစံဖြင့် ရရှိနိုင်သည်။ သင်ခန်းစာများအတွင်းလည်း ထည့်ထားပြီး၊ သို့မဟုတ် [Microsoft Developer YouTube ချန်နယ်ရှိ ML for Beginners playlist တွင်လည်း](https://aka.ms/ml-beginners-videos) ဒီပုံကိုနှိပ်၍ ကြည့်ရှုနိုင်သည်။
[![ML for beginners banner](../../translated_images/my/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## အသင်းအဖွဲ့နှင့် တွေ့ဆုံခြင်
## အဖွဲ့ဝင်မျာ
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif မှာ** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif ကို ဖန်တီးသူ** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 ဓာတ်ပုံကိုနှိပ်ပါ၊ စီမံကိန်းနှင့် ဖန်တီးသူများအကြောင်း ဗီဒီယိုတစ်ခုလှည့်ပတ်ငြင်းကြည့်ရန်!
> 🎥 ပရောဂျက်နှင့် ဖန်တီးသူများအကြောင်း ဗီဒီယိုကြည့်ချင်လျှင် အပေါ်ရှိ ပုံကို နှိပ်ပါ!
---
## သင်ပညာပုံစံ
## ပညာသင်ကြားမှု နည်းဗျူဟာ
ဤသင်ရိုးအစီအစဉ်ကို တည်ဆောက်ရာတွင် နှစ်ခုသော သင်ပညာပုံစံများကို ရွေးချယ်ထားပါသည်။ ထိုသင်ပညာပုံစံများမှာ လက်တွေ့နည်းအခြေပြု စီမံကိန်းများနှင့် အချိန်မရွေး ထပ်တလဲလဲ စစ်ဆေးမှုများ ပါဝင်ခြင်း ဖြစ်ပါသည်။ ထို့အပြင် ထိုသင်ရိုးတွင် သာမန္သော ယေဘုယျ theme တစ်ခု ပါဝင်သည်။
ဒီသင်တန်းအစီအစဉ်ကို တည်ဆောက်ရာမှာ နည်းနည်းပညာ ဆိုင်ရာ ကြေငြာချက် နှစ်ချက်ကို ရွေးချယ်ခဲ့သည် - လက်တွေ့တွင် **project-based** ဖြစ်စေခြင်းနှင့် **အကြိမ်ကြိမ်ဖြေဆိုရမည့် မေးခွန်းလေးများ (quizzes)** ပါ ၀င်စေရန်။ ထို့ပြင်, အစီအစဉ်တွင် ပေါင်းစည်းမှု ရရှိစေမည့် **အဓိက အကြောင်းအရာ (theme)** တစ်ခုပါဝင်သည်။
အကြောင်းအရာများကို စီမံကိန်းနှင့် ကိုက်ညီစေရန် သေချာမှုကြောင့် သင်ကြားသူများအတွက် ပိုမိုဆွဲဆောင်မှုရှိပြီး၊ အကြောင်းအရာများသိမြင်မှုကို တိုးတက်စေပါသည်။ သင်တန်းမတိုင်မီ အနည်းငယ်သော စမ်းသပ်မှုသည် သင်ယူသူ၏ သင်ယူလိုစိတ်ကို အဓိကထားပေးပြီး၊ သင်တန်းပြီးနောက် စမ်းသပ်မှုဖြင့် ဒါကိုတစ်ဖန်တိုးတက်စေပါတယ်။ ဤသင်ရိုးအစီအစဉ်သည် အချိန်ခွဲ၍သင်ယူနိုင်ရန် နှင့် ပျော်ရွှင်စရာဖန်တီးထားသည်။ စီမံကိန်းများမှာ အသေးစားသောနေရာမှ စတင်ပြီး ၁၂ ပတ်ကြာ စိတ်ဝင်စားဖွယ် မြင့်မားပြီးရှုပ်ထွေးလာသည်။ ထို့အပြင် ML ၏ အမှန်တကယ်အသုံးချမှုများအကြောင်း ပိုပြီး အသေးစိတ် ဆွေးနွေးနိုင်ရန်အတွက် စာလုံးချုပ်တစ်ခု ပါဝင်သည်။ ၎င်းဟာ အပိုအမှတ်အတွက် သုံးနိုင်သလို ဆွေးနွေးရန် အခြေခံအဖြစ်လည်း အသုံးပြုနိုင်သည်။
အကြောင်းအရာများကို ပရောဂျက်များနှင့် ကိုက်ညီစေခြင်းအားဖြင့် သင်ယူသူများအတွက် ပိုမို စိတ်ဝင်စားဖွယ်ဖြစ်ပြီး အတွေးအမြင်များ ရေရှည် ထိန်းသိမ်းနိုင်မည်ဖြစ်သည်။ ထို့အပြင် အတန်းမတက်မီ မေးခွန်းလေးတစ်ခု ဖြေဆိုခြင်းသည် သင်ယူမှုရည်ရွယ်ချက် များကို အတန်းသားတို့ အတွင်း ကျင့်ကြံမည့် ရည်ရွယ်ချက်ကို သတ်မှတ်ပေးသလို၊ အတန်းပြီးနောက် မေးခွန်းတစ်ခု ထပ်မံဖြေဆိုခြင်းက ထိန်းသိမ်းမှုကို အတည်ပြုစေသည်။ ဒီအစီအစဉ်ကို ပြုပြင်လိုလျင် အပိုင်းအစစိတ်ဝင်စားစရာကောင်းစေပြီး၊ ၁၂ ပတ်အတွင်း ပရောဂျက်က စတင်ကပြည့်စုံလာသည်အထိ အဆင့်မြင့်တက်လာသည်။ ဒီအစီအစဉ်တွင် ML ၏ လက်တွေ့အသုံးချနည်းများအကြောင်း နောက်ဆုံးတွင် ထည့်သွင်းထားပြီး, အပိုအမှတ်အသားသို့မဟုတ် ဆွေးနွေးချက်အတွက် အခြေခံအဖြစ် အသုံးပြုနိုင်ပါသည်။
> ကျွန်ုပ်တို့၏ [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translation](TRANSLATIONS.md), နှင့် [Troubleshooting](TROUBLESHOOTING.md) မှတ်တမ်းများကို ရှာဖွေပါ။ သင့်တည်ဆောက်တိုးတက်မှုဆိုင်ရာ အကြံပြုချက်များကို ကြိုဆိုပါသည်!
> ကျွန်ုပ်တို့၏ [အပြုသဘောဆောင်မှုစည်းမျဉ်း](CODE_OF_CONDUCT.md), [ပံ့ပိုးဆောင်ရွက်ခြင်း](CONTRIBUTING.md), [ဘာသာပြန်ခြင်း](TRANSLATIONS.md), နှင့် [ပြဿနာဖြေရှင်းခြင်း](TROUBLESHOOTING.md) လမ်းညွှန်ချက်များကို ရှာဖွေကြည့်ပါ။ သင်၏ တည်ဆောက်မှုဆိုင်ရာ တုံ့ပြန်ချက်ကို ကျွန်ုပ်တို့ လက်ခံပါသည်။
## သင်ခန်းစာတိုင်းတွင် ပါဝင်သည်
## သင်ခန်းစာ တစ်ခုချင်းစီတွင်ပါဝင်သည်
- မဖြစ်မနေ sketchnote (optional)
- အပိုဆောင်း ဗီဒီယို (optional)
- ဗီဒီယို လမ်းညွှန်ချက် (သင်ခန်းစာတချို့သာ)
- [သင်ခန်းစာမတိုင်မီ နိဒါန်းစမ်းသပ်မှု](https://ff-quizzes.netlify.app/en/ml/)
- အလိုအလျောက် ရေးဆွဲထားသော စက္ကန့်မှတ်တမ်း (sketchnote)
- အသံဖိုင်ကို စုစည်းခွင့်ရှိသော ဗီဒီယို
- ဗီဒီယို လမ်းညွှန် (အချို့သင်ခန်းစာများသာ)
- [pre-lecture warmup quiz](https://ff-quizzes.netlify.app/en/ml/)
- ရေးသားထားသော သင်ခန်းစာ
- စီမံကိန်းအခြေပြု သင်ခန်းစာများအတွက် စီမံကိန်းတည်ဆောက်ရန် အဆင့်အဆင့် လမ်းညွှန်ချက်များ
- အသိပညာစစ်ဆေးမှုများ
- စိန်ခေါ်မှု
- ထပ်ဆောင်းဖတ်ရှုရန်
- တာဝန်ထမ်းဆောင်မှု
- [သင်ခန်းစာပြီးနောက် စမ်းသပ်မှု](https://ff-quizzes.netlify.app/en/ml/)
- project-based သင်ခန်းစာများအတွက် ပရောဂျက် တည်ဆောက်နည်း လမ်းညွှန်ချက်များ
- သိမှတ်စစ်ဆေးမှုများ
- စိန်ခေါ်မှုတစ်ခု
- ထောက်ခံဖတ်ရမည့်စာအုပ်စာတမ်းများ
- လက်မှတ်ကြားခြင်း
- [post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
> **ဘာသာစကားများအကြောင်း မှတ်ချက်**: ဒီသင်ခန်းစာတွေကို အဓိကအားဖြင့် Python ဖြင့်ရေးထားတာဖြစ်ပေမယ့် အများအပြားကို R ဖြင့်လည်း ရရှိနိုင်ပါသည်။ R သင်ခန်းစာတစ်ခုကို ပြီးမြောက်ရန်အတွက် `/solution` ဖိုလ်ဒါသို့ သွားကာ R သင်ခန်းစာများကို ရှာဖွေကြည့်ပါ။ ၎င်းတို့တွင် **R Markdown** ဖိုင်ဖြစ်သည့် .rmd extension ပါရှိပြီး ၎င်းကို `code chunks` (R သို့မဟုတ် အခြားဘာသာစကားများမှ) နှင့် `YAML header` (PDF ကဲ့သို့သော output များအား ဖော်ပြနည်း ဦးဆောင်ခြင်း) တို့ကို `Markdown document` ထဲတွင် ထည့်သွင်းထားခြင်း ဖြစ်သည်ဟု ရိုးရှင်းစွာ သတ်မှတ်နိုင်ပါသည်။ ထိုကြောင့် ၎င်းမှာ သင်၏ကုဒ်၊ ၎င်း၏ output နှင့် သင်၏စိတ်ကူးများအား Markdown ဖြင့် ရေးသားခွင့်ပြုခြင်းကြောင့် ဒေတာသိပ္ပံအတွက် ဥပမာဆိုင်ရာ စာရေးခြင်း ဖောင်မြူလ်တစ်ခုအနေဖြင့် ဝန်ဆောင်မှုပေးသည်။ ထို့ပြင် R Markdown စာရွက်များကို PDF၊ HTML သို့မဟုတ် Word ကဲ့သို့သော output ပုံစံများသို့လည်း ဖန်တီးနိုင်ပါသည်။
> **ဘာသာစကားအကြောင်း မှတ်ချက်**: ဤသင်ခန်းစာများသည် Python ဖြင့် အဓိကရေးသားထားသော်လည်း R ဖြင့်လည်း ရနိုင်သည်။ R သင်ခန်းစာတစ်ခု ပြီးမြောက်ရန်အတွက် /solution ဖိုလ်ဒါသို့ သွားပြီး R သင်ခန်းစာများကို ရှာပါ။ ၎င်းတို့တွင် .rmd extension ပါရှိပြီး၊ ဤသည်မှာ **R Markdown** ဖိုင်တစ်ခုဖြစ်သည်။ R Markdown သည် `code chunks` (R သို့မဟုတ် တခြားဘာသာစကားများ) နှင့် `YAML header` (PDF အဖြစ် output ပုံစံချမှတ်ရန် လမ်းညွှန်ချက်) ကို Markdown စာရွက်တစ်ရွက်ထဲတွင် ပေါင်းစပ်ထားသော ဖော်မတ်ဖြစ်သည်။ ဒါကြောင့် သင်၏ကုဒ်၊ ထွက်ရှိမှုများနှင့် စိတ်ကူးများကို Markdown ဖြင့်ရေးသားရန် ခွင့်ပြုသည်။ ထို့အပြင် R Markdown စာရွက်များကို PDF, HTML သို့မဟုတ် Word အဖြစ် output ထုတ်ရန် render လုပ်နိုင်သည်။
> **မေးစရာများအကြောင်းမှတ်ချက်** - မေးစရာအားလုံးကို [Quiz App ဖိုလ်ဒါတွင်](../../quiz-app) သိမ်းဆည်းထားပြီး မေးခွန်းသုံးခုစီပါဝင်သည့် စုစုပေါင်း မေးစရာ ၅၂ ခုရှိသည်။ တန်းသင်ခန်းစာများအတွင်းမှ ချိတ်ဆက်ထားပေမယ့် quiz app ကိုဒေသခံတွင်လည်း လည်ပတ်နိုင်သည်။ ဒေသခံတွင် host လုပ်မှု သို့မဟုတ် Azure သို့ deploy လုပ်နိုင်ရန် `quiz-app` ဖိုလ်ဒါအတွင်း ညွှန်ကြားချက်ကိုလိုက်နာပါ။
> **မေးခွန်းများအကြောင်း မှတ်ချက်**: မေးခွန်းအားလုံးကို [Quiz App ဖိုလ်ဒါ](../../quiz-app) တွင်ပါရှိပြီး မေးခွန်းသုံးခုပါရှိသည့် မေးခွန်းစု ၅၂ ခုပါဝင်သည်။ ၎င်းတို့ကို သင်ခန်းစာအတွင်းမှ ချိတ်ဆက်ထားသော်လည်း quiz app ကို ဒေသတွင်းမှ ထည့်သွင်း အသုံးပြုနိုင်သည်။ ဒေသတွင်း hosting သို့မဟုတ် Azure သို့ တင်ရန် `quiz-app` ဖိုလ်ဒါအတွင်း လမ်းညွှန်ချက်များကို လိုက်နာပါ။
| 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) | စက်မှုလေ့လာမှု မော်ဒယ်များကို တည်ဆောက်ရာတွင် ကျောင်းသားများ သတိပြုသင့်သော တရားမျှတမှုနှင့် ပတ်သက်သော ဘာသာရပ်အချက်အလက်များသည် အရေးကြီးကြောင်း။ | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | စက်မှုလေ့လာမှုနည်းပညာများ | [Introduction](1-Introduction/README.md) | စက်မှုလေ့လာမှုပညာရှင်များသည် စက်မှုလေ့လာမှု မော်ဒယ်များတည်ဆောက်ရာတွင် မည်သည့်နည်းပညာများကို အသုံးပြုကြသည်။ | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | Regression အတွက် အကြွင်းအကျန် မိတ်ဆက် | [Regression](2-Regression/README.md) | Regression မော်ဒယ်များအတွက် 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) | ဂဏန်းဆက်အဆင့်နှင့် ပုံစံဆက်အစီအစဉ် Regression မော်ဒယ်များ တည်ဆောက်ခြင်း။ | [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) | Logistic regression မော်ဒယ်တည်ဆောက်ခြင်း | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | အင်တာနက် App 🔌 | [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 အတွက် မိတ်ဆက်ခြင်း | [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) | K-Means clustering နည်းစနစ်ကို ရှာဖွေ့စူးစမ်းခြင်း | [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 ကို လေ့လာရန် ရိုးရှင်းသော bot တစ်ခု ဖန်တီးခြင်း | [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) | ဟိုတယ်ဆက်သွယ်ချက်များနှင့်အတူ ခံစားချက် ဆန်းစစ်ခြင်း ၁ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | ရောမန်ဆွဲဆောင်မှုရှိတဲ့ ဥရောပလက်ကွက် ♥️ | [Natural language processing](6-NLP/README.md) | ဟိုတယ်ဆက်သွယ်ချက်များနှင့်အတူ ခံစားချက် ဆန်းစစ်ခြင်း ၂ | [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 မိတ်ဆက်ခြင်း | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning ဖြင့် Reinforcement Learning မိတ်ဆက်ခြင်း | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Peter ကို ကျောက်တော့်မှကာကွယ်ပါ! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement Learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | ML ၏ လက်တွေ့နယ်ပယ်သုံး အခြေအနေများနှင့် လျှောက်ပတ်မှုများ | [ML in the Wild](9-Real-World/README.md) | စိတ်ဝင်စားဖွယ်နှင့် ရိုက်ခတ်ဖွယ်ရှိသည့် စက်မှုလေ့လာမှုရဲ့ လက်တွေ့လျှောက်ပတ်မှုများ | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| Postscript | RAI dashboard ဖြင့် ML မော်ဒယ် debugging | [ML in the Wild](9-Real-World/README.md) | Responsible AI dashboard ပါဝင်ပစ္စည်းများအား အသုံးပြု၍ Machine Learning မော်ဒယ် debugging | [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)
## အော့ဖ်လိုင်း လျှောက်ထားမှု
သင်ဒီစာရွက်ကို အော့ဖ်လိုင်းမှ အသုံးပြုနိုင်ရန် [Docsify](https://docsify.js.org/#/) ကို အသုံးပြုပါ။ ဤ repo ကို fork ချပြီး သင့်ဒေသခံစက်တွင် [Docsify ကို install လုပ်ပါ](https://docsify.js.org/#/quickstart)။ ထို့နောက်ဤ repo ၏ root ဖိုလ်ဒါတွင် `docsify serve` ဟု ရိုက်ထည့်ပါ။ ဝက်ဘ်ဆိုက်သည် သင့် localhost ၏ ဆိပ်ကမ်း 3000 သို့ ဆက်သွယ်မည်ဖြစ်သည် - `localhost:3000`
| 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) | မႈဒိုင္လမ္းသင္ယူမႈ မော်ဒယ်ဖွဲ့စည်းခြင်းနှင့် အသုံးချခြင်းအတွက် တရားမျှတခြင်း၏ အရေးကြီးသော ဒဿနိက ထူးခြားချက်များကို ကျောင်းသားများ သတိပြုစရာဖြစ်ပါသည် | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | မႈဒိုင္လမ္းသင္ယူနည္းပညာမ်ား | [Introduction](1-Introduction/README.md) | မည္သည့်နည်းပညာများအား မႈဒိုင္လမ်းသုတေသနပညာရှင်များက မႈဒိုင္လမ်းသင်ယူမော်ဒယ်များ ဖန်တီးရာတွင် အသုံးပြုပါသနည်း? | [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) | မႈဒိုင္လမ္းသင်ယူမှုအတွက် ဒေတာအား ကြည့်ရှု သန့်ရှင်းစင်ကြယ်ရေးလုပ်ဆောင်ခြင်း | [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) | ဟိုတယ်ပြန်လည်သုံးသပ်ချက်များဖြင့် စိတ်ခံစားချက် စစ်ဆေးခြင်း ၁ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | ဥရောပရဲ့ အကြင်နာစိုက်လျားသော ဟိုတယ်များ ♥️ | [Natural language processing](6-NLP/README.md) | ဟိုတယ်ပြန်လည်သုံးသပ်ချက်များဖြင့် စိတ်ခံစားချက် စစ်ဆေးခြင်း ၂ | [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 | Peter ကို မြွေက မလွှတ်ပါနဲ့! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym ဖြင့် ပြန်လည်အတည်ပြုသင်ယူမှု | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | လက်တွေ့ကမ္ဘာမှ မႈဒိုင္လမ္းသင္ယူမႈ နမူနာများနှင့် အသုံးချမှုများ | [ML in the Wild](9-Real-World/README.md) | ရိုးရာ မႈဒိုင္လမ်းသင်ယူမှုအသုံးချမှုများကို စိတ်ဝင်စားဖွယ်နှင့် ဖော်ထုတ်ပြသခြင်း | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| Postscript | RAI dashboard ကို အသုံးပြု၍ မႈဒိုင္လမ္းသင္ယူမႈ မော်ဒယ်များ ပြုပြင်ခြင်း | [ML in the Wild](9-Real-World/README.md) | 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)
## အော့ဖ်လိုင်း ဝင်ရောက်ခြင်း
[Docsify](https://docsify.js.org/#/) ကိုအသုံးပြု၍ ဒီစာရွက်စာတမ်းကို အော့ဖ်လိုင်းတွင် လှုပ်ရှားနိုင်ပါသည်။ ဒီ repo ကို fork ပြုလုပ်ပြီး [Docsify ကို သင့် ဒေသတွင်း ကွန်ပြူတာတွင် တပ်ဆင်ပါ](https://docsify.js.org/#/quickstart)၊ ထို့နောက် ဒီ repo ၏ အခြေခံဖိုလ်ဒါအတွင်း `docsify serve` ဟုရိုက်ထည့်ပါ။ ဝက်ဘ်ဆိုဒ်ကို သင့် localhost တစ်ောက်တွင် port 3000 တွင် ဝန်ဆောင်မည်ဖြစ်ပြီး URL သည် `localhost:3000` ဖြစ်ပါသည်
## PDF များ
သင်တန်းချက်တမ်းနှင့် လင့်ခ်များပါ 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
@ -186,7 +197,7 @@ Microsoft မှ Cloud Advocates များက ၁၂ ပတ်၊ ၂၆ သ
---
### အခြေခံသင်ယူမှု
### Core Learning
[![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)
@ -197,25 +208,30 @@ Microsoft မှ Cloud Advocates များက ၁၂ ပတ်၊ ၂၆ သ
---
### Copilot စီးရီး
### Copilot Series
[![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 -->
## အကူအညီရယူခြင်း
## Getting Help
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)
## Additional Learning Tips
- သင်ခန်းစာတိုင်းပြီးနောက် နိုက်ဘတ်စာအုပ်များကို ပြန်လည်ဆန်းစစ်ပါ။
- ကိုယ့်အတိုင်ကိုယ် အယ်လ်ဂိုရီ သုံးစွဲမှုအာရုံ စမ်းသပ်ပါ။
- လေ့လာခဲ့သော အယူအဆများဖြင့် လက်တွေ့ ကမ္ဘာရဲ့ အချက်အလက်များကို ရှာဖွေပါ။
---
<!-- 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": "uk"
},
"1-Introduction/3-fairness/assignment.md": {
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
"translation_date": "2025-09-05T12:42:13+00:00",
"original_hash": "c81d9affadb89d017d610eadeb6c84f9",
"translation_date": "2026-02-28T09:13:04+00:00",
"source_file": "1-Introduction/3-fairness/assignment.md",
"language_code": "uk"
},
@ -90,8 +90,8 @@
"language_code": "uk"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "40e64f004f3cb50aa1d8661672d3cd92",
"translation_date": "2025-09-05T11:29:41+00:00",
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:14:18+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "uk"
},
@ -186,8 +186,8 @@
"language_code": "uk"
},
"4-Classification/3-Classifiers-2/README.md": {
"original_hash": "49047911108adc49d605cddfb455749c",
"translation_date": "2025-09-05T13:15:00+00:00",
"original_hash": "d94438d71164b0ff68002812aed1a8b4",
"translation_date": "2026-02-28T09:14:46+00:00",
"source_file": "4-Classification/3-Classifiers-2/README.md",
"language_code": "uk"
},
@ -197,12 +197,24 @@
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
"language_code": "uk"
},
"4-Classification/3-Classifiers-2/notebook.ipynb": {
"original_hash": "624ca6cf73d3548ff1b3059e413fa4cd",
"translation_date": "2026-02-28T09:06:55+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "uk"
},
"4-Classification/3-Classifiers-2/solution/Julia/README.md": {
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
"translation_date": "2025-09-05T13:16:51+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
"language_code": "uk"
},
"4-Classification/3-Classifiers-2/solution/notebook.ipynb": {
"original_hash": "70f41fe4fd4253adb44cd9d291406e4f",
"translation_date": "2026-02-28T09:07:02+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "uk"
},
"4-Classification/4-Applied/README.md": {
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
"translation_date": "2025-09-05T13:11:53+00:00",
@ -540,8 +552,8 @@
"language_code": "uk"
},
"README.md": {
"original_hash": "2f594ee136e3127a47f56d80055227bc",
"translation_date": "2026-02-06T09:15:51+00:00",
"original_hash": "3a0286e1c4858e79ff54f080dadc1426",
"translation_date": "2026-02-28T09:12:52+00:00",
"source_file": "README.md",
"language_code": "uk"
},

@ -1,16 +1,18 @@
# Досліджуйте інструментарій відповідального штучного інтелекту
# Дослідіть Інструментарій Відповідального Штучного Інтелекту
## Інструкції
У цьому уроці ви дізналися про інструментарій відповідального штучного інтелекту, "відкритий, керований спільнотою проєкт, який допомагає науковцям з даних аналізувати та вдосконалювати системи штучного інтелекту". Для цього завдання досліджуйте один із [ноутбуків](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) інструментарію RAI та представте свої висновки у вигляді статті або презентації.
У цьому уроці ви дізналися про Інструментарій Відповідального Штучного Інтелекту, «відкритий, керований спільнотою проєкт, щоб допомогти дата-сайентистам аналізувати та покращувати системи ШІ». Для цього завдання дослідіть одну з [ноутбуків](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) RAI Toolbox і подайте звіт про свої висновки у вигляді доповіді або презентації.
## Критерії оцінювання
| Критерії | Відмінно | Задовільно | Потребує покращення |
| -------- | -------- | ---------- | ------------------- |
| | Представлено статтю або презентацію PowerPoint, в якій обговорюються системи Fairlearn, ноутбук, який було запущено, та висновки, зроблені на основі його виконання | Представлено статтю без висновків | Стаття не представлена |
| Критерії | Відмінно | Задовільно | Потрібне покращення |
| -------- | --------- | -------- | ----------------- |
| | Представлено доповідь або презентацію PowerPoint, що обговорює системи Fairlearn, виконаний ноутбук та висновки, зроблені після його запуску | Представлено доповідь без висновків | Доповідь не представлена |
---
<!-- 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 -->

@ -1,87 +1,99 @@
# Побудова моделі регресії за допомогою Scikit-learn: чотири способи регресії
# Побудова регресійної моделі за допомогою Scikit-learn: регресія чотирма способами
![Інфографіка лінійної та поліноміальної регресії](../../../../2-Regression/3-Linear/images/linear-polynomial.png)
## Примітка для початківців
Лінійна регресія використовується, коли ми хочемо передбачити **числове значення** (наприклад, ціну будинку, температуру або обсяг продажів).
Вона працює, знаходячи пряму лінію, яка найкраще відображає зв’язок між вхідними ознаками та виходом.
У цьому уроці ми зосереджуємося на розумінні концепції перед тим, як дослідити більш просунуті методи регресії.
![Лінійна vs поліноміальна регресія інфографіка](../../../../translated_images/uk/linear-polynomial.5523c7cb6576ccab.webp)
> Інфографіка від [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Тест перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
## [Передлекторний тест](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 для початківців - Розуміння лінійної регресії](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML для початківців - Розуміння лінійної регресії")
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд лінійної регресії.
> Протягом цього курсу ми припускаємо мінімальні знання математики та прагнемо зробити її доступною для студентів з інших галузей, тому звертайте увагу на примітки, 🧮 математичні виклики, діаграми та інші навчальні інструменти для полегшення розуміння.
> Протягом цього курсу ми передбачаємо мінімальні знання математики і намагаємося зробити її доступною для студентів з інших галузей, тому звертайте увагу на примітки, 🧮 підказки, діаграми та інші інструменти для полегшення розуміння.
### Передумови
На даний момент ви повинні бути знайомі зі структурою даних про гарбузи, які ми досліджуємо. Ви можете знайти їх попередньо завантаженими та очищеними у файлі _notebook.ipynb_ цього уроку. У файлі ціна гарбуза відображається за бушель у новому фреймі даних. Переконайтеся, що ви можете запускати ці ноутбуки в ядрах Visual Studio Code.
До цього часу ви вже маєте ознайомлення зі структурою даних про гарбузи, які ми досліджуємо. Ви можете знайти їх завантаженими та попередньо очищеними у файлі _notebook.ipynb_ цього уроку. У файлі ціна на гарбуз подана за бушель у новому датафреймі. Переконайтесь, що ви можете запускати ці ноутбуки в ядрах у Visual Studio Code.
### Підготовка
Нагадаємо, ви завантажуєте ці дані, щоб ставити запитання до них.
Як нагадування, ви завантажуєте ці дані, щоб ставити до них запитання.
- Коли найкращий час для купівлі гарбузів?
- Яку ціну можна очікувати за ящик мініатюрних гарбузів?
- Чи варто купувати їх у кошиках на півбушеля чи в коробках на 1 1/9 бушеля?
Давайте продовжимо досліджувати ці дані.
- Коли найкращий час купувати гарбузи?
- Яку ціну можна очікувати за коробку мініатюрних гарбузів?
- Чи варто купувати їх у корзинах на півбушеля або у коробках на 1 1/9 бушеля?
Продовжимо досліджувати ці дані.
У попередньому уроці ви створили фрейм даних Pandas і заповнили його частиною оригінального набору даних, стандартизуючи ціни за бушель. Однак, зробивши це, ви змогли зібрати лише близько 400 точок даних і лише для осінніх місяців.
У попередньому уроці ви створили датафрейм Pandas і наповнили його частиною оригінального набору даних, стандартизувавши ціни за бушель. Проте при цьому ви змогли зібрати лише близько 400 точок даних і лише для осінніх місяців.
Перегляньте дані, які ми попередньо завантажили у супровідному ноутбуці цього уроку. Дані попередньо завантажені, а початковий діаграма розсіювання побудована для відображення даних за місяцями. Можливо, ми зможемо отримати трохи більше деталей про природу даних, якщо очистимо їх більше.
Погляньте на дані, які ми заздалегідь завантажили у супровідному ноутбуці цього уроку. Дані завантажено, і побудовано початковий графік розсіювання для показу даних по місяцях. Можливо, ми зможемо отримати трохи більше інформації про природу цих даних, очистивши їх ще більше.
## Лінія лінійної регресії
## Лінійна регресійна лінія
Як ви дізналися в Уроці 1, мета вправи з лінійної регресії полягає в тому, щоб побудувати лінію для:
Як ви дізнались у Уроці 1, мета вправи з лінійної регресії це можливість побудувати лінію для:
- **Показу взаємозв'язків змінних**. Показати взаємозв'язок між змінними.
- **Прогнозування**. Зробити точні прогнози щодо того, де нова точка даних буде розташована відносно цієї лінії.
- **Показу взаємозв’язків змінних**. Показати зв’язок між змінними
- **Робити прогнози**. Робити точні прогнози, де нова точка даних розташується відносно цієї лінії.
Зазвичай для побудови такого типу лінії використовується метод **регресії найменших квадратів**. Термін "найменші квадрати" означає, що всі точки даних навколо лінії регресії підносяться до квадрату, а потім додаються. Ідеально, щоб остаточна сума була якомога меншою, оскільки ми хочемо мати низьку кількість помилок, або `найменші квадрати`.
Типово для **регресії найменших квадратів** малюють саме таку лінію. Термін "найменші квадрати" відноситься до процесу мінімізації загальної помилки в нашій моделі. Для кожної точки даних ми вимірюємо вертикальну відстань (яку називають залишком) між фактичною точкою і нашою регресійною лінією.
Ми робимо це, оскільки хочемо змоделювати лінію, яка має найменшу сумарну відстань від усіх наших точок даних. Ми також підносимо терміни до квадрату перед додаванням, оскільки нас цікавить їх величина, а не напрямок.
Ці відстані ми підносимо до квадрату з двох основних причин:
> **🧮 Покажіть мені математику**
>
> Ця лінія, яка називається інією найкращого підходу_, може бути виражена [рівнянням](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
1. **Величина важливіша за напрямок:** Ми хочемо поставитись до помилки -5 так само, як до помилки +5. Квадрат робить усі значення додатними.
2. **Покарання за викиди:** Квадрат надає більшу вагу великим помилкам, змушуючи лінію триматися ближче до точок, які далеко розташовані.
Потім ми додаємо всі ці квадратні значення разом. Наша мета — знайти таку лінію, де ця сума буде мінімальною (найменшим можливим значенням) — звідси й назва "найменших квадратів".
> **🧮 Покажи математику**
>
> Цю лінію, яка називається інією найкращого наближення_, можна виразити за допомогою [рівняння](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/uk/slope.f3c9d5910ddbfcf9.webp)
>
> Спочатку обчисліть нахил `b`. Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
> Спочатку обраховуємо нахил `b`. Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
>
> Іншими словами, звертаючись до початкового питання про дані гарбузів: "прогнозуйте ціну гарбуза за бушель за місяцями", `X` буде означати ціну, а `Y` місяць продажу.
> Іншими словами, і звертаючись до нашого початкового питання з даних про гарбузи: "передбачити ціну гарбуза за бушель по місяцях", `X` вказує на ціну, а `Y` на місяць продажу.
>
>![завершення рівняння](../../../../2-Regression/3-Linear/images/calculation.png)
>![завершення рівняння](../../../../translated_images/uk/calculation.a209813050a1ddb1.webp)
>
> Обчисліть значення Y. Якщо ви платите близько $4, це має бути квітень! Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
> Обчисліть значення Y. Якщо ви платите близько 4 доларів, то це, мабуть, квітень! Інфографіка від [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. Використовуючи діаграму розсіювання, ви можете швидко візуалізувати цей коефіцієнт. Діаграма з точками даних, розташованими в акуратній лінії, має високу кореляцію, але діаграма з точками даних, розкиданими між X і Y, має низьку кореляцію.
Ще один термін, який потрібно зрозуміти, це **коефіцієнт кореляції** між заданими змінними X та Y. За допомогою графіка розсіювання ви швидко можете візуалізувати цей коефіцієнт. Якщо точки на графіку розташовані акуратно по лінії — кореляція висока, якщо розкидані по всьому графіку — кореляція низька.
Хороша модель лінійної регресії буде тією, яка має високий (ближче до 1, ніж до 0) коефіцієнт кореляції, використовуючи метод регресії найменших квадратів із лінією регресії.
Добра модель лінійної регресії матиме високий (ближчий до 1, ніж до 0) коефіцієнт кореляції, визначений методом найменших квадратів із регресійною лінією.
✅ Запустіть ноутбук, що супроводжує цей урок, і подивіться на діаграму розсіювання "Місяць до Ціни". Чи здається, що дані, які асоціюють місяць із ціною продажу гарбузів, мають високу чи низьку кореляцію, згідно з вашим візуальним інтерпретацією діаграми розсіювання? Чи змінюється це, якщо використовувати більш детальний вимір замість `Місяць`, наприклад, *день року* (тобто кількість днів з початку року)?
✅ Запустіть ноутбук, який супроводжує цей урок, і подивіться на графік розсіювання місяця продажу до ціни. Чи є у даних про продажі гарбузів за місяцями висока чи низька кореляція згідно з вашим візуальним тлумаченням графіка? Чи зміниться це, якщо використати більш тонкий показник замість `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,13 +101,13 @@ 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). Ми виконали ті ж кроки очищення, що й у попередньому уроці, і обчислили стовпець `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)
```
Тепер, коли ви розумієте математику, що лежить в основі лінійної регресії, давайте створимо модель регресії, щоб перевірити, чи можемо ми передбачити, яка упаковка гарбузів матиме найкращі ціни на гарбузи. Хтось, хто купує гарбузи для святкового гарбузового поля, може захотіти отримати цю інформацію, щоб оптимізувати свої покупки упаковок гарбузів для поля.
Тепер, коли ви розумієте математику за лінійною регресією, давайте створимо модель регресії, щоб визначити, який пакет гарбузів має найкращі ціни. Ті, хто купує гарбузи для осінніх святкових майданчиків, можуть захотіти цю інформацію, аби оптимізувати свої закупівлі.
## Пошук кореляції
@ -103,22 +115,22 @@ day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд кореляції.
З попереднього уроку ви, мабуть, бачили, що середня ціна за різні місяці виглядає так:
Як ви, мабуть, помітили у попередньому уроці, середня ціна за місяцями виглядає так:
<img alt="Середня ціна за місяцями" src="../../../../translated_images/uk/barchart.a833ea9194346d76.webp" width="50%"/>
Це свідчить про те, що має бути певна кореляція, і ми можемо спробувати навчити модель лінійної регресії, щоб передбачити взаємозв'язок між `Місяць` і `Ціна`, або між `ДеньРоку` і `Ціна`. Ось діаграма розсіювання, яка показує останній взаємозв'язок:
Це свідчить про те, що повинен бути певний зв’язок, і ми можемо спробувати навчити модель лінійної регресії, щоб спрогнозувати відношення між `Month` і `Price`, або між `DayOfYear` і `Price`. Ось графік розсіювання, який показує останній зв’язок:
<img alt="Діаграма розсіювання Ціна vs День року" src="../../../../translated_images/uk/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Графік розсіювання Ціни проти Дня року" src="../../../../translated_images/uk/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 за `Місяць` і -0.17 за `ДеньРоку`, але може бути інший важливий взаємозв'язок. Схоже, що є різні кластери цін, які відповідають різним сортам гарбузів. Щоб підтвердити цю гіпотезу, давайте побудуємо кожну категорію гарбузів, використовуючи різний колір. Передаючи параметр `ax` до функції побудови діаграми розсіювання, ми можемо побудувати всі точки на одному графіку:
Виглядає, що кореляція досить мала: -0.15 за `Month` і -0.17 за `DayOfMonth`, але може існувати ще один важливий зв’язок. Виглядає, що існують різні кластери цін, які відповідають різним сортам гарбузів. Щоб підтвердити цю гіпотезу, побудуємо графік розсіювання кожної категорії гарбузів різним кольором. Передаючи параметр `ax` функції `scatter`, ми можемо відобразити всі точки на одному графіку:
```python
ax=None
@ -128,42 +140,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="Діаграма розсіювання Ціна vs День року" src="../../../../translated_images/uk/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Графік розсіювання Ціни проти Дня року з кольоровим позначенням" src="../../../../translated_images/uk/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Наше дослідження свідчить про те, що сорт має більший вплив на загальну ціну, ніж фактична дата продажу. Ми можемо побачити це за допомогою стовпчастої діаграми:
Наше дослідження свідчить, що сорт має більший вплив на загальну ціну, ніж фактична дата продажу. Ми можемо підкріпити це стовпчиковою діаграмою:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Стовпчаста діаграма ціни за сортами" src="../../../../translated_images/uk/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Стовпчикова діаграма ціни за сортом" src="../../../../translated_images/uk/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="Діаграма розсіювання Ціна vs День року" src="../../../../translated_images/uk/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Графік розсіювання Ціни проти Дня року для pie type" src="../../../../translated_images/uk/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")
[![ML для початківців - Лінійна і поліноміальна регресія за допомогою Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML для початківців - Лінійна і поліноміальна регресія за допомогою Scikit-learn")
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд лінійної та поліноміальної регресії.
Для навчання нашої моделі лінійної регресії ми будемо використовувати бібліотеку **Scikit-learn**.
Для навчання моделі лінійної регресії ми використаємо бібліотеку **Scikit-learn**.
```python
from sklearn.linear_model import LinearRegression
@ -171,61 +183,69 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Ми починаємо з розділення вхідних значень (особливостей) і очікуваного результату (мітки) на окремі масиви numpy:
Почнемо з розділення вхідних значень (ознаки) і очікуваного результату (мітки) у окремі масиви numpy:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Зверніть увагу, що нам довелося виконати `reshape` для вхідних даних, щоб пакет лінійної регресії правильно їх зрозумів. Лінійна регресія очікує 2D-масив як вхідні дані, де кожен рядок масиву відповідає вектору вхідних особливостей. У нашому випадку, оскільки у нас є лише один вхід, нам потрібен масив із формою N×1, де N — це розмір набору даних.
> Зверніть увагу, що нам довелося виконати `reshape` для вхідних даних, щоб пакет лінійної регресії правильно їх зрозумів. Лінійна регресія очікує 2D-масив на вході, де кожен рядок — це вектор вхідних ознак. У нашому випадку, оскільки є лише одна ознака, нам потрібен масив розміром 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`:
Нарешті, навчання власне моделі лінійної регресії займає лише два рядки коду. Спочатку створюємо об’єкт `LinearRegression`, а потім підганяємо його до наших даних за допомогою методу `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Об'єкт `LinearRegression` після підгонки містить усі коефіцієнти регресії, до яких можна отримати доступ за допомогою властивості `.coef_`. У нашому випадку є лише один коефіцієнт, який має бути близько `-0.017`. Це означає, що ціни, здається, трохи падають з часом, але не надто сильно, приблизно на 2 центи на день. Ми також можемо отримати точку перетину регресії з віссю Y, використовуючи `lin_reg.intercept_` - вона буде близько `21` у нашому випадку, що вказує на ціну на початку року.
Об’єкт `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%. Не надто добре. Ще одним показником якості моделі є **коефіцієнт детермінації**, який можна отримати таким чином:
Наша помилка, здається, близько 2 балів, що приблизно ~17%. Не дуже добре. Іншим показником якості моделі є **коефіцієнт детермінації**, який можна отримати так:
```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/uk/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/uk/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 для конвеєра](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), щоб об’єднати різні етапи обробки даних. **Конвеєр** — це ланцюжок **оцінювачів**. У нашому випадку ми створимо конвеєр, який спочатку додає поліноміальні ознаки до нашої моделі, а потім навчає регресію:
Scikit-learn включає корисний [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), щоб поєднати різні кроки обробки даних. **Pipeline** — це ланцюжок **оцінювачів**. У нашому випадку ми створимо pipeline, який спочатку додає поліноміальні ознаки до нашої моделі, а потім навчає регресію:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -234,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>. Ми також можемо використовувати поліноми вищих ступенів, якщо хочемо.
Конвеєри можна використовувати так само, як і оригінальний об’єкт `LinearRegression`, тобто ми можемо виконати `fit` для конвеєра, а потім використовувати `predict`, щоб отримати результати прогнозу. Ось графік, який показує тестові дані та криву апроксимації:
Pipeline можна використовувати так само, як і оригінальний об’єкт `LinearRegression`, тобто ми можемо викликати `fit` для pipeline, а потім використовувати `predict` для отримання результатів передбачення. Ось графік, що показує тестові дані та наближену криву:
<img alt="Поліноміальна регресія" src="../../../../translated_images/uk/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/uk/poly-results.ee587348f0f1f60b.webp" width="50%" />
Використовуючи поліноміальну регресію, ми можемо отримати трохи нижчий MSE і вищий коефіцієнт детермінації, але не значно. Нам потрібно врахувати інші ознаки!
З використанням поліноміальної регресії ми можемо отримати трохи нижче MSE та вищий коефіцієнт детермінації, але незначно. Нам варто врахувати інші ознаки!
> Ви можете побачити, що мінімальні ціни на гарбузи для пирогів спостерігаються десь навколо Хелловіну. Як ви можете це пояснити?
> Ви можете побачити, що мінімальні ціни на гарбузи спостерігаються десь близько Геловіну. Як ви це можете пояснити?
🎃 Вітаємо, ви щойно створили модель, яка може допомогти передбачити ціну гарбузів для пирогів. Ви, ймовірно, можете повторити ту саму процедуру для всіх типів гарбузів, але це було б виснажливо. Давайте тепер навчимося враховувати різновиди гарбузів у нашій моделі!
🎃 Вітаємо, ви щойно створили модель, яка може допомогти передбачити ціну гарбузів для пирогів. Ви, ймовірно, зможете повторити ту ж процедуру для всіх типів гарбузів, але це було б нудно. Навчімося зараз враховувати сорт гарбуза у нашій моделі!
## Категоріальні ознаки
## Категоріальні ознаки
У ідеальному світі ми хочемо мати можливість передбачати ціни для різних різновидів гарбузів, використовуючи одну й ту саму модель. Однак стовпець `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/uk/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/uk/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Щоб врахувати різновид, спочатку потрібно перетворити його у числову форму, або **закодувати**. Є кілька способів зробити це:
Щоб врахувати сорт, спочатку нам потрібно перетворити його у числову форму, або **закодувати** його. Є кілька способів зробити це:
* Просте **числове кодування** створить таблицю різних різновидів, а потім замінить назву різновиду на індекс у цій таблиці. Це не найкраща ідея для лінійної регресії, оскільки лінійна регресія бере фактичне числове значення індексу та додає його до результату, множачи на певний коефіцієнт. У нашому випадку залежність між номером індексу та ціною явно нелінійна, навіть якщо ми переконаємося, що індекси впорядковані певним чином.
* **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']) \
@ -297,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%. У фінальному розділі про регресію ви дізнаєтесь про логістичну регресію для визначення категорій.
---
## 🚀Виклик
## 🚀Завдання
Перевірте кілька різних змінних у цьому ноутбуці, щоб побачити, як кореляція відповідає точності моделі.
Перевірте декілька різних змінних у цій нотатці, щоб побачити, як кореляція відповідає точності моделі.
## [Тест після лекції](https://ff-quizzes.netlify.app/en/ml/)
## [Квіз після лекції](https://ff-quizzes.netlify.app/en/ml/)
## Огляд і самостійне навчання
## Огляд та самостійне вивчення
У цьому уроці ми дізналися про лінійну регресію. Існують інші важливі типи регресії. Прочитайте про методи Stepwise, Ridge, Lasso і Elasticnet. Хороший курс для вивчення — [курс статистичного навчання Стенфорда](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
У цьому уроці ми дізнались про лінійну регресію. Існують також інші важливі типи регресії. Прочитайте про покрокові, Ridge, Lasso та Elasticnet методи. Хорошим курсом для подальшого вивчення є [курс Стенфордського університету зі статистичного навчання](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Завдання
## Завдання
[Створіть модель](assignment.md)
[Побудуйте модель](assignment.md)
---
<!-- 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 -->

@ -1,44 +1,44 @@
# Класифікатори кухонь 2
У цьому другому уроці класифікації ви дослідите більше способів класифікації числових даних. Ви також дізнаєтеся про наслідки вибору одного класифікатора над іншим.
У цьому другому уроці з класифікації ви вивчите більше способів класифікації числових даних. Ви також дізнаєтеся про наслідки вибору одного класифікатора над іншим.
## [Тест перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
## [Попередній тест перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
### Попередні знання
### Передумови
Ми припускаємо, що ви завершили попередні уроки та маєте очищений набір даних у папці `data`, який називається _cleaned_cuisines.csv_ у кореневій папці цього 4-урочного блоку.
Ми припускаємо, що ви пройшли попередні уроки та маєте очищений набір даних у вашій папці `data` під назвою _cleaned_cuisines.csv_ у кореневій папці з цими 4 уроками.
### Підготовка
Ми завантажили ваш файл _notebook.ipynb_ з очищеним набором даних і розділили його на X та y датафрейми, готові до процесу побудови моделі.
Ми завантажили ваш файл _notebook.ipynb_ з очищеним набором даних та розділили його на датафрейми X та y, готові до процесу побудови моделі.
## Карта класифікації
Раніше ви дізналися про різні варіанти класифікації даних, використовуючи шпаргалку Microsoft. Scikit-learn пропонує схожу, але більш детальну шпаргалку, яка може допомогти ще більше звузити вибір оцінювачів (інша назва класифікаторів):
Раніше ви дізналися про різні варіанти, які маєте при класифікації даних за допомогою шпаргалки Microsoft. Scikit-learn пропонує подібну, але більш детальну шпаргалку, яка може ще більше допомогти звузити ваш вибір оцінювачів (інший термін для класифікаторів):
![Карта ML від Scikit-learn](../../../../4-Classification/3-Classifiers-2/images/map.png)
> Порада: [відвідайте цю карту онлайн](https://scikit-learn.org/stable/tutorial/machine_learning_map/) і натискайте на шляхи, щоб прочитати документацію.
![ML Map from Scikit-learn](../../../../translated_images/uk/map.e963a6a51349425a.webp)
> Підказка: [відвідайте цю карту онлайн](https://scikit-learn.org/stable/tutorial/machine_learning_map/) та клацайте по шляху, щоб читати документацію.
### План
Ця карта дуже корисна, коли ви добре розумієте свої дані, оскільки ви можете "пройти" її шляхами до рішення:
Ця карта дуже корисна, як тільки ви ясно розумієте ваші дані, оскільки ви можете «йти» її шляхами до рішення:
- У нас є >50 зразків
- У нас >50 зразків
- Ми хочемо передбачити категорію
- У нас є мічені дані
- У нас менше ніж 100К зразків
- ✨ Ми можемо вибрати Linear SVC
- У нас менше ніж 100 тис. зразків
- ✨ Ми можемо обрати Linear SVC
- Якщо це не спрацює, оскільки у нас числові дані
- Ми можемо спробувати ✨ KNeighbors Classifier
- Якщо це не спрацює, спробуйте ✨ SVC та ✨ Ensemble Classifiers
- Ми можемо спробувати ✨ KNeighbors Classifier
- Якщо це не спрацює, спробуйте ✨ SVC і ✨ Ensemble Classifiers
Це дуже корисний шлях для слідування.
Цей маршрут дуже корисно наслідувати.
## Вправа - розділіть дані
## Вправа - розділити дані
Слідуючи цьому шляху, ми повинні почати з імпорту деяких бібліотек для використання.
Слідуючи цьому шляху, ми маємо почати з імпорту потрібних бібліотек.
1. Імпортуйте необхідні бібліотеки:
1. Імпортуйте потрібні бібліотеки:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -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) є частиною сімейства методів машинного навчання Support-Vector machines (докладніше про них нижче). У цьому методі ви можете вибрати "ядро", щоб вирішити, як кластеризувати мітки. Параметр 'C' стосується "регуляризації", яка регулює вплив параметрів. Ядро може бути одним із [кількох](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); тут ми встановлюємо його як 'linear', щоб використовувати Linear SVC. За замовчуванням ймовірність встановлена як 'false'; тут ми встановлюємо її як 'true', щоб отримати оцінки ймовірності. Ми встановлюємо random state як '0', щоб перемішати дані для отримання ймовірностей.
Підтримка векторного кластерування (SVC) належить до сімейства методів машинного навчання Support-Vector machines (навчайтеся більше про них нижче). У цьому методі ви можете вибрати «ядро», яке визначає, як розподіляти мітки. Параметр «C» означає «регуляризацію», яка регулює вплив параметрів. Ядро може бути одним із [кількох](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); тут ми встановлюємо його 'linear', щоб використати лінійний SVC. Параметр probability за замовчуванням 'false'; тут ми встановлюємо його 'true', щоб отримати оцінки ймовірності. Ми встановили random_state у '0', щоб перемішати дані для отримання ймовірностей.
### Вправа - застосуйте Linear SVC
### Вправа - застосувати лінійний 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,13 +107,13 @@ Support-Vector clustering (SVC) є частиною сімейства мето
## Класифікатор K-Neighbors
K-Neighbors є частиною сімейства методів ML "neighbors", які можуть використовуватися як для контрольованого, так і для неконтрольованого навчання. У цьому методі створюється задана кількість точок, і дані збираються навколо цих точок таким чином, щоб можна було передбачити узагальнені мітки для даних.
K-Neighbors належить до сімейства методів "neighbors", які можна використовувати для керованого та некерованого навчання. У цьому методі створюється заздалегідь визначена кількість точок, і дані збираються навколо цих точок так, щоб можна було передбачити узагальнені мітки для даних.
### Вправа - застосуйте класифікатор K-Neighbors
### Вправа - застосувати класифікатор K-Neighbors
Попередній класифікатор був хорошим і добре працював із даними, але, можливо, ми можемо отримати кращу точність. Спробуйте класифікатор K-Neighbors.
Попередній класифікатор був добрим і добре працював з даними, але, можливо, ми отримаємо кращу точність. Спробуйте класифікатор K-Neighbors.
1. Додайте рядок до вашого масиву класифікаторів (додайте кому після елемента Linear SVC):
1. Додайте рядок у свій масив класифікаторів (додайте кому після елемента Linear SVC):
```python
'KNN classifier': KNeighborsClassifier(C),
@ -136,15 +136,15 @@ K-Neighbors є частиною сімейства методів ML "neighbors"
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 є частиною сімейства методів ML [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine), які використовуються для задач класифікації та регресії. SVM "відображають навчальні приклади в точки в просторі", щоб максимізувати відстань між двома категоріями. Наступні дані відображаються в цьому просторі, щоб можна було передбачити їхню категорію.
Класифікатори Support-Vector належать до сімейства методів машинного навчання [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine), які використовуються для задач класифікації та регресії. SVM «відображає приклади тренування у точки в просторі», щоб максимізувати відстань між двома категоріями. Пізніші дані відображаються в цьому просторі, щоб передбачити їх категорію.
### Вправа - застосуйте класифікатор Support Vector
### Вправа - застосувати Support Vector Classifier
Спробуємо отримати трохи кращу точність за допомогою класифікатора Support Vector.
Спробуємо отримати трохи кращу точність, використовуючи Support Vector Classifier.
1. Додайте кому після елемента K-Neighbors, а потім додайте цей рядок:
@ -169,11 +169,11 @@ K-Neighbors є частиною сімейства методів ML "neighbors"
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 Classifiers
## Ансамблеві класифікатори
Давайте пройдемо шлях до самого кінця, навіть якщо попередній тест був досить хорошим. Спробуємо деякі класифікатори 'Ensemble', зокрема Random Forest та AdaBoost:
Давайте підемо до самого кінця шляху, навіть якщо попередній тест був досить хорошим. Спробуємо деякі «Ансамблеві класифікатори», зокрема 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)
✅ Дізнайтеся про [Ансамблеві класифікатори](https://scikit-learn.org/stable/modules/ensemble.html)
Цей метод машинного навчання "об'єднує прогнози кількох базових оцінювачів", щоб покращити якість моделі. У нашому прикладі ми використовували Random Trees та AdaBoost.
Цей метод машинного навчання «поєднує передбачення кількох базових оцінювачів», щоб покращити якість моделі. У нашому прикладі ми використали випадкові дерева та 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/)
## [Пост-лекційний тест](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 -->
**Відмова від відповідальності**:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу [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Цей документ був перекладений за допомогою сервісу автоматичного перекладу [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"
]
}
],
@ -150,12 +152,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "15a83277036572e0773229b5f21c1e12",
"translation_date": "2025-09-04T08:32:18+00:00",
"source_file": "4-Classification/3-Classifiers-2/notebook.ipynb",
"language_code": "uk"
}
},
"nbformat": 4,

@ -1,7 +1,9 @@
{
"cells": [
{
"source": [],
"source": [
"# Побудуйте більше моделей класифікації\n"
],
"cell_type": "markdown",
"metadata": {}
},
@ -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"
]
},
{
@ -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**Відмова від відповідальності**: \nЦей документ було перекладено за допомогою сервісу автоматичного перекладу [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"
]
}
],
@ -289,12 +291,6 @@
"interpreter": {
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
"coopTranslator": {
"original_hash": "7ea2b714669c823a596d986ba2d5739f",
"translation_date": "2025-09-04T08:33:09+00:00",
"source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb",
"language_code": "uk"
}
},
"nbformat": 4,

@ -10,76 +10,86 @@
### 🌐 Підтримка кількох мов
#### Підтримується через 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](../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](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](./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)
У нас проходить серія в 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/uk/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). Також поєднуйте ці уроки з нашою програмою ['Data Science для початківців'](https://aka.ms/ds4beginners).
Подорожуйте з нами навколо світу, застосовуючи ці класичні методи до даних з багатьох регіонів. Кожен урок містить опитування до і після уроку, письмові інструкції для виконання, розв’язок, завдання та інше. Наша проєктно-орієнтована педагогіка дозволяє вчитися через створення, що є перевіреним способом закріплення нових навичок.
Подорожуйте з нами навколо світу, застосовуючи класичні техніки до даних з різних регіонів світу. Кожен урок включає тести перед та після уроку, письмові інструкції для виконання уроку, розв’язок, завдання і багато іншого. Наш проектно-орієнтований підхід дозволяє вчитися під час створення проектів — перевірений спосіб краще засвоювати нові навички.
**✍️ Щира подяка нашим авторам** Джен Лупер, Стівен Хауелл, Франческа Лаццері, Томомі Імура, Кессі Бревіу, Дмитро Сошніков, Кріс Норінг, Анірбан Мукерджі, Орнелла Алтунян, Рут Якубу та Емі Бойд
**✍️ Щирі подяки нашим авторам** Джен Лупер, Стівен Гауелл, Франческа Лаццері, Томомі Імура, Кессі Бревіу, Дмитру Сошникову, Кріса Норінга, Анірбану Мукхерджі, Орнеллі Альтунян, Рут Якубу та Емі Бойд
**🎨 Також дякуємо нашим ілюстраторам** Томомі Імура, Дасані Мадіпаллі та Джен Лупер
**🎨 Також дякуємо нашим ілюстраторам** Томомі Імура, Дасані Мадіпалла та Джен Лупер
**🙏 Особлива подяка 🙏 нашим студентським послам Microsoft — авторам, рецензентам і контентним співробітникам**, зокрема Рішиту Даглі, Мухаммаду Сакібу Хану Інану, Рохану Раджу, Олександру Петреску, Абхішеку Джайсвалу, Наурін Табассум, Іоану Самуїлі і Снігдхі Агарвал
**🙏 Особлива подяка 🙏 авторам, рецензентам та контент-співавторам від Microsoft Student Ambassador**, особливо Рішиту Даглі, Мухаммаду Сакиб Хан Інану, Рохану Раджу, Александру Петреску, Абхішеку Джайсвалу, Наурін Табассум, Іоану Самюїлу та Снігдзі Агарвал
**🤩 Окрема подяка послам студентів Microsoft Еріку Ванджау, Джаслін Сонді та Відуші Гупті за наші уроки на R!**
**🤩 Особлива вдячність студентам-амбассадорам Microsoft — Еріку Ванджау, Джаслін Сондхі та Відуші Гупті за наші уроки з R!**
# Початок роботи
Відкрийте для себе ці кроки:
1. **Форкніть репозиторій**: натисніть кнопку "Fork" у верхньому правому куті цієї сторінки.
2. **Клонувати репозиторій**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
Виконайте ці кроки:
1. **Сфоркуйте репозиторій**: Натисніть кнопку «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)**, щоб використовувати цю навчальну програму, створіть форк у власному обліковому записі GitHub і виконуйте вправи індивідуально чи в групі:
- Почніть з опитування перед лекцією.
- Прочитайте лекцію та виконайте завдання, зупиняючись і осмислюючи кожну перевірку знань.
- Намагайтеся створювати проєкти, розуміючи уроки, а не просто запускаючи код розв’язку; однак цей код доступний у папках `/solution` у кожному проєктно-орієнтованому уроці.
- Пройдіть опитування після лекції.
- Почніть з тесту перед лекцією.
- Прочитайте лекцію та виконайте завдання, роблячи паузи та розмірковуючи на кожному етапі перевірки знань.
- Намагайтеся створювати проекти, розуміючи уроки, а не просто запускаючи код розв’язку; хоча цей код доступний у папках `/solution` кожного проектно-орієнтованого уроку.
- Пройдіть тест після лекції.
- Виконайте виклик.
- Виконайте домашнє завдання.
- Після завершення групи уроків відвідайте [Дискусійну дошку](https://github.com/microsoft/ML-For-Beginners/discussions) та "вчіться голосно", заповнюючи відповідний рубрикатор PAT. PAT — це інструмент оцінки прогресу, який ви заповнюєте для поглиблення навчання. Ви також можете реагувати на інші PAT, щоб ми могли вчитися разом.
- Виконайте завдання.
- Після завершення групи уроків відвідайте [дошку обговорень](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 на каналі Microsoft Developer на YouTube](https://aka.ms/ml-beginners-videos), натиснувши на зображення нижче.
Деякі уроки доступні у форматі коротких відео. Ви можете знайти їх вбудованими в уроках або на [плейлисті ML для початківців на YouTube-каналі Microsoft Developer](https://aka.ms/ml-beginners-videos), натиснувши на зображення нижче.
[![ML for beginners banner](../../translated_images/uk/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -91,79 +101,79 @@
**Гіф від** [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/)
- відео-огляд (тільки деякі уроки)
- [тест-розминка перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
- письмовий урок
- для проєктно-орієнтованих уроків — покрокові інструкції зі створення проєкту
- для проектно-орієнтованих уроків — покрокові інструкції зі створення проекту
- перевірки знань
- виклик
- додаткові матеріали для читання
- додаткове читання
- завдання
- [опитування після лекції](https://ff-quizzes.netlify.app/en/ml/)
> **Примітка про мови:** ці уроки головним чином написані на Python, але багато з них також доступні на R. Щоб пройти урок на R, зайдіть у папку `/solution` і знайдіть уроки на R. Вони мають розширення .rmd, що означає **R Markdown** файл — це, по суті, документ Markdown, який містить `фрагменти коду` (на R або інших мовах) і `YAML-заголовок` (який визначає формат вихідного файлу, наприклад PDF). Він слугує взірцевим середовищем для створення матеріалів з науки про дані, оскільки дозволяє поєднувати код, результати виконання та власні думки, записані у форматі Markdown. R Markdown документи можна згенерувати у формати PDF, HTML або Word.
> **Примітка щодо вікторин**: Всі вікторини знаходяться в папці [Quiz App folder](../../quiz-app), загалом 52 вікторини по три запитання кожна. Вони пов’язані з уроками, але додаток вікторини можна запускати локально; дотримуйтесь інструкцій у папці `quiz-app` для локального розгортання або публікації в Azure.
| Lesson Number | Тема | Група уроків | Навчальні цілі | Посилання на урок | Автор |
| :-----------: | :---------------------------------------------------------: | :----------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |
| 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 and Amy |
| 03 | Справедливість і машинне навчання | [Вступ](1-Introduction/README.md) | Які важливі філософські питання щодо справедливості слід враховувати при створенні та застосуванні моделей МН? | [Урок](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Техніки машинного навчання | [Вступ](1-Introduction/README.md) | Якими методами користуються дослідники МН для побудови моделей? | [Урок](1-Introduction/4-techniques-of-ML/README.md) | Chris and 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 and 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 and 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 and 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 and 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, побудувавши простого бота | [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) | Переклад і аналіз настроїв із Джейн Остін | [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) | Прогноз часових рядів з використанням підтримуючих векторних регресорів | [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 |
| Постскрипт | Реальні сценарії та застосування МН | [МН у реальному житті](9-Real-World/README.md) | Цікаві та показові реальні застосування класичного машинного навчання | [Урок](9-Real-World/1-Applications/README.md) | Команда |
| Постскрипт | Налагодження моделей МН за допомогою RAI | [МН у реальному житті](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/#/). Форкніть цей репозиторій, [встановіть Docsify](https://docsify.js.org/#/quickstart) на своєму локальному комп’ютері, а потім у кореневій папці репозиторію введіть `docsify serve`. Вебсайт буде доступний на порту 3000 на вашому локальному хості: `localhost:3000`.
- [тест після лекції](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 folder](../../quiz-app), всього 52 вікторини по три питання в кожній. Вони посиланнями пов’язані з уроками, але додаток для вікторин можна запускати локально; дотримуйтесь інструкцій у папці `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) | Які важливі філософські питання справедливості слід враховувати при побудові та застосуванні моделей МН? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Техніки машинного навчання | [Introduction](1-Introduction/README.md) | Які методи використовують дослідники машинного навчання для побудови моделей? | [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) | Візуалізувати та очистити дані для підготовки до машинного навчання | [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) | Підкріплювальне навчання в середовищі Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Реальні сценарії та застосування МН | [ML in the Wild](9-Real-World/README.md) | Цікаві та повчальні приклади застосування класичного машинного навчання | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| Postscript | Відлагодження моделей МН за допомогою RAI панелі | [ML in the Wild](9-Real-World/README.md) | Відлагодження моделей машинного навчання за допомогою компонетів 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)
## Доступ офлайн
Ви можете переглядати цю документацію офлайн, використовуючи [Docsify](https://docsify.js.org/#/). Форкніть цей репозиторій, [встановіть Docsify](https://docsify.js.org/#/quickstart) на свій локальний комп’ютер, а потім у кореневій папці репозиторію введіть `docsify serve`. Вебсайт буде доступний на порту 3000 на вашому локальному хості: `localhost:3000`.
## 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
@ -175,23 +185,23 @@
### Azure / Edge / MCP / Agents
[![AZD for Beginners](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 for Beginners](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 for Beginners](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 for Beginners](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 для початківців](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 агентів для початківців](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)
### Серія Generative AI
[![Generative AI для початківців](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)
[![Generative 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)
---
### Основне навчання
[![Машинне навчання для початківців](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)
[![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)
[![Data Science для початківців](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 для початківців](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)
[![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)
@ -200,24 +210,29 @@
---
### Серія Copilot
[![Copilot для спареного програмування ШІ](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 -->
**Відмова від відповідальності**:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу [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