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

pull/966/head
localizeflow[bot] 3 months ago
parent c4a088d03c
commit d493273e8e

@ -90,8 +90,8 @@
"language_code": "lt"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:17:28+00:00",
"original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
"translation_date": "2026-04-20T20:27:01+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "lt"
},
@ -168,8 +168,8 @@
"language_code": "lt"
},
"4-Classification/2-Classifiers-1/README.md": {
"original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b",
"translation_date": "2025-09-05T07:58:37+00:00",
"original_hash": "cb761595e5b6c42b99bb81bd13683311",
"translation_date": "2026-04-20T20:28:03+00:00",
"source_file": "4-Classification/2-Classifiers-1/README.md",
"language_code": "lt"
},
@ -552,8 +552,8 @@
"language_code": "lt"
},
"README.md": {
"original_hash": "7fb48097f57e680b380cd9aae988d317",
"translation_date": "2026-04-06T17:36:44+00:00",
"original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0",
"translation_date": "2026-04-20T20:25:10+00:00",
"source_file": "README.md",
"language_code": "lt"
},

@ -1,136 +1,136 @@
# Sukurkite regresijos modelį naudodami Scikit-learn: regresija keturiais būdais
# Sukurkite regresijos modelį naudojant Scikit-learn: keturi regresijos būdai
## Pradedančiųjų pastaba
## Pradedančiojo 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.
Linijinė regresija naudojama tada, kai norime prognozuoti **skaitinę reikšmę** (pvz., namo kainą, temperatūrą ar pardavimus).
Ji veikia ieškant 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/)
Šioje pamokoje daugiausia dėmesio skirsime koncepcijos supratimui prieš nagrinėjant pažangesnes regresijos technikas.
![Linear vs polynomial regression infographic](../../../../translated_images/lt/linear-polynomial.5523c7cb6576ccab.webp)
> Infografika [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Priešpaskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
> ### [Ši pamoka taip pat prieinama R kalba!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [Ši pamoka prieinama ir R kalba!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Įvadas
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.
Iki šiol jau tyrinėjote, kas yra regresija, naudodamiesi pavyzdiniais duomenimis iš moliūgų kainų duomenų rinkinio, kurį naudosime visos pamokos metu. Taip pat jį vizualizavote naudodami Matplotlib.
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.
Dabar esate pasiruošę gilintis į regresiją mašininio mokymosi srityje. Nors vizualizacija leidžia suprasti duomenis, tikroji mašininio mokymosi galia yra modelių _mokymas_. Modeliai yra mokomi pagal istoriniai duomenys, kad automatiškai aptiktų duomenų priklausomybes ir leistų prognozuoti rezultatus naujiems, modeliui nematytiems duomenims.
Š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.
Šioje pamokoje sužinosite daugiau apie du regresijos tipus: _pagrindinę linijinę regresiją_ ir _polinominę regresiją_, kartu su kai kuriais šių technikų matematiniu pagrindu. Šie modeliai leis prognozuoti moliūgų kainas, atsižvelgiant į skirtingus įvesties duomenis.
[![ML pradedantiesiems - Linijinės regresijos supratimas](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML pradedantiesiems - Linijinės regresijos supratimas")
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 Paspauskite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą linijinės regresijos apžvalgą.
> 🎥 Spustelėkite aukščiau esantį paveikslėlį, norėdami peržiūrėti trumpą vaizdo įrašą apie linijinę regresiją.
> 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.
> Visos šios mokymo programos metu pradedame nuo minimalių matematikos žinių, siekdami, kad ji būtų prieinama studentams iš kitų sričių, todėl atkreipkite dėmesį į pastabas, 🧮 išryškinimus, diagramas ir kitas mokymosi priemones.
### Reikalavimai
### Priešžinios
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.
Turėtumėte jau būti susipažinę su moliūgų duomenų struktūra, kurią nagrinėjame. Juos rasite iš anksto įkeltus ir išvalytus šiame pamokos _notebook.ipynb_ faile. faile moliūgų kaina pateikiama už sklypą naujame duomenų rinkinyje. Įsitikinkite, kad galite paleisti šiuos užrašų knygeles Visual Studio Code branduoliuose.
### Paruošimas
Primename, kad duomenis įkeliame tam, kad galėtume užduoti klausimus.
Primename, kad įkeliate šiuos duomenis, kad galėtumėte užduoti klausimus apie juos.
- Kada geriausia pirkti moliūgus?
- 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.
- Kokios kainos galima tikėtis už dėžę miniatiūrinių moliūgų?
- Ar juos verta pirkti pusės sklypo krepšyje, ar vieno ir vienos devintosios sklypo dėžėje?
Toliau gilinkimė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 Pandų duomenų rėmelį ir užpildėte jį dalimi pradinio duomenų rinkinio, standartizuodami kainas pagal sklypą. Tačiau tai leido užfiksuoti 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, kuriuos iš anksto įkėlėme šios pamokos knygoje. Duomenys yra įkelti ir pavaizduota pradinė paskirstymo diagrama, rodanti mėnesių duomenis. Galbūt galime gauti šiek tiek daugiau informacijos apie duomenų prigimtį, juos dar labiau išvalydami.
## Linijinės regresijos tiesė
Kaip sužinojote 1-pamokoje, linijinės regresijos užduotis yra nubraižyti tiesę, kuri:
Kaip sužinojote 1 pamokoje, linijinės regresijos tikslas yra nubrėžti tiesę, kad galėtume:
- **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ė.
- **Rodyti kintamųjų santykius**. Parodyti santykį tarp kintamųjų
- **Daryti prognozes**. Tiksliai prognozuoti, kur nukris naujas taškas, palyginti 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 naudoti **mažiausių kvadratų regresiją** tokio tipo linijai nubrėžti. Terminas „mažiausių kvadratų“ reiškia procesą, kai sumažinamas bendras modelio klaidos dydis. Kiekvienam duomenų taškui matuojamas vertikalus atstumas (vadinamas likučiu) tarp tikro taško ir mūsų regresijos linijos.
Šiuos atstumus kvadratuojame dėl dviejų pagrindinių priežasčių:
Šiuos atstumus pakeliame kvadratu dėl dviejų pagrindinių priežasčių:
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.
1. **Dydis svarbiau už kryptį:** Norime, kad klaida -5 būtų tokia pat reikšminga kaip ir klaida +5. Keldami kvadratu visa paverčiame teigiama.
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ų.
2. **Išskirtinių reikšmių bausmė:** Kvadratu pakeldami didesnė klaida sveria labiau, priversdami tiesę artėti prie tolimų 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.
Tada sudedame visas pakeltas kvadratu klaidas. Mūsų tikslas yra rasti tokią tiesę, kurioje ši suma būtų mažiausia (mažiausia įmanoma reikšmė) todėl pavadinimas „mažiausių kvadratų“.
> **🧮 Parodykite man matematiką**
>
> Ši tiesė, vadinama _geriausiai pritaikyta tiesė_, gali būti išreikšta [lygtimi](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> **🧮 Parodykite man matematiką**
>
> Ši linija, vadinama _geriausiai atitinkančia linija_, 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'. Tiesės nuolydis yra `b`, o `a` yra y-interceptas, kuris reiškia `Y` reikšmę, kai `X = 0`.
> `X` yra „paaiškinamasis kintamasis“. `Y` yra „priklausomas kintamasis“. Linijos nuolydis yra `b`, o `a` yra y-kirčio reikšmė, kuri nurodo `Y` reikšmę, kai `X = 0`.
>
>![nuolydžio skaičiavimas](../../../../translated_images/lt/slope.f3c9d5910ddbfcf9.webp)
>![calculate the slope](../../../../translated_images/lt/slope.f3c9d5910ddbfcf9.webp)
>
> Pirmiausia apskaičiuojame nuolydį `b`. Infografika autoriaus [Jen Looper](https://twitter.com/jenlooper)
> Pirmiausia apskaičiuokite nuolydį `b`. Infografika iš [Jen Looper](https://twitter.com/jenlooper)
>
> 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.
> Kitais žodžiais tariant, ir remiantis mūsų moliūgų duomenų pradiniu klausimu: „prognozuoti moliūgo kainą už sklypą pagal mėnesį“, `X` būtų kaina, o `Y` pardavimo mėnuo.
>
>![lygtys užbaigimas](../../../../translated_images/lt/calculation.a209813050a1ddb1.webp)
>![complete the equation](../../../../translated_images/lt/calculation.a209813050a1ddb1.webp)
>
> Apskaičiuokite `Y` reikšmę. Jei mokate apie 4 USD, tai turi būti balandis! Infografika autoriaus [Jen Looper](https://twitter.com/jenlooper)
> Apskaičiuokite `Y` reikšmę. Jei mokate apie 4 dolerius, tai turi būti balandis! Infografika iš [Jen Looper](https://twitter.com/jenlooper)
>
> Matematikos formule turi parodyti linijos nuolydį, kuris taip pat priklauso nuo sankirtos, arba kur `Y` yra, kai `X=0`.
> Formulė, kuri apskaičiuoja liniją, turi parodyti linijos nuolydį, kuris taip pat priklauso nuo kirčio, arba kur yra `Y`, kai `X = 0`.
>
> 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ę.
> Galite pamatyti šios vertės skaičiavimo metodą 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), norėdami pamatyti, kaip skaičių vertės veikia liniją.
## Koreliacija
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ą.
Dar vienas suprantamas terminas yra **koreliacijos koeficientas** tarp pasirinktų `X` ir `Y` kintamųjų. Naudodami sklaidos diagramą galite greitai vizualizuoti šį koeficientą. Taškai, išsidėstę tvarkingai linijoje, rodo aukštą koreliaciją, o taškai, išmėtyti plačiai tarp X ir Y, rodo mažą koreliaciją.
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).
Geras linijinės regresijos modelis bus tas, kuris turi aukštą (artimą 1, o ne 0) koreliacijos koeficientą, naudojant mažiausių kvadratų regresijos metodą su regresijos linija.
✅ 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)?
✅ Paleiskite šios pamokos užrašų knygą ir pažiūrėkite į mėnesio ir kainos sklaidos diagramą. Ar pagal jūsų sklaidos diagramos vizualinį įvertinimą moliūgų pardavimų duomenys, susiejantys mėnesį su kaina, atrodo turintys aukštą ar žemą koreliaciją? Ar tai pasikeičia, jei naudotumėte smulkesnį matavimą, pvz., *metų dienos* (t. y. dienų skaičių nuo metų pradžios)?
Toliau pateiktame kode skelbiame, kad duomenys buvo sutvarkyti ir mes turime duomenų rėmelį `new_pumpkins`, panašų į šį:
Žemiau pateiktame kode laikysimės, kad duomenys yra išvalyti ir turime duomenų rėmelį `new_pumpkins`, panašų į šį:
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
ID | Mėnuo | MetųDiena | Veislė | Miestas | Pakuotė | Žemiausia Kaina | Aukščiausia Kaina | Kaina
---|-------|-----------|---------|---------|---------|----------------|-------------------|------
70 | 9 | 267 | PIETIPAS | BALTIMORE | 1 1/9 sklypo dėžės | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIETIPAS | BALTIMORE | 1 1/9 sklypo dėžės | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIETIPAS | BALTIMORE | 1 1/9 sklypo dėžės | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIETIPAS | BALTIMORE | 1 1/9 sklypo dėžės | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIETIPAS | BALTIMORE | 1 1/9 sklypo dėžės | 15.0 | 15.0 | 13.636364
> 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ą:
> Duomenų valymo kodas pateiktas [`notebook.ipynb`](notebook.ipynb). Atlikome tokius pačius valymo veiksmus kaip 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 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.
Dabar, kai suprantate linijinės regresijos matematiką, sukurkime regresijos modelį, kad pamatytume, ar galime prognozuoti, kuri moliūgų pakuotė turės geriausias kainas. Moliūgų pirkėjas, norintis sukurti moliūgų dekoracijų kampelį šventėms, gali norėti šios informacijos, kad optimizuotų moliūgų pirkimą.
## Koreliacijos paieška
## Ieškome koreliacijos
[![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ą")
[![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")
> 🎥 Paspauskite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą koreliacijos apžvalgą.
> 🎥 Spustelėkite aukščiau esantį paveikslėlį, norėdami peržiūrėti trumpą vaizdo įrašą apie koreliaciją.
Iš ankstesnės pamokos greičiausiai jau matėte, kad vidutinė kainų tendencija pagal mėnesius atrodo maždaug taip:
Iš ankstesnės pamokos tikriausiai matėte, kad vidutinė kaina skirtingais mėnesiais atrodo maždaug taip:
<img alt="Vidutinė kaina pagal mėnesį" src="../../../../translated_images/lt/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="Average price by month" src="../../../../translated_images/lt/barchart.a833ea9194346d76.webp" width="50%"/>
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šį:
Tai leidžia manyti, kad turėtų būti tam tikra koreliacija, ir galime pabandyti apmokyti linijinį regresijos modelį, prognozuojant santykį tarp `Month` ir `Price` arba tarp `DayOfYear` ir `Price`. Žemiau pateikta sklaidos diagrama rodo pastarąjį ryšį:
<img alt="Sklaidos grafikas: Kaina prieš Metų dieną" src="../../../../translated_images/lt/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/lt/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Pažiūrėkime, ar yra koreliacija naudodami funkciją `corr`:
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 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:
Atrodo, kad koreliacija yra gana maža, -0.15 pagal `Mėnesį` ir -0.17 pagal `Metų dieną`, tačiau gali būti kita svarbi priklausomybė. Atrodo, kad yra skirtingų kainų grupių, atitinkančių skirtingas moliūgų veisles. Norint patvirtinti šią hipotezę, nubraižykime kiekvieną moliūgų kategoriją skirtinga spalva. Pateikdami parametrą `ax` funkcijai `scatter` galime nubrėžti visus taškus viename grafike:
```python
ax=None
@ -140,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 prieš Metų dieną su spalvomis" src="../../../../translated_images/lt/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/lt/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Mūsų tyrimas rodo, kad veislė labiau veikia bendrą kainą nei tikroji pardavimo data. Tai galime pamatyti ir juostinėje diagramoje:
Mūsų tyrimas rodo, kad veislė daro didesnį poveikį bendrai kainai nei tikrasis pardavimo laikas. Tai matosi ir stulpeline diagramoje:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Juostinė diagrama: kaina pagal veislę" src="../../../../translated_images/lt/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Bar graph of price vs variety" src="../../../../translated_images/lt/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Tuo tarpu sutelkime dėmesį tik į vieną moliūgų veislę, pie type, ir pažiūrėkime, kokį poveikį data turi kainai:
Šiuo metu sutelkime dėmesį tik į vieną moliūgų veislę, 'pie type', ir pažiūrėkime, kokį poveikį datą turi kaina:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Sklaidos grafikas: Kaina prieš Metų dieną, tik pie type" src="../../../../translated_images/lt/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/lt/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
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į.
Jei dabar apskaičiuosime koreliaciją tarp `Price` ir `DayOfYear`, naudodami funkciją `corr`, gausime apie `-0.27` - tai reiškia, kad verta mokyti prognozinį modelį.
> 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:
> Prieš mokant linijinį regresijos modelį svarbu įsitikinti, kad mūsų duomenys yra švarūs. Linijinė regresija blogai veikia su trūkstamomis reikšmėmis, todėl verta atsikratyti visų tuščių langelių:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Kitas būdas - užpildyti tuščias reikšmes atitinkamų stulpelių vidurkiais.
Kita galimybė būtų užpildyti trūkstamas reikšmes vidutinėmis tos stulpelio reikšmėmis.
## Paprasta linijinė regresija
[![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")
[![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")
> 🎥 Paspauskite aukščiau esančią nuotrauką, kad peržiūrėtumėte trumpą linijinės ir polininės regresijos apžvalgą.
> 🎥 Spustelėkite aukščiau esantį paveikslėlį, norėdami peržiūrėti trumpą vaizdo įrašą apie linijinę ir polinominę regresiją.
Mūsų Linijinės regresijos modelio mokymui naudosime **Scikit-learn** biblioteką.
Norėdami apmokyti mūsų linijinį regresijos modelį, naudosime **Scikit-learn** biblioteką.
```python
from sklearn.linear_model import LinearRegression
@ -183,48 +183,48 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Pradėsime atskirdami įvesties reikšmes ( požymius) ir laukiamą išvestį (etiketę) į atskirus numpy masyvus:
Pradėsime atskirdami įvesties reikšmes (požymius) ir tikėtiną išvestį (etiketę) į atskirus numpy masyvus:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> 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.
> Atkreipkite dėmesį, kad turėjome naudoti metodą `reshape` su įvesties duomenimis, kad linijinės regresijos paketas teisingai juos suprastų. Linijinė regresija tikisi 2D masyvo kaip įvesties, kur kiekviena masyvo eilutė atitinka požymių vektorių. Mūsų atveju, kadangi turime tik vieną įvestį mums reikia masyvo formos N×1, kur N yra duomenų rinkinio dydis.
Tada turime padalinti duomenis į mokymo ir testavimo rinkinius, kad galėtume modelį patikrinti po mokymo:
Tuomet turime padalyti duomenis į mokymo ir testavimo rinkinius, kad vėliau patikrintume modelio veikimą:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
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ą:
Galiausiai, tikrasis linijinės regresijos modelio apmokymas užtrunka tik dvi kodo eilutes. Sukuriame `LinearRegression` objektą ir pritaikome jį mūsų duomenims naudodami metodą `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`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.
`LinearRegression` objektas po `fit` treniravimo turi visas 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 krinta su laiku, bet ne per daug, apie 2 centus per dieną. Taip pat galime pasiekti regresijos sankirtos su Y ašimi tašką naudodami `lin_reg.intercept_` mūsų atveju jis bus apie `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.
Kad pamatytume, kaip tikslus mūsų modelis, galime prognozuoti kainas testiniame duomenų rinkinyje ir tada išmatuoti, kiek mūsų prognozės yra arti tikėtinų reikšmių. Tai galima padaryti naudojant šaknies kvadratinės vidutinės klaidos (RMSE) metriką, kuri yra visų kvadratinių skirtumų tarp tikėtinos ir prognozuotos reikšmės vidurkio šaknis.
```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}%)')
rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/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:
Mūsų klaida atrodo apie 2 taškus, tai yra ~17%. Ne per gera. Kitas modelio kokybės rodiklis yra **determinacijos 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 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.
Jei reikšmė yra 0, tai reiškia, kad modelis neatsižvelgia į įvesties duomenis ir veikia kaip *blogiausias tiesinis prognozuotojas*, kuris tiesiog yra rezultatų vidurkis. 1 reikšmė reiškia, kad galime tobulai prognozuoti visus tikėtinus rezultatus. Mūsų atveju koeficientas yra apie 0.06, kas yra gana žema reikšmė.
Taip pat galime nupiešti testinius duomenis kartu su regresijos linija, kad geriau matytume, kaip regresija veikia mūsų atveju:
Taip pat galime pavaizduoti testinius duomenis kartu su regresijos linija, kad geriau matytume, kaip regresija veikia mūsų atveju:
```python
plt.scatter(X_test,y_test)
@ -235,17 +235,17 @@ plt.plot(X_test,pred)
## Polinominė regresija
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.
Kitas tiesinės regresijos tipas yra polinominė regresija. Nors kartais tarp kintamųjų yra tiesinis ryšys kuo didesnė moliūgo apimtis, tuo didesnė kaina kartais šių ryšių negalima nubraižyti kaip plokštumos ar tiesės.
Čia yra [daugiau pavyzdžių](https://online.stat.psu.edu/stat501/lesson/9/9.8) duomenų, kuriems gali tikti polinominė regresija
Štai [dar keletas pavyzdžių](https://online.stat.psu.edu/stat501/lesson/9/9.8) duomenų, kuriuose galima naudoti 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ą.
Dar kartą pažiūrėkite į ryšį tarp Datos ir Kainos. Ar šis sklaidos grafikas tikrai turėtų būti analizuojamas tiesės pagalba? Ar kainos negali svyruoti? Tokiu atveju galima išbandyti polinominę regresiją.
✅ Polinomai yra matematiniai išraiškos, kurios gali susidaryti iš vieno ar daugiau kintamųjų ir koeficientų
✅ Polinomai yra matematiniai reiškiniai, galintys susidaryti iš vieno ar daugiau kintamųjų ir koeficientų.
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.
Polinominė regresija sukuria išlenktą liniją, kad geriau atitiktų netiesinius duomenis. Mūsų atveju, jei įvesime kvadratinį `DayOfYear` kintamąjį, galėsime pritaikyti parabolinį kreivę, kuri turės minimumą tam tikru metų momentu.
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ą:
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 kelis duomenų apdorojimo žingsnius. **Pipeline** yra **vertintojų** grandinė. Mūsų atveju sukursime pipeline, kuris pirmiausia pridės polinominius bruožus modelyje, o tada išmokys regresiją:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -256,36 +256,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
Naudojant `PolynomialFeatures(2)` reiškia, kad įtraukiame visus antro laipsnio polinomus iš įvesties duomenų. Mūsų atveju tai reikš 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.
Naudojant `PolynomialFeatures(2)` reiškia, kad naudosime visus antrinės laipsnio polinomus iš įvesties duomenų. Mūsų atveju tai reikš tik `DayOfYear`<sup>2</sup>, tačiau turint du įvesties kintamuosius, pvz., X ir Y, bus pridėta X<sup>2</sup>, XY ir Y<sup>2</sup>. Taip pat galime naudoti aukštesnių laipsnių polinomus, jei norime.
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ę:
Pipeline galima naudoti taip pat kaip ir pradinį `LinearRegression` objektą, t.y. galime `fit` treniruoti pipeline ir tada naudoti `predict`, kad gautume prognozių rezultatus. Štai grafikas, rodantis testinius duomenis ir apytikslę kreivę:
<img alt="Polynomial regression" src="../../../../translated_images/lt/poly-results.ee587348f0f1f60b.webp" width="50%" />
Naudodami polinominę regresiją galime gauti šiek tiek mažesnį MSE ir didesnį nustatymo koeficientą, bet ne žymiai. Turime atsižvelgti į daugiau požymių!
Naudodami polinominę regresiją galime gauti šiek tiek mažesnę MSE ir didesnį determinacijos koeficientą, bet ne žymiai. Turime atsižvelgti į kitas savybes!
> Galite pastebėti, kad mažiausios moliūnų kainos fiksuojamos kažkur apie Heloviną. Kaip tai galėtumėte paaiškinti?
> Matote, kad mažiausios moliūgų kainos fiksuojamos kažkur apie Heloviną. Kaip tai galima paaiškinti?
🎃 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!
🎃 Sveikiname, ką tik sukūrėte modelį, kuris gali padėti prognozuoti moliūgų rūšių kainas pyragams. Tikriausiai tą patį procedūrą galima pakartoti visoms moliūgų rūšims, tačiau tai būtų varginantis darbas. Dabar išmokime, kaip mūsų modelyje atsižvelgti į moliūgo veislę!
## Kategoriniai požymiai
## Kategoriniai bruožai
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**.
Idealioje situacijoje norėtume prognozuoti kainas skirtingoms moliūgų veislėms naudojant tą patį modelį. Tačiau stulpelis `Variety` šiek tiek skiriasi nuo tokių stulpelių kaip `Month`, nes jis turi ne skaitines reikšmes. Tokie stulpeliai vadinami **kategoriniais**.
[![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")
[![ML pradedantiesiems kategorinių bruožų prognozės su tiesine regresija](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML pradedantiesiems kategorinių bruožų prognozės su tiesine regresija")
> 🎥 Paspauskite aukščiau esančią nuotrauką, jei norite trumpą vaizdo įrašą apie kategorinių požymių naudojimą.
> 🎥 Paspauskite aukščiau esantį paveikslėlį, kad peržiūrėtumėte trumpą vaizdo įrašą apie kategorinius bruožus.
Čia matote, kaip vidutinė kaina priklauso nuo veislės:
<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ą paversti skaitine reikšme, arba **užkoduoti**. Yra keli būdai, kaip tai padaryti:
Kad atsižvelgtume į veislę, pirmiausia turime ją paversti į skaitmeninę formą arba **užkoduoti**. Yra keli būdai, kaip tai padaryti:
* 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.
* Paprastas **skaitmeninis kodavimas** sukurs lentelę skirtingų veislių ir pakeis veislės pavadinimą į tos lentelės indeksą. Tai nėra geriausia idėja tiesinei regresijai, nes tiesinė regresija ima tikrąjį skaitinę indekso vertę ir prideda ją prie rezultato, daugindama iš tam tikro koeficiento. Mūsų atveju ryšys tarp indekso ir kainos yra akivaizdžiai nelinijinis, net jei užtikrinsime, kad indeksai būtų tam tikra tvarka.
* **Vieno karšto kodavimas (one-hot encoding)** pakeis `Variety` stulpelį į 4 atskirus stulpelius, po vieną kiekvienai veislei. Kiekviename stulpelyje bus `1`, jei atitinkamas įrašas priklauso tai veislei, ir `0` kitu atveju. Tai reiškia, kad tiesinėje regresijoje bus keturi koeficientai, po vieną kiekvienai moliūgų veislei, atsakingi už „pradinę kainą“ (ar tiksliau „papildomą kainą“) už tą tam tikrą veislę.
Žemiau pateiktas kodas, rodantis, kaip galima one-hot koduoti veislę:
Žemiau esantis kodas rodo, kaip galima vieno karšto kodavimo būdu užkoduoti veislę:
```python
pd.get_dummies(new_pumpkins['Variety'])
@ -302,14 +302,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
Norėdami apmokyti tiesinę regresiją, naudodami one-hot koduotą veislę kaip įvestį, tiesiog turime teisingai inicializuoti `X` ir `y` duomenis:
Kad treniruotume tiesinę regresiją su vieno karšto kodavimu kaip įvestimi, tereikia tinkamai inicializuoti `X` ir `y` duomenis:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
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`:
Likusi kodo dalis ta pati, kaip ir anksčiau treniruojant tiesinę regresiją. Jei pabandysite, pamatysite, kad vidutinė kvadratinė klaida yra maždaug ta pati, tačiau gauname daug aukštesnį determinacijos koeficientą (~77%). Norint gauti dar tikslesnes prognozes, galime atsižvelgti į daugiau kategorinių savybių, taip pat ir į skaitmeninius kintamuosius, pavyzdžiui, `Month` ar `DayOfYear`. Kad gautume vieną didelį savybių masyvą, galime naudoti `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -319,11 +319,11 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Čia taip pat atsižvelgiame į `City` ir `Package` tipą, kas duoda MSE 2.84 (10%) ir nustatymo koeficientą 0.94!
Čia taip pat atsižvelgiama į `City` ir `Package` tipus, kas suteikia MSE 2.84 (10%) ir determinaciją 0.94!
## Apibendrinimas
## Viso sujungimas
Kad sukurtume geriausią modelį, galime naudoti sujungtus (one-hot koduotus kategorinius + skaitinius) duomenis kartu su polinomine regresija. Štai viso kodo pavyzdys jūsų patogumui:
Kad sukurtume geriausią modelį, galime naudoti sujungtus (vieno karšto kodavimo kategorinius + skaitmeninius) duomenis kartu su polinomine regresija. Štai visas kodas jūsų patogumui:
```python
# nustatyti mokymo duomenis
@ -333,10 +333,10 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# padaryti treniruočių ir testavimo skaidy
# atlikti mokymo ir testavimo duomenų padaliji
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# sukonfigūruoti ir apmokyti procesų seką
# nustatyti ir apmokyti srautą
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
@ -351,36 +351,36 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
Tai turėtų duoti geriausią nustatymo koeficientą beveik 97% ir MSE=2.23 (~8% prognozės klaida).
Tai turėtų suteikti geriausią determinacijos koeficientą, beveik 97%, ir MSE=2.23 (~8% prognozės klaida).
| 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 |
| Modelis | MSE | Determinacija |
|---------|-----|--------------|
| `DayOfYear` tiesinė | 2.77 (17.2%) | 0.07 |
| `DayOfYear` polinominė | 2.73 (17.0%) | 0.08 |
| `Variety` tiesinė | 5.24 (19.7%) | 0.77 |
| Visos savybės tiesinė | 2.84 (10.5%) | 0.94 |
| Visos savybės polinominė | 2.23 (8.25%) | 0.97 |
🏆 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.
🏆 Puikiai padirbėta! Šiame užsiėmime sukūrėte keturis regresijos modelius ir pagerinote modelio kokybę iki 97%. Paskutinėje regresijos dalyje sužinosite apie logistinę regresiją, skirtą klasių nustatymui.
---
## 🚀Iššūkis
Išbandykite kelis skirtingus kintamuosius šiame sąsiuvinyje, kad pamatytumėte, kaip koreliacija atitinka modelio tikslumą.
Išbandykite kelis skirtingus kintamuosius šiame užrašų knygelėje, kad pamatytumėte, kaip koreliacija atitinka modelio tikslumą.
## [Po paskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
## [Paskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
## Peržiūra ir savarankiškas mokymasis
Š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)
Šioje pamokoje sužinojome apie tiesinę regresiją. Yra ir kitų svarbių regresijos tipų. Perskaitykite apie žingsninę, Ridge, Lasso ir Elasticnet metodikas. Gera kursų programa norint gilintis yra [Stanfordo statistinės mokymosi kursas](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Užduotis
[Sukurti modelį](assignment.md)
[Sudaryti 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, 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ą.
Š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 automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinėje informacijoje rekomenduojama naudotis profesionaliu žmogaus atliktu vertimu. Mes neatsakome už bet kokias nesusipratimus ar neteisingas interpretacijas, kylančias naudojant šį vertimą.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,17 +1,17 @@
# Virtuvės klasifikatoriai 1
# Virtuv klasifikatoriai 1
Šioje pamokoje naudosite duomenų rinkinį, kurį išsaugojote iš ankstesnės pamokos, pilną subalansuotų ir švarių duomenų apie virtuvės tipus.
Šiame pamokoje naudosite duomenų rinkinį, kurį išsaugojote iš paskutinės pamokos, pilną subalansuotų, švarių duomenų apie virtuves.
Naudodami šį duomenų rinkinį su įvairiais klasifikatoriais, _prognozuosite tam tikrą nacionalinę virtuvę pagal ingredientų grupę_. Tuo pačiu sužinosite daugiau apie tai, kaip algoritmai gali būti naudojami klasifikavimo užduotims.
Naudosite šį duomenų rinkinį su įvairiais klasifikatoriais, kad _numatytumėte tam tikrą nacionalinę virtuvę pagal ingredientų grupę_. Tai darydami sužinosite daugiau apie kai kuriuos būdus, kaip algoritmai gali būti panaudoti klasifikavimo užduotims.
## [Prieš paskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
# Pasiruošimas
## [Išankstinis paskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
# Paruošimas
Jei baigėte [1 pamoką](../1-Introduction/README.md), įsitikinkite, kad _cleaned_cuisines.csv_ failas yra `/data` aplanke, skirtame šioms keturioms pamokoms.
Jei baigėte [1 pamoką](../1-Introduction/README.md), įsitikinkite, kad šių keturių pamokų metu turite _cleaned_cuisines.csv_ failą pagrindiniame `/data` kataloge.
## Užduotis - prognozuoti nacionalinę virtuvę
## Užduotis - numatyti nacionalinę virtuvę
1. Dirbdami šios pamokos _notebook.ipynb_ aplanke, importuokite failą kartu su Pandas biblioteka:
1. Šios pamokos _notebook.ipynb_ aplanke importuokite tą failą kartu su Pandas biblioteka:
```python
import pandas as pd
@ -40,14 +40,14 @@ Jei baigėte [1 pamoką](../1-Introduction/README.md), įsitikinkite, kad _clean
import numpy as np
```
1. Padalinkite X ir y koordinates į du duomenų rėmelius mokymui. `cuisine` gali būti etikečių duomenų rėmelis:
1. Padalinkite X ir y koordinates į du duomenų kadrus treniravimui. `cuisine` gali būti žymių duomenų kadras:
```python
cuisines_label_df = cuisines_df['cuisine']
cuisines_label_df.head()
```
Tai atrodys taip:
Atrodys taip:
```output
0 indian
@ -58,7 +58,7 @@ Jei baigėte [1 pamoką](../1-Introduction/README.md), įsitikinkite, kad _clean
Name: cuisine, dtype: object
```
1. Pašalinkite `Unnamed: 0` stulpelį ir `cuisine` stulpelį, naudodami `drop()`. Likusius duomenis išsaugokite kaip mokymui tinkamus požymius:
1. Išmeskite `Unnamed: 0` ir `cuisine` stulpelius, naudodami `drop()`. Likusius duomenis išsaugokite kaip treniruojamus požymius:
```python
cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
@ -75,85 +75,85 @@ Jei baigėte [1 pamoką](../1-Introduction/README.md), įsitikinkite, kad _clean
| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Dabar esate pasiruošę treniruoti savo modelį!
Dabar jūs pasiruošę treniruoti modelį!
## Klasifikatoriaus pasirinkimas
Kai jūsų duomenys yra švarūs ir paruošti mokymui, turite nuspręsti, kokį algoritmą naudoti.
Kadangi jūsų duomenys švarūs ir pasiruošę mokymuisi, turite nuspręsti, kurį algoritmą naudoti šiai užduočiai.
Scikit-learn klasifikavimą priskiria prie Prižiūrimo Mokymosi (Supervised Learning), ir šioje kategorijoje rasite daugybę būdų klasifikuoti. [Įvairovė](https://scikit-learn.org/stable/supervised_learning.html) iš pradžių gali atrodyti gana paini. Šie metodai apima klasifikavimo technikas:
Scikit-learn klasifikaciją priskiria prie Prižiūrimo mokymosi (Supervised Learning), o šioje kategorijoje rasite daug skirtingų būdų klasifikuoti. [Įvairovė](https://scikit-learn.org/stable/supervised_learning.html) iš pirmo žvilgsnio yra ganėtinai didelė. Šie metodai visi apima klasifikavimo technikas:
- Linijiniai modeliai
- Atramos vektorių mašinos (Support Vector Machines)
- Stochastinis gradientinis nusileidimas
- Artimiausi kaimynai
- Atraminiai vektorių mašinos
- Stochastinis nuolydžio nusileidimas
- Artimiausių kaimynų metodas
- Gauso procesai
- Sprendimų medžiai
- Ansamblio metodai (balsavimo klasifikatorius)
- Daugiaklasiai ir daugiatiksliai algoritmai (daugiaklasis ir daugiatikslis klasifikavimas)
- Ansamblio metodai (voting Classifier)
- Keliaklasiai ir kelių išėjimų algoritmai (multiclass ir multilabel klasifikacija, multiclass-multioutput klasifikacija)
> Taip pat galite naudoti [neuroninius tinklus duomenims klasifikuoti](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), tačiau tai nėra šios pamokos tema.
> Taip pat galite naudoti [dirbtinius neuroninius tinklus duomenims klasifikuoti](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), tačiau tai ne šios pamokos tema.
### Kurį klasifikatorių pasirinkti?
### Kuri klasifikatorių pasirinkti?
Taigi, kurį klasifikatorių pasirinkti? Dažnai verta išbandyti kelis ir ieškoti geriausio rezultato. Scikit-learn siūlo [palyginimą](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) sukurto duomenų rinkinio pagrindu, lyginant KNeighbors, SVC dviem būdais, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB ir QuadraticDiscriminationAnalysis, vizualizuojant rezultatus:
Taigi, kurį klasifikatorių rinktis? Dažnai naudinga išbandyti kelis ir ieškoti geriausio rezultato. Scikit-learn siūlo [šalia šalia palyginimą](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) sukurtame duomenų rinkinyje, palyginant KNeighbors, SVC dviem būdais, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB ir QuadraticDiscrinationAnalysis, rodydami rezultatus vizualiai:
![klasifikatorių palyginimas](../../../../4-Classification/2-Classifiers-1/images/comparison.png)
> Grafikai iš Scikit-learn dokumentacijos
![klasifikatorių palyginimas](../../../../translated_images/lt/comparison.edfab56193a85e7f.webp)
> Grafikai pagal Scikit-learn dokumentaciją
> AutoML išsprendžia šią problemą efektyviai, atlikdamas šiuos palyginimus debesyje, leidžiant jums pasirinkti geriausią algoritmą jūsų duomenims. Išbandykite [čia](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML šią problemą sprendžia efektyviai vykdydamas šiuos palyginimus debesyje ir leydamas išsirinkti geriausią algoritmą jūsų duomenims. Išbandykite [čia](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
### Geresnis požiūris
Geresnis būdas nei spėliojimas yra vadovautis idėjomis iš šio atsisiunčiamo [ML Cheat Sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Čia sužinome, kad mūsų daugiaklasio problemos atveju turime keletą pasirinkimų:
Tačiau geresnis būdas nei laužtu būdu spėlioti sekti mintimis šioje atsisiunčiamoje [ML „Cheat sheet“](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Čia mes atrandame, kad mūsų keliaklasiui problemos sprendimui turime šiuos pasirinkimus:
![daugiaklasio problemos cheat sheet](../../../../4-Classification/2-Classifiers-1/images/cheatsheet.png)
> Microsoft algoritmų cheat sheet dalis, apibūdinanti daugiaklasio klasifikavimo galimybes
![keliaklasių problemų cheat sheet](../../../../translated_images/lt/cheatsheet.07a475ea444d2223.webp)
> Microsoft algoritmų „Cheat sheet“ ištrauka, aprašanti keliaklasių klasifikavimo galimybes
✅ Atsisiųskite šį cheat sheet, atsispausdinkite ir pakabinkite ant sienos!
✅ Atsisiųskite šį lapelį, išspausdinkite ir prikabinkite prie sienos!
### Argumentavimas
### Argumentacija
Pažiūrėkime, ar galime logiškai pasirinkti skirtingus metodus, atsižvelgdami į turimus apribojimus:
Pažiūrėkime, ar galime pamąstyti apie skirtingus požiūrius atsižvelgiant į turimas sąlygas:
- **Neuroniniai tinklai per sudėtingi**. Atsižvelgiant į mūsų švarius, bet minimalius duomenis ir tai, kad mokymą vykdome lokaliai per užrašų knygeles, neuroniniai tinklai yra per sudėtingi šiai užduočiai.
- **Dviejų klasių klasifikatorius netinka**. Mes nenaudojame dviejų klasių klasifikatoriaus, todėl tai atmeta one-vs-all metodą.
- **Sprendimų medis arba logistinė regresija galėtų veikti**. Sprendimų medis galėtų veikti, arba logistinė regresija daugiaklasiams duomenims.
- **Daugiaklasiai sustiprinti sprendimų medžiai sprendžia kitą problemą**. Daugiaklasiai sustiprinti sprendimų medžiai labiausiai tinka neparametrinėms užduotims, pvz., užduotims, skirtoms sudaryti reitingus, todėl jie mums nėra naudingi.
- **Neuroniniai tinklai yra per sunkūs**. Atsižvelgiant į švarius, bet minimaliai didelius duomenis ir faktą, kad mokymą vykdome vietoje su užrašų knygelėmis, neuroniniai tinklai yra per sunkūs šiai užduočiai.
- **Nenaudojamas dviejų klasių klasifikatorius**. Mes nenaudojame dviejų klasių klasifikatoriaus, taigi „one-vs-all“ metodas netinka.
- **Sprendimų medis arba logistinė regresija gali veikti**. Galėtų tikti sprendimų medis arba logistinė regresija keliaklasiams duomenims.
- **Keliaklasiai stiprinami sprendimų medžiai sprendžia kitokį uždavinį**. Keliakliai stiprinami sprendimų medžiai labiau tinka neparametrinėms užduotims, pvz., reitingų kūrimui, tad mums nėra naudingi.
### Naudojant Scikit-learn
### Naudojant Scikit-learn
Naudosime Scikit-learn analizuoti mūsų duomenis. Tačiau yra daug būdų naudoti logistinę regresiją Scikit-learn. Pažvelkite į [parametrus, kuriuos galima perduoti](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Naudosime Scikit-learn duomenų analizei. Tačiau logistinę regresiją Scikit-learn galima naudoti įvairiais būdais. Pažvelkite į [parametrus, kuriuos reikia perduoti](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Iš esmės yra du svarbūs parametrai - `multi_class` ir `solver` - kuriuos reikia nurodyti, kai prašome Scikit-learn atlikti logistinę regresiją. `multi_class` reikšmė taiko tam tikrą elgesį. Solver reikšmė nurodo, kokį algoritmą naudoti. Ne visi solver gali būti derinami su visomis `multi_class` reikšmėmis.
Iš esmės yra du svarbūs parametrai `multi_class` ir `solver` kuriuos reikia nurodyti prašant Scikit-learn atlikti logistinę regresiją. `multi_class` nustato tam tikrą elgesį. `solver` nurodo, kurį algoritmą naudoti. Ne visi sprendikliai tinka visiems `multi_class` parinkčių deriniams.
Pagal dokumentaciją, daugiaklasio atveju mokymo algoritmas:
Pagal dokumentaciją, keliaklasiu atveju, treniravimo algoritmas:
- **Naudoja one-vs-rest (OvR) schemą**, jei `multi_class` parinktis nustatyta kaip `ovr`
- **Naudoja kryžminio entropijos nuostolį**, jei `multi_class` parinktis nustatyta kaip `multinomial`. (Šiuo metu `multinomial` parinktis palaikoma tik su lbfgs, sag, saga ir newton-cg solver.)
- **Naudoja one-vs-rest (OvR) schemą**, jei `multi_class` nustatyta į `ovr`
- **Naudoja kryžminio entropijos nuostolio funkciją**, jei `multi_class` nustatyta į `multinomial`. (Šiuo metu `multinomial` parinktis palaikoma tik su `lbfgs`, `sag`, `saga` ir `newton-cg` sprendikliais.)"
> 🎓 Čia "schema" gali būti 'ovr' (one-vs-rest) arba 'multinomial'. Kadangi logistinė regresija iš esmės skirta dvejetainiam klasifikavimui, šios schemos leidžia jai geriau tvarkyti daugiaklasio klasifikavimo užduotis. [šaltinis](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 Čia „schema“ gali būti arba `ovr` (one-vs-rest), arba „multinomial“. Kadangi logistinė regresija iš esmės skirta dvejetainiaiems klasifikavimo uždaviniams, šios schemos leidžia geriau tvarkyti keliaklasius uždavinius. [šaltinis](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 "Solver" apibrėžiamas kaip "algoritmas, naudojamas optimizavimo problemoms spręsti". [šaltinis](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 „Solver“ apibrėžiamas kaip „algoritmas, naudojamas optimizacijos problemai spręsti“. [šaltinis](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Scikit-learn siūlo šią lentelę, kad paaiškintų, kaip solver sprendžia skirtingus iššūkius, kuriuos kelia skirtingos duomenų struktūros:
Scikit-learn pateikia lentelę, kurioje paaiškinama, kaip sprendikliai elgiasi su įvairiais duomenų struktūrų iššūkiais:
![solver](../../../../4-Classification/2-Classifiers-1/images/solvers.png)
![sprendikliai](../../../../translated_images/lt/solvers.5fc648618529e627.webp)
## Užduotis - padalyti duomenis
Galime sutelkti dėmesį į logistinę regresiją pirmajam mokymo bandymui, nes neseniai apie ją mokėtės ankstesnėje pamokoje.
Padalykite savo duomenis į mokymo ir testavimo grupes, naudodami `train_test_split()`:
Galime sutelkti dėmesį į logistinės regresijos naudojimą kaip pirmąjį treniravimo bandymą, kadangi tai ką tik peržiūrėjote ankstesnėje pamokoje.
Padalinkite duomenis į mokymo ir testavimo grupes, naudodami `train_test_split()`:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
```
## Užduotis - taikyti logistinę regresiją
## Užduotis - pritaikyti logistinę regresiją
Kadangi naudojate daugiaklasio atvejį, turite pasirinkti, kokią _schemą_ naudoti ir kokį _solver_ nustatyti. Naudokite LogisticRegression su multi_class nustatytu kaip `ovr` ir solver nustatytu kaip `liblinear` mokymui.
Kadangi naudojate keliaklasių atvejį, turite pasirinkti, kokią _schemą_ naudoti ir kokį _sprendiklį_ nustatyti. Naudokite LogisticRegression su keliaklasių nustatymu ir **liblinear** sprendikliu mokymui.
1. Sukurkite logistinę regresiją su multi_class nustatytu kaip `ovr` ir solver nustatytu kaip `liblinear`:
1. Sukurkite logistinę regresiją su multi_class nustatytu į `ovr` ir sprendikliu į `liblinear`:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
@ -163,27 +163,28 @@ Kadangi naudojate daugiaklasio atvejį, turite pasirinkti, kokią _schemą_ naud
print ("Accuracy is {}".format(accuracy))
```
✅ Išbandykite kitą solver, pvz., `lbfgs`, kuris dažnai nustatomas kaip numatytasis.
> Pastaba, naudokite Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) funkciją, kad prireikus suplokštintumėte savo duomenis.
Tikslumas yra geras - daugiau nei **80%**!
✅ Išbandykite kitą sprendiklį, pvz. `lbfgs`, kuris dažnai yra numatytasis
1. Galite pamatyti šio modelio veikimą, išbandydami vieną duomenų eilutę (#50):
> Atkreipkite dėmesį, kad kai reikia, naudokite Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) funkciją duomenims suplokšti.
Tikslumas yra geras virš **80%**!
1. Galite pamatyti, kaip veikia šis modelis, ištestavę vieną duomenų eilutę (#50):
```python
print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
print(f'cuisine: {y_test.iloc[50]}')
```
Rezultatas atspausdinamas:
Rezultatas spausdinamas:
```output
ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
cuisine: indian
```
✅ Išbandykite kitą eilutės numerį ir patikrinkite rezultatus.
1. Gilinantis, galite patikrinti šios prognozės tikslumą:
✅ Išbandykite kitą eilutės numerį ir patikrinkite rezultatus
1. Giliau nagrinėjant, galite patikrinti šio spėjimo tikslumą:
```python
test= X_test.iloc[50].values.reshape(-1, 1).T
@ -195,7 +196,7 @@ Tikslumas yra geras - daugiau nei **80%**!
topPrediction.head()
```
Rezultatas atspausdinamas - Indijos virtuvė yra geriausia spėjimo galimybė, su gera tikimybe:
Rezultatas atspausdintas - geriausias spėjimas yra Indijos virtuvė, su gera tikimybe:
| | 0 |
| -------: | -------: |
@ -205,40 +206,42 @@ Tikslumas yra geras - daugiau nei **80%**!
| korean | 0.017277 |
| thai | 0.007634 |
✅ Ar galite paaiškinti, kodėl modelis yra gana tikras, kad tai Indijos virtuvė?
✅ Ar galite paaiškinti, kodėl modelis yra gana tikras, kad tai yra Indijos virtuvė?
1. Gaukite daugiau informacijos, atspausdindami klasifikacijos ataskaitą, kaip tai darėte regresijos pamokose:
1. Gaukite daugiau detalių atspausdinę klasifikavimo ataskaitą, kaip darėte regresijos pamokose:
```python
y_pred = model.predict(X_test)
print(classification_report(y_test,y_pred))
```
| | tikslumas | atšaukimas | f1-rezultatas | palaikymas |
| ------------ | --------- | ---------- | ------------ | ---------- |
| chinese | 0.73 | 0.71 | 0.72 | 229 |
| indian | 0.91 | 0.93 | 0.92 | 254 |
| japanese | 0.70 | 0.75 | 0.72 | 220 |
| korean | 0.86 | 0.76 | 0.81 | 242 |
| thai | 0.79 | 0.85 | 0.82 | 254 |
| tikslumas | 0.80 | 1199 | | |
| vidurkis | 0.80 | 0.80 | 0.80 | 1199 |
| svertinis vidurkis | 0.80 | 0.80 | 0.80 | 1199 |
| | precision | recall | f1-score | support |
| ------------ | --------- | ------ | -------- | ------- |
| chinese | 0.73 | 0.71 | 0.72 | 229 |
| indian | 0.91 | 0.93 | 0.92 | 254 |
| japanese | 0.70 | 0.75 | 0.72 | 220 |
| korean | 0.86 | 0.76 | 0.81 | 242 |
| thai | 0.79 | 0.85 | 0.82 | 254 |
| accuracy | | | 0.80 | 1199 |
| macro avg | 0.80 | 0.80 | 0.80 | 1199 |
| weighted avg | 0.80 | 0.80 | 0.80 | 1199 |
## 🚀Iššūkis
Šioje pamokoje naudojote išvalytus duomenis, kad sukurtumėte mašininio mokymosi modelį, galintį prognozuoti nacionalinę virtuvę pagal ingredientų seriją. Skirkite laiko perskaityti daugybę Scikit-learn siūlomų galimybių duomenų klasifikavimui. Gilinkitės į „sprendiklio“ (solver) koncepciją, kad suprastumėte, kas vyksta užkulisiuose.
Šioje pamokoje naudojote savo išvalytus duomenis, kad sukurtumėte mašininio mokymosi modelį, galintį prognozuoti nacionalinę virtuvę pagal ingredientų rinkinį. Skirkite laiko perskaityti daugybę variantų, kuriuos Scikit-learn siūlo duomenų klasifikavimui. Gilinkitės į 'solver' sąvoką, kad suprastumėte, kas vyksta užkulisiuose.
## [Po paskaitos testas](https://ff-quizzes.netlify.app/en/ml/)
## Apžvalga ir savarankiškas mokymasis
## Peržiūra ir savarankiškas mokymasis
Pasigilinkite į matematiką, slypinčią už logistinės regresijos, [šioje pamokoje](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Užduotis
Giliau nagrinėkite logistinės regresijos matematiką [šioje pamokoje](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Namų darbai
[Studijuokite sprendiklius](assignment.md)
[Išstudijuokite solverius](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Atsakomybės atsisakymas**:
Š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 naudojant šį vertimą.
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors stengiamės užtikrinti tikslumą, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritiniais atvejais rekomenduojamas profesionalus žmogaus vertimas. Mes neatsakome už jokius nesusipratimus ar neteisingus interpretavimus, kylant iš šio vertimo naudojimo.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,23 +1,23 @@
[![GitHub license](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub licencija](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
[![GitHub prisidėję autoriai](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
[![GitHub problemos](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
[![GitHub pull-užklausos](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
[![PRs laukiami](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
[![GitHub stebėtojai](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
[![GitHub šakos](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub žvaigždės](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 Action (automatizuota ir visuomet atnaujinama)
#### Palaikoma per GitHub Action (automatinis ir visada atnaujintas)
<!-- 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) | [Khmer](../km/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)
[Arabų](../ar/README.md) | [Bengalų](../bn/README.md) | [Bulgarų](../bg/README.md) | [Birmos (Mianmaras)](../my/README.md) | [Kinų (supaprastinta)](../zh-CN/README.md) | [Kinų (tradicinė, Honkongas)](../zh-HK/README.md) | [Kinų (tradicinė, Makao)](../zh-MO/README.md) | [Kinų (tradicinė, Taivanas)](../zh-TW/README.md) | [Kroatų](../hr/README.md) | [Čekų](../cs/README.md) | [Danų](../da/README.md) | [Olandų](../nl/README.md) | [Estų](../et/README.md) | [Suomių](../fi/README.md) | [Prancūzų](../fr/README.md) | [Vokiečių](../de/README.md) | [Graikų](../el/README.md) | [Hebrajų](../he/README.md) | [Hindi](../hi/README.md) | [Vengrų](../hu/README.md) | [Indoneziečių](../id/README.md) | [Italų](../it/README.md) | [Japonų](../ja/README.md) | [Kannadų](../kn/README.md) | [Chmerų](../km/README.md) | [Korėjiečių](../ko/README.md) | [Lietuvių](./README.md) | [Malajiečių](../ms/README.md) | [Malajalių](../ml/README.md) | [Maratų](../mr/README.md) | [Nepaliečių](../ne/README.md) | [Nigerijos pidžinas](../pcm/README.md) | [Norvegų](../no/README.md) | [Persų (Farsi)](../fa/README.md) | [Lenkų](../pl/README.md) | [Brazilų portugalų](../pt-BR/README.md) | [Portugalų (Portugalija)](../pt-PT/README.md) | [Pandžabių (Gurmukhi)](../pa/README.md) | [Rumunų](../ro/README.md) | [Rusų](../ru/README.md) | [Serbų (kirilica)](../sr/README.md) | [Slovakų](../sk/README.md) | [Slovėnų](../sl/README.md) | [Ispanų](../es/README.md) | [Svahilių](../sw/README.md) | [Švedų](../sv/README.md) | [Tagalogų (Filipinų)](../tl/README.md) | [Tamilų](../ta/README.md) | [Telugų](../te/README.md) | [Tailando](../th/README.md) | [Turkų](../tr/README.md) | [Ukrainiečių](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamiečių](../vi/README.md)
> **Norite klonuoti vietoje?**
> **Norite atsisiųsti vietoje?**
>
> Šis saugykla apima daugiau nei 50 kalbų vertimų, kurie žymiai padidina atsisiuntimo dydį. Norėdami klonuoti be vertimų, naudokite riboto ištraukimo funkciją (sparse checkout):
> Šiame saugykloje yra virš 50 kalbų vertimų, kas žymiai padidina atsisiuntimo dydį. Norėdami klonuoti be vertimų, naudokite retinį atsisiuntimą:
>
> **Bash / macOS / Linux:**
> ```bash
@ -40,142 +40,140 @@
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Mes turime Discord mokymosi su dirbtiniu intelektu ciklą, sužinokite daugiau ir prisijunkite prie mūsų [Learn with AI Series](https://aka.ms/learnwithai/discord) nuo 2025 m. rugsėjo 18 - 30 dienos. Gaunate patarimų ir gudrybių kaip naudoti GitHub Copilot duomenų mokslui.
Mes turime vykdomą 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. Ten gausite patarimų ir triukų, kaip naudoti GitHub Copilot duomenų moksle.
![Learn with AI series](../../translated_images/lt/3.9b58fd8d6c373c20.webp)
# Mašinų mokymasis pradedantiesiems - mokymo programa
# Mašininis mokymasis pradedantiesiems mokymo programa
> 🌍 Keliaukite po pasaulį tyrinėdami mašinų mokymąsi per pasaulio kultūras 🌍
> 🌍 Keliaukite po pasaulį, tyrinėdami mašininį mokymąsi per pasaulio kultūras 🌍
„Microsoft“ debesų platformos šalininkai džiaugiasi galėdami pasiūlyti 12 savaičių, 26 pamokų mokymo programą apie **Mašinų mokymąsi**. Šioje programoje sužinosite apie tai, kas kartais vadinama **klasikiniu mašinų mokymusi**, daugiausia naudojant Scikit-learn biblioteką ir vengiant giluminio mokymosi, kuris aprašytas mūsų [AI pradedantiesiems programoje](https://aka.ms/ai4beginners). Derinkite šias pamokas su mūsų ['Duomenų mokslas pradedantiesiems' programa](https://aka.ms/ds4beginners).
Microsoft Cloud Advocates džiaugiasi galėdami pasiūlyti 12 savaičių, 26 pamokų mokymo programą apie **mašininį mokymąsi**. Šioje programoje sužinosite apie tai, ką kartais vadiname **klasikiniu mašininiu mokymusi**, daugiausiai naudodami Scikit-learn biblioteką ir vengdami giluminio mokymosi, kuris aprašytas mūsų [DI pradedantiesiems mokymo programoje](https://aka.ms/ai4beginners). Taip pat derinkite šias pamokas su mūsų ['Duomenų mokslas pradedantiesiems' programa](https://aka.ms/ds4beginners)!
Keliaukite kartu su mumis po pasaulį, pritaikydami šias klasikines technikas duomenims iš įvairių pasaulio sričių. Kiekviena pamoka apima priešpamokinius ir po pamokinių testus, rašytines nurodas, kaip atlikti pamoką, sprendimą, užduotį ir daugiau. Mūsų projektinis mokymosi metodas leidžia mokytis kuriant, tai įrodyta kaip sėkmingas būdas įsisavinti naujus įgūdžius.
Keliaukite kartu po pasaulį, taikydami šias klasikines technikas duomenims iš įvairių pasaulio vietų. Kiekviena pamoka apima prieš ir po pamokos testus, rašytines instrukcijas pamokos užbaigimui, sprendimą, užduotį ir dar daugiau. Mūsų projektinis mokymo metodas leidžia mokytis statant projektus tai įrodytas būdas naujiems įgūdžiams „įsitvirtinti“.
**✍️ Širdingas ačiū 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
**✍️ Širdingi dėkojame 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ū taip pat mūsų iliustratoriams** Tomomi Imura, Dasani Madipalli ir Jen Looper
**🙏 Specialus ačiū 🙏 mūsų Microsoft Studentų Ambasadoriams autoriams, recenzentams 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ū 🙏 Microsoft studentų ambasadoriams autoriams, recenzentams ir turinio prisidėjusiems**, ypač Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ir Snigdha Agarwal
**🤩 Papildomas dėkingumas Microsoft Studentų Ambasadoriams Eric Wanjau, Jasleen Sondhi ir Vidushi Gupta už mūsų R pamokas!**
**🤩 Papildoma padėka Microsoft studentų ambasadoriams Eric Wanjau, Jasleen Sondhi ir Vidushi Gupta už mūsų R pamokas!**
# Pradžia
Sekite šiuos žingsnius:
1. **Daryti šaką (Fork)**: Spauskite mygtuką „Fork“ šio puslapio viršutiniame dešiniajame kampe.
2. **Klonuoti saugyklą**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
1. **Šaknis (fork) saugyklą**: spauskite „Fork“ mygtuką viršutiniame dešiniajame šio puslapio kampe.
2. **Klonavimas (clone)**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [rasite visus papildomus išteklius šiam kursui mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [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)
> 🔧 **Reikia pagalbos?** Patikrinkite mūsų [Trikčių šalinimo vadovą](TROUBLESHOOTING.md) dėl dažniausiai pasitaikančių problemų su diegimu, konfigūracija ir pamokų vykdymu.
> 🔧 **Reikia pagalbos?** Peržiūrėkite mūsų [Gedimų šalinimo gaires](TROUBLESHOOTING.md), kur rasite sprendimus dažniausiai pasitaikančioms problemoms diegiant, nustatant ir vykdant pamokas.
**[Studentai](https://aka.ms/student-page)**, kad naudotumėtės šia programa, šaknikite visą saugyklą į savo GitHub paskyrą ir atlikite užduotis savarankiškai arba grupėje:
**[Studentams](https://aka.ms/student-page)**, norėdami naudotis šia programa, padarykite šaką visam repozitorijui į savo GitHub paskyrą ir mokykitės patys arba grupėje:
- Pradėkite nuo priešpamokinio testo.
- Perskaitykite paskaitą ir atlikite veiklas, sustokite ir apmąstykite kiekvieną žinių patikrinimą.
- Stenkitės kurti projektus suprasdami pamokas, o ne tik paleisdami sprendimo kodą; kodas prieinamas kiekvienos projektinės pamokos `/solution` aplankuose.
- Atlikite po paskaitos testą.
- Įvykdykite iššūkį.
- Pradėkite nuo priešpaskaitinio testo.
- Perskaitykite paskaitą ir atlikite veiklas, sustodami bei apmąstydami kiekvieną žinių patikrinimą.
- Stenkitės kurti projektus suprasdami pamokas, o ne paleisdami sprendimo kodą; vis dėlto tas kodas prieinamas kiekvienos projektinės pamokos `/solution` aplankuose.
- Laikykite po paskaitos testą.
- Įveikite 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 tinkamą PAT įvertinimo šabloną. „PAT“ yra pažangos vertinimo įrankis, kurį pildote gilindamiesi į mokymosi procesą. Taip pat galite reaguoti į kitų PAT, kad galėtume mokytis kartu.
- Baigę pamokos grupę, apsilankykite [Diskusijų lentoje](https://github.com/microsoft/ML-For-Beginners/discussions) ir „mokykitės garsiai“, užpildydami atitinkamą PAT rubriką. 'PAT' yra pažangos vertinimo įrankis, kurį pildote, norėdami pagerinti mokymąsi. Taip pat galite reaguoti į kitus PAT, kad mokytumės kartu.
> Dėl tolimesnio mokymosi 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.
> Tolimesniam mokymuisi rekomenduojame šiuos [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulius ir mokymosi kelius.
**Mokytojams**, mes pateikėme [kelias rekomendacijas](for-teachers.md), kaip naudotis šia programa.
**Mokytojai**, mes įtraukėme [keletą pasiūlymų](for-teachers.md), kaip naudoti šią mokymo programą.
---
## Vaizdo įrašų apžvalgos
## Vaizdo įrašų peržiūros
Kai kurios pamokos pateikiamos trumpais vaizdo įrašais. Visus juos galite rasti tiesiogiai pamokose arba [ML pradedantiesiems grojaraštyje Microsoft Developer YouTube kanale](https://aka.ms/ml-beginners-videos), spustelėję žemiau esančią nuotrauką.
Kai kurios pamokos prieinamos trumpųjų vaizdo įrašų forma. Galite rasti visus juos įterptus pamokose arba [ML pradedantiesiems grojaraštyje Microsoft Developer YouTube kanale](https://aka.ms/ml-beginners-videos) spustelėję žemiau esančią nuotrauką.
[![ML for beginners banner](../../translated_images/lt/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
[![ML pradedantiesiems reklaminis baneris](../../translated_images/lt/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## Susipažinkite su komanda
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
[![Reklaminis vaizdo įrašas](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif sukūrė** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif autorius** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Spustelėkite paveikslėlį aukščiau, norėdami peržiūrėti vaizdo įrašą apie projektą ir jo kūrėjus!
> 🎥 Spustelėkite aukščiau esančią paveikslėlį, jei norite pamatyti vaizdo įrašą apie projektą ir jį sukūrusius žmones!
---
## Pedagogika
Kurdami šią programą pasirinkome du pagrindinius ugdymo principus: užtikrinti, kad ji būtų praktiškai orientuota ir paremta **projektų principais**, ir kad ji apimtų **dažnus testus**. Be to, programa turi bendrą **temą**, kad būtų vientisa.
Kuriant šią programą pasirinkome du pedagoginius principus: užtikrinti, kad ji būtų praktinė, **projektinė** ir kad būtų **dažni testai**. Be to, ši programa turi bendrą **temą**, suteikiančią jai vientisumo.
Užtikrinant turinio suderinamumą su projektais, procesas tampa įdomesnis studentams, o koncepcijų išlaikymas bus pagerintas. Taip pat, mažo spaudimo testas prieš pamoką padeda studentui susikoncentruoti į mokymąsi, o antras testas po pamokos užtikrina papildomą įsisavinimą. Ši programa yra lanksti ir smagi, ją galima atlikti pilnai arba dalinai. Projektai prasideda nuo paprastų užduočių ir baigiasi sudėtingesniais ciklo pabaigoje. Programa taip pat apima pastabą apie realaus gyvenimo ML taikymą, kuri gali būti naudojama kaip papildomi kreditai ar diskusijų pagrindas.
Užtikrinant turinio atitikimą projektams, procesas tampa įdomesnis studentams, o konceptų įsisavinimas geresnis. Be to, mažo svorio testas prieš pamoką nukreipia studentų dėmesį mokytis temos, o antras testas po pamokos užtikrina geresnį įsisavinimą. Programa buvo sukurta lanksti ir linksma, ją galima vykdyti pilnai arba dalimis. Projektai pradžioje yra maži ir tampa vis sudėtingesni per 12 savaičių ciklą. Programoje taip pat pateikiamas priedas apie tikrų pasaulio ML taikymų, kuris gali būti naudojamas kaip papildomas įvertinimas arba diskusijų pagrindas.
> Raskite mūsų [Elgesio kodeksą](CODE_OF_CONDUCT.md), [Prisidėjimo gairės](CONTRIBUTING.md), [Vertimus](..) ir [Trikčių šalinimo](TROUBLESHOOTING.md) taisykles. Laukiame jūsų konstruktyvios grįžtamosios informacijos!
> Raskite mūsų [Elgesio kodeksą](CODE_OF_CONDUCT.md), [Prisidėjimo gaires](CONTRIBUTING.md), [Vertimus](..) ir [Gedimų šalinimą](TROUBLESHOOTING.md). Laukiame jūsų konstruktyvios grįžtamosios informacijos!
## Kiekviena pamoka apima
- neprivalomą eskizo pastabą
- neprivalomą eskizo užrašą
- neprivalomą papildomą vaizdo įrašą
- vaizdo įrašo peržiūrą (tik kai kurios pamokos)
- [priešpamokinį apšilimo testą](https://ff-quizzes.netlify.app/en/ml/)
- [priešpaskaitinį įšilimo testą](https://ff-quizzes.netlify.app/en/ml/)
- rašytinę pamoką
- projektinių pamokų atveju, žingsnis po žingsnio gaires, kaip sukurti projektą
- projekto pamokose žingsnis po žingsnio gidus, kaip sukurti projektą
- žinių patikrinimus
- iššūkį
- papildomą skaitymą
- užduotį
- [po pamokos testą](https://ff-quizzes.netlify.app/en/ml/)
> **Pastaba apie kalbas**: Šios pamokos daugiausia parašytos Python kalba, bet dauguma jų taip pat yra prieinamos R kalba. Norėdami baigti R pamoką, eikite į `/solution` katalogą ir ieškokite R pamokų. Jos turi .rmd plėtinį, kuris reiškia **R Markdown** failą, kuris gali būti apibrėžiamas kaip `kodo blokų` (R ar kitų kalbų) ir `YAML antraštės` (nurodančios, kaip formatuoti rezultatus, pvz., PDF) įterpimas į `Markdown dokumentą`. Tokiu būdu tai tarnauja kaip pavyzdinė autorystės sistema duomenų mokslui, nes leidžia jums sujungti savo kodą, jo rezultatą ir mintis, leidžiant jas užrašyti Markdown formatu. Be to, R Markdown dokumentai gali būti atvaizduojami į įvairius išvesties formatus, tokius kaip PDF, HTML ar Word.
> **Pastaba apie testus**: Visi testai yra laikomi [Quiz App kataloge](../../quiz-app), iš viso 52 testai, kiekviename po tris klausimus. Jie susieti su pamokomis, bet testų programėlę galima paleisti vietoje; vadovaukitės nurodymais `quiz-app` kataloge, kad ją paleistumėte vietoje arba išdėstytumėte Azure.
| Pamokos numeris | Tema | Pamokų grupė | Mokymosi tikslai | Susieta pamoka | Autorius |
| :-------------: | :--------------------------------------------------------: | :-----------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------: |
| 01 | Įvadas į mašininį mokymąsi | [Introduction](1-Introduction/README.md) | Sužinoti pagrindines mašininio mokymosi sąvokas | [Pamoka](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Mašininio mokymosi istorija | [Introduction](1-Introduction/README.md) | Sužinoti šio srities istoriją | [Pamoka](1-Introduction/2-history-of-ML/README.md) | Jen ir Amy |
| 03 | Teisingumas ir mašininis mokymasis | [Introduction](1-Introduction/README.md) | Kokie svarbūs filosofiniai klausimai dėl teisingumo, kuriuos turėtų apsvarstyti mokiniai kurdami ir taikydami MM modelius? | [Pamoka](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Mašininio mokymosi technikos | [Introduction](1-Introduction/README.md) | Kokias technikas MM tyrėjai naudoja kurdami MM modelius? | [Pamoka](1-Introduction/4-techniques-of-ML/README.md) | Chris ir Jen |
| 05 | Įvadas į regresiją | [Regression](2-Regression/README.md) | Pradėti 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 🎃 | [Regression](2-Regression/README.md) | Vizualizuoti ir išvalyti duomenis, ruošiantis MM | [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 🎃 | [Regression](2-Regression/README.md) | Kurti tiesinės ir polinominės 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 🎃 | [Regression](2-Regression/README.md) | Kurti logistinės regresijos modelį | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Internetinė programa 🔌 | [Web App](3-Web-App/README.md) | Kurti internetinę programą, kad naudotumėte savo apmokytą modelį | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Įvadas į klasifikaciją | [Classification](4-Classification/README.md) | Išvalyti, paruošti ir vizualizuoti 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 | Skani Azijos ir Indijos virtuvė 🍜 | [Classification](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 | Skani Azijos ir Indijos virtuvė 🍜 | [Classification](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 | Skani Azijos ir Indijos virtuvė 🍜 | [Classification](4-Classification/README.md) | Kurti rekomendacijų internetinę programėlę naudodami savo modelį | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Įvadas į klasterizaciją | [Clustering](5-Clustering/README.md) | Išvalyti, paruošti ir vizualizuoti 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 🎧 | [Clustering](5-Clustering/README.md) | Tyrinėti K-Means klasterizacijos 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ą ☕️ | [Natural language processing](6-NLP/README.md) | Sužinoti NLP pagrindus kuriant paprastą botą | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Bendros NLP užduotys ☕️ | [Natural language processing](6-NLP/README.md) | Gilinti NLP žinias suprantant bendras užduotis, susijusias su kalbos struktūra | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Vertimas ir nuotaikų analizė ♥️ | [Natural language processing](6-NLP/README.md) | Vertimas ir nuotaikų analizė su Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantiški viešbučiai Europoje ♥️ | [Natural language processing](6-NLP/README.md) | Nuotaikų analizė su viešbučių atsiliepimais 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantiški viešbučiai Europoje ♥️ | [Natural language processing](6-NLP/README.md) | Nuotaikų analizė su viešbučių atsiliepimais 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Įvadas į laiko eilių prognozavimą | [Time series](7-TimeSeries/README.md) | Įvadas į laiko eilių prognozavimą | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Pasaulinis energijos suvartojimas ⚡️ - laiko eilių prognozavimas su ARIMA | [Time series](7-TimeSeries/README.md) | Laiko eilių prognozavimas su ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Pasaulinis energijos suvartojimas ⚡️ - laiko eilių prognozavimas su SVR | [Time series](7-TimeSeries/README.md) | Laiko eilių prognozavimas su parama vektoriniais regresoriais | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Įvadas į stiprinamąjį mokymą | [Reinforcement learning](8-Reinforcement/README.md) | Įvadas į stiprinamąjį mokymą su Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Padėkite Peteriui išvengti vilko! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Stiprinamojo mokymosi sporto salė | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Pasakažas | Realaus pasaulio MM scenarijai ir programos | [ML in the Wild](9-Real-World/README.md) | Įdomios ir atskleidžiančios realaus pasaulio klasikinio MM taikymo programos | [Pamoka](9-Real-World/1-Applications/README.md) | Komanda |
| Pasakažas | Modelių derinimas MM su RAI prietaisų skydeliu | [ML in the Wild](9-Real-World/README.md) | Modelių derinimas mašininio mokymosi srityje naudojant Responsible AI prietaisų skydelio komponentus | [Pamoka](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
- [paskaitos pabaigos testą](https://ff-quizzes.netlify.app/en/ml/)
> **Pastaba apie kalbas**: Šios pamokos daugiausia rašytos Python kalba, tačiau daugelis jų taip pat prieinamos R kalba. Norėdami baigti R pamoką, eikite į `/solution` aplanką ir ieškokite R pamokų. Jos turi .rmd plėtinį, kuris reiškia **R Markdown** failą, kurį galima paprastai apibrėžti kaip `kodo dalių` (R ar kitų kalbų) ir `YAML antraštės` (kuri nurodo, kaip formatuoti išvestis, pvz., PDF) įterpimą į `Markdown dokumentą`. Tokiu būdu tai tarnauja kaip pavyzdinis autorystės pagrindas duomenų mokslui, nes leidžia sujungti jūsų kodą, jo išvestį ir mintis, leidžiant jas užrašyti Markdown formatu. Be to, R Markdown dokumentus galima atvaizduoti į tokias išvesties formas kaip PDF, HTML ar Word.
> **Pastaba apie viktorinas**: Visos viktorinos yra [Quiz App aplanke](../../quiz-app), iš viso 52 viktorinos, po tris klausimus kiekvienoje. Jos susietos iš pamokų, tačiau viktorinų programėlę galima paleisti vietoje; vadovaukitės instrukcijomis `quiz-app` aplanke, kad paleistumėte vietoje arba įdiegtumėte į Azure.
| Pamokos numeris | Tema | Pamokų grupė | 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 š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) | 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 technikos | [Įvadas](1-Introduction/README.md) | Kokias technikas naudoja ML tyrėjai modeliams kurti? | [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) | Vizualizuokite ir išvalykite duomenis pasiruošimui 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 tiesinį ir polinominį 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 logistinė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 programa 🔌 | [Internetinė programa](3-Web-App/README.md) | Sukurkite interneto programą, kad naudotumėte savo apmokytą modelį | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Įvadas į klasifikaciją | [Klasifikacija](4-Classification/README.md) | Išvalykite, paruoškite ir vizualizuokite 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 | Skani Azijos ir Indijos virtuvė 🍜 | [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 | Skani Azijos ir Indijos virtuvė 🍜 | [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 | Skani Azijos ir Indijos virtuvė 🍜 | [Klasifikacija](4-Classification/README.md) | Sukurkite rekomendacijų interneto programą naudodami savo modelį | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Įvadas į klasterizaciją | [Klasterizacija](5-Clustering/README.md) | Išvalykite, paruoškite ir vizualizuokite duomenis; Įvadas į klasterizaciją | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Nige­rijos muzikos skonių tyrinėjimas 🎧 | [Klasterizacija](5-Clustering/README.md) | Ištirkite 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) | Sužinokite NLP pagrindus kurdami paprastą botą | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Dažnos NLP užduotys ☕️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Gilinkite NLP žinias suprasdami dažnas užduotis, reikalingas dirbant su kalbos struktūromis | [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ų 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) | Nuotaikų 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 | ⚡️ Pasaulio energijos vartojimas ⚡️ - laiko eilutės 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 energijos vartojimas ⚡️ - laiko eilutės 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 į stiprinamąjį mokymąsi | [Stiprinamasis mokymasis](8-Reinforcement/README.md) | Įvadas į stiprinamąjį mokymąsi naudojant Q-Mokymą | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Padėkite Petrui išvengti vilko! 🐺 | [Stiprinamasis mokymasis](8-Reinforcement/README.md) | Stiprinamojo mokymosi treniruoklis (Gym) | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Tikri ML scenarijai ir taikymai | [ML laukinėje gamtoje](9-Real-World/README.md) | Įdomūs ir atskleidžiantys realaus pasaulio klasikinio ML taikymai | [Pamoka](9-Real-World/1-Applications/README.md) | Komanda |
| Postscript | ML modelių derinimas naudojant RAI panelę | [ML laukinėje gamtoje](9-Real-World/README.md) | Modelių derinimas mašininiame mokymesi naudojant Responsible AI valdymo pultą | [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
## Prieiga neprisijungus
Šią dokumentaciją galite naudoti neprisijungę, naudodamiesi [Docsify](https://docsify.js.org/#/). Šakninėje katalogo vietoje padarykite šaką (`fork`) arba klonuokite šį repo, [įdiekite Docsify](https://docsify.js.org/#/quickstart) savo vietiniame įrenginyje, tada terminale šio repo šakniniame kataloge įveskite `docsify serve`. Svetainė bus patiekiama 3000 prievade jūsų localhost: `localhost:3000`.
Šią dokumentaciją galite naudoti neprisijungę naudodami [Docsify](https://docsify.js.org/#/). Šaknijate šį repozitoriją, [įdiekite Docsify](https://docsify.js.org/#/quickstart) savo vietinėje mašinoje, tada šio repozitorijos šakniniame aplanke įveskite `docsify serve`. Svetainė bus patiekiama per 3000 prievadą jūsų localhost aplinkoje: `localhost:3000`.
## PDF failai
Raskite kurso programos PDF su nuorodomis [čia](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
Raskite programos PDF su nuorodomis [čia](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Kiti kursai
Mūsų komanda kuria ir kitus kursus! Pažvelkite:
Mūsų komanda kuria ir kitus kursus! Peržiūrėkite:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j pradedantiesiems](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js pradedantiesiems](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
@ -186,53 +184,64 @@ Mūsų komanda kuria ir kitus kursus! Pažvelkite:
[![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)
[![AI agentai pradedantiesiems](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)
[![DI agentai pradedantiesiems](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)
---
### Generatyvinio AI serija
[![Generatyvinis AI 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)
[![Generatyvinis 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)
[![Generatyvinis 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)
[![Generatyvinis 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)
### Generatyvinės DI serija
[![Generatyvinė 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)
[![Generatyvinė 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)
[![Generatyvinė 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)
[![Generatyvinė 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)
---
### Pagrindinis mokymasis
[![ML pradedantiesiems](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)
[![Mokymasis mašinų mokymesis pradedantiesiems](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)
[![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)
[![AI 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)
[![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)
[![Tinklalapių 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)
[![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)
[![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)
[![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 dirbant su AI kartu programavimu](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 DI 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 užstrigote arba turite klausimų apie AI programų kūrimą. Prisijunkite prie kitų mokinių ir patyrusių kūrėjų diskusijose apie MCP. Tai palaikanti bendruomenė, kurioje klausimai yra laukiami ir žinios dalijamos laisvai.
Jei užstringate arba turite klausimų mokydamiesi mašininio mokymosi ar kurdami DI programas, nesijaudinkite — pagalba yra prieinama.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Galite prisijungti prie diskusijų su kitais mokiniais ir kūrėjais, užduoti klausimus ir dalintis savo idėjomis bendruomenei.
- Prisijunkite prie bendruomenės, kad užduotumėte klausimus ir mokytumėtės kartu su kitais
- Aptarkite mašininio mokymosi sąvokas ir projektų idėjas
- Gaukite patarimų iš patyrusių kūrėjų
Palaikanti bendruomenė yra puikus būdas tobulinti savo įgūdžius ir greičiau spręsti problemas.
[Microsoft Foundry Discord bendruomenė](https://discord.gg/nTYy5BXMWG)
Jei susiduriate su klaidomis, gedimais arba turite pasiūlymų patobulinimams, galite taip pat atidaryti **Issue** šiame saugykloje ir pranešti apie problemą.
Norėdami pateikti atsiliepimus apie produktą arba ieškoti jau egzistuojančių bendruomenės įrašų, apsilankykite Kūrėjų forume:
Jei turite produktų atsiliepimų arba klaidų kūrimo metu, apsilankykite:
[![Microsoft Foundry kūrėjų forumas](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)
[![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šų knygeles po kiekvienos pamokos geresniam supratimui.
- Peržiūrėkite užrašų knygutes po kiekvienos pamokos, kad geriau suprastumėte.
- Praktikuokite algoritmų įgyvendinimą savarankiškai.
- Tyrinėkite realius duomenų rinkinius naudodami įgytas žinias.
- Tyrinėkite tikrus duomenų rinkinius naudodami išmoktą medžiagą.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant AI 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ų arba netikslumų. Originalus dokumentas jo gimtąja kalba laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojame naudotis profesionaliu žmogišku vertimu. Mes neatsakome už jokius nesusipratimus ar klaidingas interpretacijas, kylančias 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 stengiamės užtikrinti tikslumą, 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. Esant kritinei informacijai, rekomenduojamas profesionalus žmogaus vertimas. Mes neatsakome už jokius nesusipratimus ar neteisingus aiškinimus, kilusius naudojantis šiuo vertimu.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -90,8 +90,8 @@
"language_code": "my"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:10:40+00:00",
"original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
"translation_date": "2026-04-20T20:16:35+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "my"
},
@ -168,8 +168,8 @@
"language_code": "my"
},
"4-Classification/2-Classifiers-1/README.md": {
"original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b",
"translation_date": "2025-09-05T13:07:34+00:00",
"original_hash": "cb761595e5b6c42b99bb81bd13683311",
"translation_date": "2026-04-20T20:17:55+00:00",
"source_file": "4-Classification/2-Classifiers-1/README.md",
"language_code": "my"
},
@ -552,8 +552,8 @@
"language_code": "my"
},
"README.md": {
"original_hash": "7fb48097f57e680b380cd9aae988d317",
"translation_date": "2026-04-06T17:33:23+00:00",
"original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0",
"translation_date": "2026-04-20T20:14:26+00:00",
"source_file": "README.md",
"language_code": "my"
},

@ -1,136 +1,137 @@
# Scikit-learn အသုံးပြု၍ regression မော်ဒယ် တည်ဆောက်ခြင်း - regression လေးနည်းလမ်း
# Scikit-learn ကို သုံးပြီး regression မော်ဒယ်တစ်ခု တည်ဆောက်ခြင်း - regression နည်းလမ်းလေး မျိုး
## စတားသူမှတ်ချက်
## အစပြုသူအတွက် မှတ်ချက်
Linear regression ကို **ဂဏန်းတန်ဖိုး** (ဥပမာ- အိမ်ဈေးနှုန်း၊ အပူချိန်၊ သို့မဟုတ် ရောင်းအား) ခန့်မှန်းလိုသည့်အခါ အသုံးပြုသည်။
ဒါဟာ input အင်အားများနဲ့ output အကြား ဆက်နွယ်မှုကို အကောင်းဆုံး ကိုယ်စားပြုသော တတ်တရာဟောင်းတစ်ခုကို ရှာဖွေခြင်းဖြင့် အလုပ်လုပ်သည်။
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/)
ဒီသင်ခန်းမှာတော့ မတော်တဆင့် တိုက်ရိုက်ပညာရှင်ကျမ်းများလုပ်ရန်မသိသေးမီ ဆက်စပ် regression နည်းလမ်းများကိုရှာဖွေဖို့မတိုင်မီ အကြောင်းအရာနားလည်မှုအပေါ် အာရုံစိုက်မှာဖြစ်ပါတယ်။
![Linear vs polynomial regression infographic](../../../../translated_images/my/linear-polynomial.5523c7cb6576ccab.webp)
> [Dasani Madipalli](https://twitter.com/dasani_decoded) မှ infographic
> ### [ဒီသင်ခန်းစာကို R မှာလည်း ရနိုင်ပါတယ်!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### နိဒါန်း
## [ချဉ်းကပ်ရေးမေးခွန်း](https://ff-quizzes.netlify.app/en/ml/)
အခုထိ pumpkin ဈေးနှုန်းဒေတာအရေအတွက်နဲ့ regression ဆိုတာ ဘာလဲဆိုတာကို လေ့လာခဲ့ပြီး Matplotlib ဖြင့် ဓာတ်ပုံဆွဲပြီးဖြစ်ပြီဖြစ်ပါသည်။
> ### [ဒီသင်ခန်းကို R ဖြင့်လည်းရနိုင်ပါသည်!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### မိတ်ဆက်
ယခုအခါ ML အတွက် regression ကို နက်နဲစွာ လေ့လာရန် အသင့်ဖြစ်ပါပြီ။ Visualization က ဒေတာကို နားလည်ဖို့ အကူအညီဖြစ်ပေမယ့် Machine Learning ရဲ့ အဓိကအားသာချက်က _မော်ဒယ်များကို လေ့ကျင့်ခြင်း_ မှာ ဖြစ်သည်။ မော်ဒယ်များကို ရှေးဟောင်းဒေတာပေါ် မူတည်၍ အလိုအလျောက် ဒေတာအချိုးအစားတွေကို အတိအကျဖမ်းယူသည်၊ ထို့ကြောင့် မူလမမြင်ဖူးသော ဒေတာအတွက် ခန့်မှန်းချက်များ ဖန်တီးနိုင်သည်။
အခုထိ pumpkin စျေးနှုန်း dataset မှ နမူနာဒေတာများအပေါ် regression အကြောင်း သိရှိဖူးပြီး Matplotlib ဖြင့် အနုညာတစနစ် ကွက်တိ တည်ဆောက်ထားတာကိုကြည့်နိုင်ခဲ့ပါပြီ။
ဒီသင်ခန်းစာမှာ၊ _မူလ linear regression_ နဲ့ _polynomial regression_ ဆိုတဲ့ regression နှစ်မျိုးနဲ့ အခြေခံသင်္ချာနည်းများကို တက်တူးလေ့လာပြီး၊ ဤမော်ဒယ်များဖြင့် pumpkin အမျိုးအစားအလိုက် ဈေးနှုန်းခန့်မှန်းမှု ပြုလုပ်နိုင်မှာ ဖြစ်ပါတယ်။
ယခုမော်ဒယ်သင်ကြားမှုမှာ ML ရဲ့ regression ဆိုတာ ဘယ်လိုလုပ်ဆောင်ကြောင်း နက်ရှိုင်းစွာ လေ့လာမှာဖြစ်ပြီး၊ visualization က ဒေတာကိုနားလည်မှုရဖို့သင့်ကိုကူညီပေးပေမယ့် Machine Learning ရဲ့ အမှန်တကယ် ပြင်းထန်တဲ့အားကို သိမ်းဆည်းထားတဲ့ နေရာက _training models_ ဖြစ်ပါတယ်။ မော်ဒယ်များကို သမိုင်းအချက်အလက်များမှာ လေ့ကျင့်ကာ ဒေတာ ဆက်စပ်မှုများကို အလိုအလျောက် ဖမ်းဆီးနိုင်ပြီး မကြိုက်တတ်နေသေးသော အသစ်သော ဒေတာအတွက် ရလဒ်များခန့်မှန်းနိုင်ပါတယ်။
ဒီသင်ခန်းမှာတော့ _မူလသော linear regression_ နှင့် _polynomial regression_ ဆိုတဲ့ regression အမျိုးအစား နှစ်မျိုးအကြောင်းကောင်းကောင်း နားလည်ကြမယ်၊ နည်းပညာများကို ဖက်ရှင်နည်းလမ်း တချို့နဲ့အတူ။ ဒီမော်ဒယ်တွေက pumpkin စျေးနှုန်းကို ကွဲပြားတဲ့ input အပေါ်မူတည်၍ ကြိုတင်ခန့်မှန်းပေးနိုင်ပါတယ်။
[![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 အကြောင်းအကျဉ်းချုပ် ဗွီဒီယို မျှဝေကြည့်ပါ
> ဒီ သင်ရိုးအတန်းများအတွက် သင်္ချာနည်းပညာဆိုင်ရာ အသိပညာနည်းပါးမှသာ ယူဆောင်ထားပြီး၊ အခြားကဏ္ဍမှလာသော ကျောင်းသားများအတွက် လွယ်ကူစေရန် မှတ်စု၊ 🧮 ဟောပြောချက်များ၊ ပုံများနှင့် အခြားသင်ယူရေးကိရိယာများ ထည့်သွင်းထားသည်။
> ဒီသင်လမ်းညွှန်တစ်ခုလုံးမှာ နည်းနည်းသောသင်္ချာအသိပညာရှိသူ တွေအတွက်နဲ့ အခြားနယ်ပယ်မှလာသော ကျောင်းသားတွေအလွယ်တကူနားလည်စေချင်သောကြောင့် မှတ်ချက်များ၊ 🧮 သင်္ချာခေါ်ဆိုချက်များ၊ ပုံဆွဲနှင့် သင်ယူမှုကိရိယာများ ပါဝင်ပါတယ်။
### ဆော့ရွတ်
### အဆင်သင့်ဖြစ်မှု
ယခုအခါ စိမ်းလန်းသစ်ဆန်းသော pumpkin data ဖွဲ့စည်းမှုနဲ့ ရင်းနှီးပြီး ဖြစ်နေသည်။ သင်တို့အတွက် ဒီသင်ခန်းစာ _notebook.ipynb_ ဖိုင်ထဲတွင် ကြိုတင်တင်ထားပြီး သန့်ရှင်းထားပါသည်။ ဖိုင်အတွင်းမှာ pumpkin ဈေးနှုန်းကို bushel အလိုက် ပြသထားပါသည်။ Visual Studio Code ၏ kernel တွင် ဒီ notebook များကို တည်ဆောက်၍ စမ်းသပ်နိုင် ဖို့ သေချာစေပါ။
ယခုအချိန်မှာ pumpkin ဒေတာဖွဲ့စည်းမှုနှင့် မိတ်ဆက်ထားသင့်ပါတယ်။ ဒေတာကို ဒီသင်ခန်း ရဲ့ _notebook.ipynb_ ဖိုင်ထဲမှာ ရှိပြီး ရှင်းလင်းပြီးသား ဖြစ်ပါတယ်။ ဖိုင်ထဲမှာ pumpkin စျေးနှုန်းကို bushel တစ်ခုခုအလိုက် အသစ်သော ဒေတာဇယားတစ်ခုအဖြစ် ပြထားပါသည်။ Visual Studio Code ၏ kernel များမှာ ဒီ notebook များကို ပြေးနိုင်ခြင်းကို သေချာစေရပါ။
### ပြင်ဆင်မှု
သတိပေးချက်အဖြစ်, ဒီဒေတာကို လာယူတယ်ဆိုတာ ဒေတာအပေါ် မေးခွန်းတွေ ထုတ်ဖို့ပါပဲ။
အသိပေးခြင်းအနေဖြင့် ဒီဒေတာကို ဖတ်ယူရခြင်းသည် ဒေတာကို ဖြေရှင်းရန် ရည်ရွယ်သည်ကို သတိပြုပါ။
- Pumpkin များ ဝယ်ဖို့ အချိန်ကောင်းဆုံး ဘယ်လိုဆိုတာ?
- Miniature pumpkin များ case တစ်ခုမှာ ဘယ်နှစ်နှုန်းထိ အရောင်းရှိမလဲ?
- Pumpkin half-bushel အိတ်လား ဒါမှမဟုတ် 1 1/9 bushel ပုံးလား ဝယ်သင့်မလား?
ဒီဒေတာကို ဆက်လက် ရှာဖွေကြမယ်။
- Pumpkin များဝယ်ရောက်ရန် အကောင်းဆုံးအချိန်က ဘယ်အချိန်လဲ?
- မိသားစုတွေအတွက် ထုပ်ပိုးထားတဲ့ အသေးစား pumpkin တစ်အိတ် စျေးနှုန်း ဘယ်လောက်လဲ?
- ထုတ်ပိုးမှု များကို half-bushel basket သို့မဟုတ် 1 1/9 bushel ဘောက်စ်ဖြင့် ဝယ်သင့်ပါသလား?
ဒီဒေတာကို ဆက်လက်စူးစမ်းကြည့်ရအောင်။
ယခင်သင်ခန်းစာတွင် pandas data frame တစ်ခု တည်ဆောက်ပြီး မူလ dataset မှအချိုးအစားကို bushel အလိုက် တူညီအောင် ပြင်ဆင်ထားသည်။ သို့သော် အဲ့ဒီနည်းဖြင့် datapoint ၄ ရာခိုင်နှုန်းတိုင်သာ ရခဲ့ပြီး ရာသီဆောင်းလများအတွက်သာ ရှိခဲ့သည်။
ပြီးခဲ့သည့်သင်ခန်းတွင် Pandas ဒေတာဖွဲ့စည်းမှု တစ်ခုကို ဖန်တီးပြီး မူရင်း dataset မှ အပိုင်းတစ်ပိုင်းဖြင့် ပြည့်စုံစွာ ပြင်ဆင်ပြီး စျေးနှုန်းကို bushel တစ်ခုအလိုက် စံပြန်းပြုလုပ်ခဲ့သည်။ သို့သော်၊ ဒီလိုလုပ်ခြင်းမကြောင့် datapoint ၄၀၀ ခန့် သာစုစည်းနိုင်ခဲ့ပြီး ရာသီဥတု ရာသီကာလများအတွက်သာ ဖြစ်ပါသည်။
ဒီသင်ခန်းစာအတွက် အသစ်တင်ထားသော notebook ထဲရှိ ဒေတာကို ကြည့်ပါ။ ဒေတာကို ကြိုတင်တင်ထားပြီး အစပိုင်း scatterplot တစ်ခုကို month data ပြရန် ဖော်ပြထားသည်။ ဒေတာအတွက် ပိုမိုအသေးစိတ် ရယူဖို့ သန့်ရှင်းမှုပိုပြီး လုပ်သင့်သလို ဖြစ်နိုင်သည်။
ဒီသင်ခန်းတွင် ပါဝင်သည့် notebook သို့ လေ့လာကြည့်ပါ။ ဒေတာကို အကြိုဖတ်ထားပြီး စတင် scatterplot တစ်ခုကို month အချက်အလက်များ ဖော်ပြထားပါတယ်။ နောက်ထပ်သန့်ရှင်းစင်ကြယ်မှုများအားဖြင့် ဒေတာ၏ သဘာဝအကြောင်းအရာ များကို အသေးစိတ် သိရှိနိုင်ဖို့ ကြိုးစားကြည့်ရအောင်။
## Linear regression လိုင်းတစ်ခု
## Linear regression လိုင်း
သင် သင်ခန်းစာ ၁ တွင် သင်တန်းရဲ့ ရည်ရွယ်ချက်မှာ ပြောင်းလဲမှု များကိုတစ်ခုချင်းစီ ဘယ်လို ဆက်နွယ်ကြောင်း ပြရန် တိုက်ရိုက်လမ်းကြောင်းဖော်လိုသည်ဆိုတာ ဖြစ်ကြောင်း သိရသည်။
သင်သိရှိခဲ့သည့် Lesson 1 မှာ၊ linear regression ရဲ့ ရည်ရွယ်ချက်မှာ အောက်ပါအချက်များအတွက် လိုင်းတစ်ခု အကောင်းဆုံး ဆွဲဆောင်နိုင်ခြင်း ဖြစ်သည် #
- **ဇာတ်ကောင်များ ဆက်နွယ်မှု ပြသခြင်း**။ မတူညီသော ဇာတ်ကောင်များအကြား ဆက်နွယ်မှု ပြသခြင်း။
- **ခန့်မှန်းခြေပြုလုပ်ခြင်း**။ ပြီးခဲ့တဲ့ ဒေတာဇယားအပေါ် ခန့်မှန်းမှုပြုလုပ်၍ ဒေတာအသစ်အပေါ် ရသရွယ်မှု ပြုခြင်း။
- **အပြောင်းအလဲဆက်စပ်မှုကို ဖော်ပြခြင်း**။ အပြောင်းအလဲများကြား ဆက်သွယ်မှု ဖော်ပြရန်
- **ခန့်မှန်းချက်လုပ်ခြင်း**။ ဒေတာသစ်အချက်များ အတွင်း ဒီလိုင်းနှင့် ဆက်စပ်နေမည့်နေရာကို တိကျစွာ ခန့်မှန်းရန်
**Least-Squares Regression** သေချာမှုအတွက် ဒီလိုလိုင်းကို ဆွဲတယ်။ "Least-Squares" ဆိုတာ သက်ဆိုင်ရာ မော်ဒယ်အတွင်း ဒေတာမှားယွင်းမှုတစ်ခုချင်းစီအတွက် မူလိုင်ရာမှားယွင်းမှုကို လျှော့ချဖို့ လုပ်ငန်းစဉ်တစ်ခု ဖြစ်ပါသည်။ ဒေတာအချက်လေးတစ်ခုချင်းစီအတွက် စစ်မှန်တဲ့အချက်နဲ့ regression လိုင်းအကြား လျှောက်လွှာဖြင့်ခွဲခြမ်းဖြတ်တောက်မှု (residual) ကိုတိုင်းတာပါသည်။
**Least-Squares Regression** ကိုသုံး၍ ဒီလိုင်းဆွဲခြင်း ပုံမှန်ဖြစ်သည်။ "Least-Squares" ဆိုသည်မှာ မော်ဒယ်အတွင်း စုစုပေါင်း အမှား(အချက်အလွဲ) များအား လျော့နည်းအောင်လုပ်ခြင်းလုပ်ငန်းစဉ်ဖြစ်သည်။ တစ်ခုချင်းစီသော ဒေတာအချက်များအတွက် ရှိနေသည့် စစ်မှန်သော အချက်နှင့် regression လိုင်းအကြား အလျားလိုင်းအကွာအဝေး (residual လို့ခေါ်သည်) ကိုတိုင်းတာသည်။
ဒီအကွာအဝေးကို အောက်ပါ အကြောင်းညီညွတ်မှု နှစ်မျိုးကြောင့် ရေတွက်ပါသည်-
အဆိုပါကွာခြားမှုများကို squared (ချယောင်းခြင်း) ကျင့်သုံးစို့ခုနှစ်ကြောင်းမှာ -
1. **အချက်အလက် ဒေသအလိုက် မျှတခြင်း**: -5 မှာ အမှားတစ်ခုနဲ့ +5 မှာ အမှားတစ်ခုကို တူညီသဘောထားစေဖို့ ရည်ရွယ်သည်။ ကွေးသွားခြင်းအားဖြင့် တန်ဖိုးများအားလုံး မရှိမဖြစ် အပေါင်းလိုက် ဖြစ်စေသည်။
1. **ကြီးသေးမှုကို ဦးစားပေးရန်**။ ကွာခြားချက် -၅ ကို +၅ နှင့်တူညီစေရန်လိုသည်။ squared သောကြောင့် အဖေါ်အဖြစ်မှ အားလုံးကို အပလာတန်ဖိုးပြောင်းလဲသည်။
2. **ပြင်မှာရှိနေသောမှားယွင်းမှုများကို ဒဏ်ရာပေးခြင်း**: အကြီးမားဆုံးအမှားများကို ပိုပြီး အာရုံစိုက်စေပြီး၊ လိုင်းသည် အဲ့ဒီဒေတာများနီးပါးမှာ ပိုနီးစပ်အောင် ဖိအားပေးသည်။
2. **ထူးကွာခြားချက်များကို ပိုဆိုးစေခြင်း**။ squared ခြင်းမျိုးက လွယ်ပေါ့ကွန်ယက်အမှားများအားပိုမိုထိခိုက်စေပြီး လိုင်းကို အလွဲကြီးနေသော ဒေတာအချက်များနီးစပ်ရန် မျှော်လင့်စေသည်။
ခုနောက်ဆုံး အခြေခံထားတဲ့ squared error သုံးပြီး ပြီးဆုံးရာ တန်ဖိုး၏ စုစုပေါင်းကို တွက်ချက်သည်။ အဲ့ဒီစုစုပေါင်းတန်ဖိုး အနည်းဆုံး ရှိတဲ့ လိုင်းကို ရှာဖွေပါတယ်။ဒါ့ကြောင့် "Least-Squares" လို့ခေါ်ကြတာဖြစ်ပါတယ်။
ပြီးမှ အားလုံးကို စုပေါင်းသည်။ ကျွန်ုပ်တို့ရည်မှန်းတဲ့လိုင်းက ဖော်ပြထားတဲ့ စုစုပေါင်း 성ရေမှာ အနည်းဆုံးဖြစ်မည့် လိုင်းဖြစ်ရမည်။ ဒါကြောင့် "Least-Squares" လို့ ခေါ်ပါတယ်။
> **🧮 သင်္ချာအပိုင်း ပြပါ**
>
> ဒီလိုင်းကို _line of best fit_ လို့ခေါ်ပြီး [တစ်ခုတည်းသောဆွဲဆန့် regression ဆိပ်ကမ်း](https://en.wikipedia.org/wiki/Simple_linear_regression) ဖြင့်ဖော်ပြနိုင်ပါတယ်။
>
> **🧮 သင်္ချာပြပါ**
>
> ဒီလိုင်းကို _line of best fit_ လို့ခေါ်ပြီး [သင်္ချာဆိုင်ရာ ပုံစံဖြင့်](https://en.wikipedia.org/wiki/Simple_linear_regression) ဖော်ပြနိုင်သည် -
>
> ```
> Y = a + bX
> ```
>
> `X` သည် 'အကြောင်းပြချက် ပြောင်းလဲမှု' ကို ဆိုလိုသည်။ `Y` သည် 'ဘယ်လိုပြောင်းလဲမှု ထိခိုက်သည်' ကို ဆိုလိုသည်။ လိုင်း၏ အလျားညီသည် `b` ဖြစ်ပြီး `a` သည် y-intercept ဖြစ်ပြီး `X = 0` ဖြစ်သောအခါ `Y` တန်ဖိုးဖြစ်သည်။
>
> `X` မှာ 'ရှင်းလင်းပြဿနာ ပြသသူ' (explanatory variable) ဖြစ်ပြီး `Y` ဟာ 'တာဝန်ခံပြဿနာ' (dependent variable) ဖြစ်သည်။ လိုင်း၏ စေ့ကွက် (slope) ကို `b` ဟုခေါ်ပြီး `a` သည် y-intercept ဖြစ်ပြီး `X=0` ဖြစ်စဉ်အတွင်း `Y` ရဲ့တန်ဖိုးကို ဆိုလိုသည်။
>
>![calculate the slope](../../../../translated_images/my/slope.f3c9d5910ddbfcf9.webp)
>
> ပထမဦးဆုံး slope `b` ကိုတွက်ချက်ပါ။ infographic ကို [Jen Looper](https://twitter.com/jenlooper) ဖန်တီးသည်။
> ပထမဆုံး slope `b` ကိုတွက်ပါ။ [Jen Looper](https://twitter.com/jenlooper) ရေး infographic
>
> နောက်ထပ် ရှင်းလင်းရန်၊ pumpkin data အရ "လစဉ် တစ် bushel အတွက် pumpkin ဈေးဖော်ပြချက် ခန့်မှန်းပါ" ဆိုသည်မှာ `X` သည် ဈေးနှုန်းကို ဆိုလိုပြီး `Y` သည် အရောင်းလကို ဆိုလိုသည်။
> တခြားစကားများဖြင့် ပြောရမယ်ဆိုရင်၊ ကျွန်ုပ်တို့၏ pumpkin ဒေတာ မူလ မေးခွန်းအား "လစဉ် bushel တစ်ခုအတွက် pumpkin စျေးနှုန်းကို ခန့်မှန်းပါ" ဆိုပါက `X` သည်စျေးနှုန်းကို ကိုယ်စားပြုပြီး `Y` သည် အရောင်းလကို ကိုယ်စားပြုပါသည်။
>
>![complete the equation](../../../../translated_images/my/calculation.a209813050a1ddb1.webp)
>
> Y တန်ဖိုးကိုတွက်ချက်ပါ။ သင် $4 လောက်ပေးထားရင် April လဖြစ်မယ်! infographic ကို [Jen Looper](https://twitter.com/jenlooper) ဖန်တီးသည်။
> Y ကို တွက်ချက်ပါ။ $4 လောက်ပေးဝယ်ရင် April လို့ မှတ်ပါ! [Jen Looper](https://twitter.com/jenlooper) infographic
>
> ဒီလိုင်းကိုတွက်ချက်ရာတွင် slope ကို ဖော်ထုတ်ပြီး၊ intercept (သို့) `X = 0` ဖြစ်စဉ် Y တန်ဖိုးရှိရာနေရာတိုက်ရိုက် ကိုဖော်ပြရပါမယ်။
> ဒီလိုင်း တွက်ချက်ရာမှာ slope အပြင် y-intercept (ဆိုလိုသည်မှာ `X=0` ဖြစ်ဆုံးသော အချိန် `Y` တည်ရှိရာ နေရာ) ကို အလေးပေးဆင်ခြင်း လိုအပ်သည်။
>
> ဤတန်ဖိုးများထုတ်ယူနည်းကို [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) ဆိုက်မှာ တွေ့နိုင်ပြီး၊ [Least-squares ကိရိယာ](https://www.mathsisfun.com/data/least-squares-calculator.html) မှာလည်း နံပါတ်များ၏ သက်ရောက်မှုကို ကြည့်ရှုနိုင်သည်
> [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) ဝက်ဘ်ဆိုက်တွင် တန်ဖိုးများ တွက်ချက်နည်းကို ကြည့်ရှုနိုင်ပါတယ်။ နံပါတ်များ၏ တန်ဖိုးအစုံ မျိုး မျက်နှာပြင်ပေါ် မျဉ်းတွေလမ်းကြောင်းကို ရှုမျက် မိတ်ဆက်ရန် [Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) ကိုလည်း သွားကြည့်ပါ
## ဆက်စပ်မှု
## Correlation
နားလည်ရန် လိုအပ်သော အခြား အသုံးအနှုန်းမှာ given X နဲ့ Y အကြားရှိ **Correlation Coefficient** ဖြစ်သည်။ Scatterplot တစ်ခုဖြင့် ဒီ coefficient ကို မြန်ဆန်စွာ ဓာတ်ပုံဆွဲကြည့်နိုင်သည်။ တိကျသွားသော အချက်များ စီစဉ်ရိုက်ထားသော plot တွင် Correlation အမြင့်ရှိပြီး၊ အချက်များကြားကွဲဝေးနေသော scatterplot တွင် Correlation နည်းပါးသည်။
နောက်တစ်ခု နားလည်ရန် လိုအပ်သော စကားလုံးမှာ X နဲ့ Y တန်ဖိုးများအတွက် **Correlation Coefficient** ဖြစ်သည်။ scatterplot တစ်ခုမှာ ချက်ချင်း ဒီ coefficient ကို မြင်တွေ့နိုင်သည်။ points များ စည်းရုံး၍ စစ်မှန်တဲ့တိုင်းဟာ correlation မြင့်ပြီး ၊ scatter များမရှိပဲ ရှုပ်ထွေးသော scatter က correlation နည်းသည်။
Linear regression မော်ဒယ်က Correlation Coefficient မြင့်မား (0 ထက် 1 နီးစပ်သော) ဖြစ်စေရန် Least-Squares Regression နည်းပြုလုပ်ခြင်းဖြင့် တည်ဆောက်သည်။
ကောင်းမွန်သော linear regression မော်ဒယ် အနေနဲ့ Least-Squares Regression နည်းဖြင့် correlation coefficient တန်ဖိုးဟာ 0 ထက် 1 အနီးကပ် ဖြစ်သည်။
✅ ဒီသင်ခန်းစာ ပါ Notebook ကို Run လိုက်ပြီး Month နဲ့ Price ရဲ့ scatterplot ကို ကြည့်ပါ။ Pumpkin ရောင်းအားတွင် Month နဲ့ Price ဆက်နွယ်မှုမြင့်မား/နည်းပါးသလား? ဒါမှမဟုတ် `Month` ကျော်ပြီး *နှစ်အတွင်းရက်* နဲ့ ခန့်မှန်းပါက ဘယ်လို ပြောင်းလဲသလဲ?
✅ ဒီသင်ခန်းထောက်ခံ notebook ကို run ပြီး Month နှင့် Price scatterplot ကို ကြည့်ပါ။ Pumpkin အရောင်းအတွက် Month နှင့် Price အချက်များတွင် သင့်ရဲ့ scatterplot တွင် အမြင်ဖြင့် correlation မြင့်မမှန်သလဲ? `Month` အစား *day of the year* (နှစ်အစဥ်က လနေ့ရေ) သုံးပါက ပြောင်းလဲမှုရှိပါသလား?
အောက်ပါ code မှာ `new_pumpkins` data frame ကို ရယူထားပြီး ဆက်သွယ်မှု ရှိတယ်လိုထင်ရတယ်။
အောက်က code မှာ `new_pumpkins` ဆိုတဲ့ data frame တစ်ခုရရှိထားတယ်ဆိုပြီး ထပ်မံယူဆမယ် -
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> ဒေတာသန့်ရှင်းမှု ကိစ္စအတွက် code ကို [`notebook.ipynb`](notebook.ipynb) တွင် ရနိုင်သည်။ ယခင်သင်ခန်းစာကဲ့သို့ သန့်ရှင်းမှု လုပ်ဆောင်ပြီး `DayOfYear` column ကို အောက်ပါ အထူးဖော်ပြချက်ဖြင့် တွက်ချက်ထားသည်။
> ဒေတာတိုက်ရိုက် သန့်ရှင်းဖို့ code ကို [`notebook.ipynb`](notebook.ipynb) မှာတွေ့နိုင်ပါတယ်။ ယခင်သင်ခန်းတွင် အတူတူ သန့်ရှင်းခြင်း လုပ်ဆောင်ပြီးပြီး၊ `DayOfYear` ကော်လံကို အောက်ပါ ဖော်ပြချက်အတိုင်း တွက်ချက်ထားပါတယ် -
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Linear regression ရဲ့ သင်္ချာနောက်ခံကို နားလည်ပြီးရင်တော့ ဟုတ်တယ် Regression မော်ဒယ်တစ်ခုဖန်တီးပြီး ဘယ် package က pumpkin ရဲ့ စျေးနှုန်းအကောင်းဆုံးမျိုး ဖြစ်မလဲ ခန့်မှန်းကြည့်မယ်။ လူတစ်ယောက် holiday pumpkin patch အတွက် ရောင်းဝယ်တဲ့ အချိန်မှာ package များကို မှန်ကန်စွာ ဝယ်ယူဖို့ အကြံပေးရန်လိုလိမ့်မယ်။
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%"/>
ဒါက ဆက်စပ်မှုရှိစေသင့်ကြောင်း ပြထားပြီး `Month` နဲ့ `Price` အကြား သို့မဟုတ် `DayOfYear` နဲ့ `Price` အကြား ဆက်နွယ်မှု မော်ဒယ်တည်ဆောက်ဖို့ ကြိုးစားကြည့်နိုင်သည်။ အောက်တွင် ယခုဆက်နွယ်မှုကို ပြသသည့် scatterplot ပါ -
ဒါက correlation ရှိကြောင်း အဆိုပြုရာ၊ `Month` နဲ့ `Price` သို့မဟုတ် `DayOfYear` နဲ့ `Price` ဆက်နွယ်မှု ထောက်ထားရန် linear regression မော်ဒယ် လေ့ကျင့်ကြည့်နိုင်ပါတယ်။ အောက်မှာ scatterplot တစ်ခု ရှိပြီး "Day of Year" နှင့် "Price" ဆက်နွယ်မှုကို ဖေါ်ပြထားပါတယ် -
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/my/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/my/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
`corr` function သုံး၍ ဆက်စပ်မှုကြည့်ပါ -
`corr` function ကိုသုံးပြီး correlation ရှိ/မရှိ စစ်ဆေးကြည့်ပါ -
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
အခြေအနေသည် correlation နည်းပါးသည်ကို လေ့လာရသည်၊ `Month` အတွက် -0.15၊ `DayOfMonth` အတွက် -0.17 ဖြစ်သော်လည်း pumpkin အမျိုးအစားအလိုက် group လည်းရှိသည်။ ဒီ hypothesis မှန်ကန်ရန် တစ်ခုချင်းစီကို အခြားစိတ်ကြည့်အရောင်အားဖြင့် scatter ပြကြမည်။ `scatter` function ထဲမှာ `ax` parameter ပေးပြီး နေရာတူမှန်တဲ့ ဂရပ် ဖော်ရန် -
Correlation က အသေးစားဖြစ်ပြီး `Month` အပေါ်မှာ -0.15, `DayOfMonth` အပေါ်မှာ -0.17 ဖြစ်သော်လည်း ခိုင်မာသော ဆက်နွယ်မှုတစ်ခုရှိနိုင်သည်။ Pumpkin အမျိုးအစားနှင့် သက်ဆိုင်သော စျေးနှုန်း အုပ်စုကွဲများရှိပါသည်။ အဲ့ဒီအကြောင်းကို မူတည်ပြီး pumpkin အမျိုးအစားတွေ မတူညီတဲ့အရောင်နဲ့ scatterplot ချထားကြည့်ပါ။ `scatter` function ကို `ax` parameter ဖြင့် အသုံးပြု၍ တစ်ခုတည်းရေးကွက်ပေါ်မှာ အချက်အားလုံးကို ပုံဖော်နိုင်သည် -
```python
ax=None
@ -139,114 +140,114 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/my/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/my/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
စစ်ဆေးမှုချင်းရန် အမျိုးအစားပေါ် မူတည်၍ ဈေးနှုန်းထက် ရောင်းတော့မည့်နေ့ရက် ပိုမိုသက်ရောက်မှုရှိသည်ဟု တွေ့ရှိသည်။ အပြည့်အစုံ ကြည့်ရန် -
စုံစမ်းတွေ့ရှိချက်အရ အမျိုးအစားဟာ စျေးနှုန်းမှာ နေရာအများကြီးသက်ရောက်စေပြီး အရောင်းရက်စွဲထက် ပိုအရေးကြီးသည်။ Bar graph ဖြင့် ထောက်ပြထားသည် -
```python
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%" />
<img alt="Bar graph of price vs variety" src="../../../../translated_images/my/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
နေ့ရက် သက်ရောက်မှုကို တစ်မျိုးတည်း pumpkin အမျိုးအစား 'pie type' အပေါ် ဦးတည်လျှောက်လဲကြည့်ပါ။
ယခုအချိန်မှာ pumpkin အမျိုးအစားတစ်မျိုးဖြစ်တဲ့ 'pie type' မှာ ကန်တော့လိုက်ပြီး အရောင်းရက်စွဲက စျေးနှုန်းမှာ သက်ရောက်မှု သိရှိကြည့်ပါ -
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
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%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/my/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
`Price`ှင့် `DayOfYear` အကြား correlation ကို `corr` function ဖြင့်တွက်လျှင် `-0.27` သို့မဟုတ် အနီးပါး ဖြစ်ပြီး ဖြစ်လာသည်မှာ သင်တန်းတက်ရန် ပြုလုပ်ယုံကြည်ရပါသည်။
`Price`ဲ့ `DayOfYear` အကြား correlation တွက်ချက်ရာ `corr` function သုံး၍ -0.27 ခန့်ရပြီး predictive model လေ့ကျင့်ရန် သေချာသည့် နေရာဖြစ်သည်။
> Linear regression မော်ဒယ် လေ့လာဖို့ မတိုင်မီ ဒေတာ သန့်ရှင်းမှုအတိုင်းအတာ ပြုလုပ်ပါ။ Linear regression သည် information ကျန်ရှိမှုများ (missing value) ဖြင့် မကောင်းဘူး၊ ထို့ကြောင့် ခြိမ်းခြောက်မှုရှိသော cell များကို ဖယ်ရှားပါ။
> Linear regression မော်ဒယ် လေ့ကျင့်မှုမတိုင်ခင် ဒေတာ အပြည့်အဝ သန့်ရှင်းထားတာ အရေးကြီးသည်။ Missing values တွေ အနေနှင့် မရှိမဖြစ်လိုအပ်သည်။
> ထို့ကြောင့် ဟိုခွက်ကွက်တွေ ပယ်ဖျက်သင့်ပါတယ် -
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
အခြားနည်းလမ်းအနေနှင့် အလွတ်ရှိနေသောတန်ဖိုးများကို အဲဒီကော်လံရဲ့ ပျမ်းမျှတန်ဖိုးနဲ့ ဖြည့်စွက်နိုင်ပါတယ်။
တစ်ခြားနည်းဖြင့် အတားအဆီးရှိသော ထောင့်များကို အထူးအတွက် များ၏ ပျမ်းမျှတန်ဖိုးဖြင့် ဖြည့်တင်းနိုင်သည်။
## ရိုးရှင်းသော Linear Regression
## Simple 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 နဲ့ Polynomial Regression အကြောင်း နိဒါန်းဗီဒီယိုကြည့်ရန်ဓာတ်ပုံကို နှိပ်ပါ။
> 🎥 အပေါ်ဓာတ်ပုံကို နှိပ်ပြီး Linear နှင့် Polynomial Regression အကြောင်း အကျဉ်းဗွီဒီယို ကြည့်ပါ။
Linear Regression မော်ဒယ် သင်တန်းတက်ဖို့ **Scikit-learn** library ကို အသုံးပြုမည်။
Linear Regression မော်ဒယ် လေ့ကျင့်ရန် **Scikit-learn** ကို အသုံးပြုမည်ဖြစ်သည်။
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
input တန်ဖိုးများ (features) နှင့် အလားအလာ output (label) ကို numpy array တွဲ ဘာသာပြန်ထားပါတယ်။
input တန်ဖိုးများ (features) နဲ့ output ရလဒ် (label ကို) များကို numpy array များအဖြစ် သီးခြားခွဲသည် -
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> input data ကို Linear Regression package သဘောကျစေရန် `reshape` လုပ်ရန် ဖြစ်သည်။ Linear Regression ဟာ 2D-array အနေဖြင့် input လက်ခံပြီး array ၏ တန်းတစ်တန်းစီမှာ input feature တစ်ခုစီ ပါဝင်ရမည်။ ကျွန်ုပ်တို့မှာ input တစ်ခုသာရှိသဖြင့် N×1 အမျိုးအစား array လိုအပ်သည်။
> Linear Regression ကို သေချာနားလည်ဖို့ input data ကို `reshape` ပြောင်းတာ ဆိုင်းလိုင်းတစ်ခုသည် 2D-array ဖြစ်ရမည်ဖြစ်သည်။ input feature vector တစ်ခုချင်းစီသည်တန်းတစ်ကြောင်းတွင် ရှိရပါမည်။ ဒါကြောင့်၊ input တွေက တစ်ခုတည်းပါ ကနေ N×1 ရောဂါရှိသော array ဖြစ်အောင် ပြင်ထားရတယ်။
ထို့နောက် data ကို train နှင့် test dataset များခွဲခြားမယ်၊ သင်တန်းပြီးတဲ့နောက် မော်ဒယ်ကို စစ်ဆေးနိုင်ရန် ဖြစ်ပါတယ်။
ပြီးနောက် train နှင့် test data များ ခွဲရန် လိုအပ်သည်။ မော်ဒယ်ကို train ပြီးနောက် ဝင်ရောက် စစ်ဆေးနိုင်စေရန်ဖြစ်ပါသည်။
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
နောက်ဆုံး Linear Regression မော်ဒယ် အတွက် training ကို နှစ်ကြောင်း ကုတ်ဖြင့် ပြုလုပ်နိုင်ပါသည်။ `LinearRegression` object ကိုသတ်မှတ်ပြီး `fit` method ဖြင့် data ကို လေ့ကျင့်သည်။
နောက်ဆုံး အမှန်တကယ် Linear Regression မော်ဒယ် လေ့ကျင့်ခြင်း code နှစ်ကြောင်းသာ လိုအပ်သည်။ `LinearRegression` သို့ အသင့်သတ်မှတ်ပြီး `fit` method ဖြင့် လေ့ကျင့်သည်။
```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_` မှတဆင့် ဝင်ရောက်ကြည့်ရှုနိုင်ပြီး၊ ကျွန်ုပ်တို့ကိစ္စတွင် ၂၁ အနီးဖြစ်ပြီး၊ ၎င်းသည် နှစ်အစောပိုင်းတွင် စျေးနှုန်းကို ဖော်ပြသည်။
`fit`-ပြီးပြီးနောက် `LinearRegression` အရာဝတ္ထုတွင် regression ၏ coefficients အားလုံးပါရှိပြီး၊ ထို coefficients များကို `.coef_` ပိုင်ဆိုင်မှုမှတဆင့် access လုပ်နိုင်သည်။ ကျွန်ုပ်တို့အခြေအနေတွင် coefficient တစ်ခုသာရှိပြီး၊ လျှင် `-0.017` အနားအနီးရှိသင့်သည်။ ၎င်းသည် စျေးနှုန်းများသည် အချိန်အလိုက် တစ်နေ့လျှင် လက်မ ၂ စင့်ခန့် ပျော့မှုတစ်ခုခုရှိသည့်အတိုင်း ပြသနေသည်။ `lin_reg.intercept_` ကို သုံးကာ regression ၏ Y-axis နှင့် အစပ်ကိုလည်း access လုပ်နိုင်ပြီး ကျွန်ုပ်တို့အတွက်နှစ်အစတွင်စျေးနှုန်းအနီး `21` ခန့်ရှိမည်ဖြစ်သည်။
ကျွန်ုပ်တို့၏ မော်ဒယ်တိကျမှု မည်မျှရှိသည်ကို ကြည့်ရန်၊ စမ်းသပ်ဒေတာတွင် စျေးနှုန်းများကို ခန့်မှန်းပြီး ထိုခန့်မှန်းချက်များနှင့် မျှော်မှန်းထားသောတန်ဖိုးများမှာ မည်မျှနီးစပ်သည်ကို တိုင်းတတ်နိုင်သည်။ ၎င်းသည် mean square error (MSE) စဉ်တန်းကို အသုံးပြု၍ ပြုလုပ်နိုင်ပြီး၊ ယင်းသည် မျှော်မှန်းထားသောတန်ဖိုးနှင့် ခန့်မှန်းထားသောတန်ဖိုးကြားရှိ စတုရန်းကွာခြားမှုအားလုံး၏ ပျမ်းမျှတန်ဖိုး ဖြစ်သည်။
မော်ဒယ်၏တိကျမှုကို ကြည့်ရန် မဟာဗျူဟာ dataset တွင် စျေးနှုန်းများကို ခန့်မှန်းပြီး ထိုခန့်မှန်းချက်များနှင့် မျှော်မှန်းထားသည့်တန်ဖိုးများ မည်မျှနီးကပ်သည်ကို ရှာဖွေရမည်။ ဤကို root mean square error (RMSE) မှ အသုံးပြု၍ တိုင်းတာနိုင်ပြီး၊ မျှော်မှန်းထားသည့်တန်ဖိုးနှင့် ခန့်မှန်းထားသည့်တန်ဖိုးတို့၏ ကွာခြားချက်များ၏ စတုရန်းပျားများ၏ ပျမ်းမျှ ၏ မျိုးကို ရွေ့လျား စတုရန်းမှောက်တန်ဖိုးဖြစ်သည်။
```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}%)')
rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
```
ကျွန်ုပ်တို့၏ အမှားသည် ၂ အမှတ်လောက်ဖြစ်ပြီး၊ ၁၇% ဆန်လောက်ဖြစ်သည်။ မမှန်ကန်ပါ။ မော်ဒယ်အရည်အသွေး၏ အခြားညွှန်ပြချက်ကတော့ **coefficient of determination** ဖြစ်ပြီး အောက်ပါအတိုင်း ရယူနိုင်သည် -
ကျွန်ုပ်တို့ error သည် ၂ ခန့်ရှိပြီး ဒါဟာ ~၁၇% ဖြစ်သည်။ မလွန်စွာကောင်းမှု မရှိပါ။ မော်ဒယ်အရည်အသွေး၏ အခြားပြသနာတစ်ခုမှာ **coefficient of determination** ဖြစ်ပြီး အောက်ပါအတိုင်း ရနိုင်သည်-
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
တန်ဖိုးသည် ဖြစ်လျှင်၊ မော်ဒယ်သည် input data ကိုမထည့်သွင်းသောဖြစ်ပြီး၊ *အဆိုးဆုံး လျင်မြန်စွာ ခန့်မှန်းသူ* အဖြစ် လုပ်ဆောင်နေသည်။ ၎င်းသည် ရလဒ်၏ ပျမ်းမျှတန်ဖိုးတစ်ခုသာဖြစ်သည်။ တန်ဖိုး ၁ ဖြစ်လျှင်၊ မျှော်မှန်းထားသော output အားလုံးကို တိကျမှန်ကန်စွာ ခန့်မှန်းနိုင်ခြင်းကို ဆိုလိုသည်။ ကျွန်ုပ်တို့ကိစ္စတွင် coefficient သည် .၀၆ အနီးဖြစ်ပြီး၊ သက်သက်မနည်းပါ။
Value သည် 0 ဖြစ်ပါက မော်ဒယ်သည် input ဒေတာကို ထည့်သွင်းစဉ်းစားမှုမရှိပါ၊ အဲ့ဒါဟာ *အဆိုးဆုံး linear predictor* အဖြစ် အလုပ်လုပ်ပြီး ရလဒ်၏ ပျမ်းမျှတန်ဖိုးကို ပြသသည်။ 1 ဆိုသည်မှာ မျှော်မှန်းထားသည့် output များအားလုံးကို တိကျစွာ ခန့်မှန်းနိုင်သည်ကို ကိုယ်စားပြုသည်။ ကျွန်ုပ်တို့အတွက် coefficient သည် 0.06 အနည်းငယ်၏ နီးပါးဖြစ်ပြီး၊ အလွန်နိမ့်ပါသည်။
ကျွန်ုပ်တို့သည် စမ်းသပ်ဒေတာကို regression လိုင်းနှင့်ပေါင်းပြီး ဖြတ်ပေါ်ပုံကို ကြည့်ရှုနိုင်သည် -
test dataset နှင့် 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
Linear Regression ၏ အမျိုးအစားတစ်ခုမှာ Polynomial Regression ဖြစ်သည်။ အချို့အခါတွင် 변수များအကြား လျှင်မြန်သော ဆက်စပ်မှုရှိသည် - ပုံမှန်အားဖြင့် pumpkin ၏ အရွယ်အစားပိုကြီးသလောက် စျေးနှုန်းပိုများသွားကြသည်။ သို့သော် အချို့အခါ၌ ယင်းဆက်စပ်မှုများကို စတိတ်တန်းသို့မဟုတ် ရှည်လျားသော လိုင်းအဖြစ် ပုံဖော်၍ မရနိုင်ပါ။
Linear Regression ၏ အမျိုးအစားတစ်ခုမှာ Polynomial Regression ဖြစ်သည်။ ကွဲပြားခြားနားသောအချိန်များတွင် variables များအကြားလိုင်းတူဆက်နွယ်မှုရှိနိုင်ပေမယ့် - ပန်းကန်၏ အရွယ်အစား များလာသည်နှင့်အမျှ စျေးနှုန်းမြင့်တက်သည် - တချို့အခြေအနေတွင် ဤဆက်နွယ်မှုများကို ပြင်သစ်လမ်းကြောင်း သို့မဟုတ် သတ်မှတ်ထားသောတန်းတူ အနားများဖြင့် ဖော်ပြ၍ မရနိုင်ပါ။
ဒီထဲမှာ [Polynomial Regression အသုံးပြုနိုင်သော နမူနာများ](https://online.stat.psu.edu/stat501/lesson/9/9.8) တချို့ ရှိပါသည်။
✅ [Polynomial Regression အသုံးပြုနိုင်သည့် အခြား ဥပမာများ](https://online.stat.psu.edu/stat501/lesson/9/9.8)
Date နှင့် Price နှင့် ဆက်စပ်မှုကို ထပ်မံကြည့်ပါ။ ၎င်း scatterplot သည် လျှင်မြန်သော လိုင်းဖြင့် လေ့လာသင့်သည်ဟု သင်ထင်ပါသလား? စျေးနှုန်းတွေ အပြောင်းအလဲများ မဖြစ်နိုင်ပါသလား? ဒီကိစ္စတွင် polymer regression ကို စမ်းသုံးနိုင်သည်။
Date နှင့် Price အချက်အလက်တို့ ညီမျှမှုကို ထပ်မံကြည့်ပါ။ Scatterplot သည် လိုင်းတစ်လမ်းဖြင့် အသေးစိတ် သုံးသပ်ရန် လိုအပ်သည် ဟုတ်သလား? စျေးနှုန်းများ မပြေပဲ ကွဲပြားခြားနားနိုင်အောင်။ ဤအဖြစ်တွင် polynomial regression ကို စမ်းသပ်နိုင်သည်။
✅ Polynomials ဆိုသည်မှာ များစွာသော variables နှင့် coefficient များပါဝင်နိုင်သော ဂဏန်းတွက်ချက်မှုဖော်ပြချက်များ ဖြစ်သည်။
✅ Polynomial များမှာ တစ်ခု သို့မဟုတ် ၎င်းထက်ပိုသော variables နှင့် coefficients ပါဝင်သည့် သင်္ချာရေးသားချက်များဖြစ်သည်။
Polynomial regression သည် nonlinear data များကို ပိုမိုသင့်လျော်စွာသိမ်းဆည်းရန် လိမ္မော်လိုင်းမျဉ်း curvature တစ်ခုကို ဖန်တီးပေးသည်။ ကျွန်ုပ်တို့ကိစ္စတွင် `DayOfYear` variable ကို အချက်အလက်ထဲတွင် ထပ်ထည့်ပါက data ကို parabolic curve ဖြင့် သိုလှောင်နိုင်ပြီး၊ တစ်နှစ်အတွင်း အနည်းဆုံးတန်ဖိုးရှိသောနေရာ တစ်ခုရှိမည်ဖြစ်သည်။
Polynomial regression သည် nonlinear data ကို ပိုပိုက်ကာစွာသင့်တော်အောင် curved လိုင်း တစ်ခု ဖန်တီးသည်။ ကျွန်ုပ်တို့အတွက် squared `DayOfYear` variable ကို input data ထဲသို့ ထည့်သွင်းပါက parabolic curve အမျိုးအစားဖြင့် data ကို လိုက်ဖက်နိုင်ပြီး နှစ်အတွင်း တစ်နေရာတည်းတွင် အနည်းဆုံးရှိမည်။
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 ကို လေ့ကျင့်သွားမည် -
Scikit-learn တွင် [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) ကိုများသည် data processing အဆင့်ခွဲခြားမှုများကို တွဲဖက် အသုံးပြုနိုင်ရန်အတွက် ပါဝင်သည်။ **pipeline** သည် **estimators** များ၏ လွှဲစရာဖြစ်သည်။ ကျွန်ုပ်တို့အနေဖြင့် ပထမဆုံး polynomial features များကို မော်ဒယ်ထဲသို့ ထည့်သွင်းပြီး regression သင်ကြားမှုလုပ်မည့် pipeline တစ်ခုဖန်တီးမည်။
```python
from sklearn.preprocessing import PolynomialFeatures
@ -257,60 +258,60 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
`PolynomialFeatures(2)` အသုံးပြုခြင်းသည် input data ထဲမှ ဒုတိယအဆင့် polynomials အားလုံးကို ထည့်သွင်းသည့် အဓိပ္ပာယ်ဖြစ်သည်။ ကျွန်ုပ်တို့ကိစ္စတွင် `DayOfYear`<sup>2</sup> ဖြစ်မည်၊ ဒါပေမဲ့ variable နှစ်ခုအတွက် X နှင့် Y ရှိပါက X<sup>2</sup>, XY, Y<sup>2</sup> ကို ထည့်သွင်းမည်။ အဆင့်မြင့် polynomials များကိုလည်း အသုံးပြုနိုင်သည်။
`PolynomialFeatures(2)` ကိုသုံးခြင်းဖြင့် input data ထဲမှ ဒုတိယကုန်လီပေါ်မီယနယ်များအားလုံး ပါဝင်သည်။ ကျွန်ုပ်တို့အတွက် သည်မှာ `DayOfYear`<sup>2</sup> တစ်ခုသာဖြစ်မည်၊ ဒါပေမယ့် X နှင့် Y တို့ရှိပါက X<sup>2</sup>, XY နှင့် Y<sup>2</sup> ကိုလည်း ထည့်သွင်းသည်။ ပိုမိုမြင့်မားသောကုန်လီပေါ်မီယနယ်များကိုလည်း အသုံးပြုနိုင်သည်။
Pipeline များကို မူရင်း `LinearRegression` အရာဝတ္ထုပုံစံနဲ့ လိုက်ဖက်၍ သုံးနိုင်ပြီး၊ `fit` လုပ်ပြီးနောက် `predict` ကို သုံး၍ ခန့်မှန်းချက်များရယူနိုင်သည်။ စမ်းသပ်ဒေတာ နှင့် ပြီးရော curve ကို ပြသလိုက်ပါသည် -
Pipeline များကို မူရင်း `LinearRegression` object များနှင့်တူညီစွာ အသုံးပြုနိုင်၍၊ pipeline ကို `fit` ပြီး `predict` ဖြင့် ခန့်မှန်းချက်များ ရနိုင်သည်။ ဤနေရာတွင် test data နှင့် approximation curve ကို ဖော်ပြထားသည်-
<img alt="Polynomial regression" src="../../../../translated_images/my/poly-results.ee587348f0f1f60b.webp" width="50%" />
Polynomial Regression အသုံးပြုကာ နည်းနည်း သိပ်သာသော MSE နှင့် determination ကိုရရှိနိုင်သော်လည်း အရေးကြီးထိရောက်မှုမရှိပါ။ အခြား features များကိုပါ ထည့်သွင်းစဉ်းစားရန် လိုအပ်သည်။
Polynomial Regression ဖြင့် MSE သာနည်းနည်းချိုသာ၍ determination မြင့်တက်သည်၊ သို့သော် ထူးခြားမှုမရှိသေးပါ။ အခြား features များကိုလည်း ပေါင်းစပ်စဉ်းစားရမည်။
> 🎃 နောက်တစ်ချက် - Halloween လယ်ဝန်းတွင် pumpkin စျေးနည်းနေမှုကို တွေ့ရသည်။ သင်ဘာကြောင့်ထင်သလဲ?
> မျက်နှာတစ်ခုအနေဖြင့် အနည်းဆုံး pumpkin စျေးနှုန်းများသည် Halloween အားအနီးတွင် တွေ့ရှိနေရသည်။ ၎င်းအကြောင်း ဘယ်လိုရှင်းလင်းမည်နည်း?
🎃 သင်သည် အပိုင် pumpkin စျေးထုတ်ခန့်မှန်းနိုင်သော မော်ဒယ်တစ်ခု ဖန်တီးပြီးဖြစ်သည်။ Pumpkin အမျိုးအစားအားလုံးအတွက် ထပ်မံလုပ်ဆောင်နိုင်သော်လည်း ၎င်းသည် ဝေဒနာဖြစ်ပါမည်။ ယခု ကိစ္စအား model တွင် pumpkin အမျိုးအစားကို ထည့်သွင်းရန် သင်ယူကြမည်။
🎃 ဂုဏ်ယူပါတယ်၊ သင်သည် pumpkin မှာ pie အမျိုးအစား စျေးနှုန်းခန့်မှန်းနိုင်သည့် မော်ဒယ်တစ်ခု ဖန်တီးနိုင်လိုက်ပြီ။ Pumpkin အမျိုးအစားအားလုံးအတွက် ထပ်မံပြုလုပ်ပါက ပင်ပန်းနွမ်းနယ်လိမ့်မည်။ ယခု Pumpkin အမျိုးအစားအား မော်ဒယ်တွင် ထည့်သွင်းစဥ်းစားမည့် နည်းလမ်းကို လေ့လာကြမည်။
## Categorical Features
Ideal လူမှုပညာတွင်၊ မတူညီသော pumpkin မျိုးစုံအတွက် တူညီသော မော်ဒယ်ဖြင့် စျေးနှုန်း ခန့်မှန်းနိုင်ရမည်။ သို့သော် `Variety` ကော်လံသည် `Month` ကဲ့သို့ တိုက်ရိုက်ဂဏန်းမဟုတ်ပဲ၊ ကွဲလွဲသည့် တန်ဖိုးများပါဝင်သည်။ ထိုကော်လံများကို **categorical** ဟုခေါ်သည်။
ကောင်းမွန်သောကမ္ဘာကြီးထဲ၌ 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 feature များ အသုံးပြုခြင်း၏ ဗီဒီယိုအနှစ်ချုပ်ကို ကြည့်ရှုပါ
> 🎥 အပ်ရှိ ဇာတ်ပုံကို နှိပ်၍ categorical features အသုံးပြုခြင်း၏ အကျဉ်းချုပ် ဗီဒီယိုကို ကြည့်ရှုနိုင်ပါသည်
Variety အလိုက် ပျမ်းမျှစျေးနှုန်းသည် အောက်ပါအတိုင်း ဖြစ်သည် -
Variety အလိုက် စျေးနှုန်းပျမ်းမျှသည် ဤအတိုင်း ဖြစ်ပါသည်-
<img alt="Average price by variety" src="../../../../translated_images/my/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Variety ကို တွက်ချက်ရန်၊ ပထမဆုံး ဂဏန်းပုံစံသို့ ပြောင်းလဲသို့မဟုတ် **encode** ရပါမည်။ ၎င်းကို ပြုလုပ်နိုင်သည့် နည်းလမ်းများ အချို့မှာ -
Variety ကို စဉ်းစားရန်အတွက် ပထမဦးစွာ နံပါတ်တန်ဖိုးသို့ သို့မဟုတ် **encode** ပြုလုပ်ရန် လိုအပ်သည်။ လုပ်နည်းများမှာ-
* ရိုးရှင်းသော **numeric encoding** သည် မတူညီသော variety များ စာရင်းဆွဲ၍ အဲ့သည့် စာရင်းအတွင်း အညွှန်းတစ်ခုဖြင့် variety အမည်ကို တပ်ဆင်သည်။ ဤနည်းပညာသည် linear regression အတွက် အကောင်းဆုံး မဟုတ်ပါ၊ တကယ်လျှင် linear regression သည် အညွှန်း၏ တန်ဖိုးကို သုံးပြီး coefficient တစ်ခုထပ်ဖွဲ့သည်။ ကျွန်ုပ်တို့ကိစ္စတွင် အညွှန်းနံပါတ်နှင့် စျေးနှုန်း ဆက်စပ်မှုသည် nonlinear ဖြစ်ပြီး၊ အညွှန်းများ စနစ်တကျ အစီအစဉ်လိုက်ဖြစ်စေသော်လည်း ဖြစ်သည်
* **One-hot encoding** သည် `Variety` ကော်လံကို မျိုးစုံ ၄ ကော်လံသို့ အစားထိုးပြီး၊ မျိုးစုံတစ်ခုစီအတွက် ကော်လံတစ်ခုစီ ထားသည်။ ဝေငှားစုရင်းတစ်ကြောင်းသည် ထိုမျိုးစုံဖြစ်လျှင် `1` ဖြစ်မည်၊ မဟုတ်လျှင် `0` ဖြစ်မည်။ ၎င်းဖြင့် linear regression တွင် ကိုယ်စားလှယ် ၄ ယောက်ရှိမည်ဖြစ်ပြီး၊ pumpkin မျိုးစုံ တစ်ခုချင်းစီအတွက် စျေးအစ၊ ဒါမှမဟုတ် "အပေါင်းစုပေးငွေ" အတွက် တစ်ခုစီကို တာဝန်ယူမည်။
* ရိုးရိုး **နံပါတ်အမှတ်ပေးခြင်း** သည် variété များကို စာရင်းတစ်ခုဖန်တီးပြီး variety နာမည်ကို စာရင်းအတွင်းရှိ အညွှန်းနံပါတ်ဖြင့် အစားထိုးသည်။ အကြောင်းက linear regression အတွက် အကောင်းဆုံးမဟုတ်ပါ၊ မကြာခဏ linear regression သည် index နံပါတ်၏ နံပါတ်တန်ဖိုးကို အသုံးပြုပြီး ရလဒ်ထဲ ထည့်သွင်းခြင်းဖြင့် coefficient တစ်ခုနှင့် မြှောက်သည်။ ကျွန်ုပ်တို့အနေဖြင့် index နံပါတ်နှင့် စျေးနှုန်းအကြား ဆက်စပ်မှုသည် ရိုးရှင်း linear မဟုတ်ပေ
* **One-hot encoding** သည် `Variety` ကော်လမ်ကို စားကြီးသုံးကော်လမ်အစားထိုးပေးပြီး၊ ကြိုက်သော variety အတန်းတစ်ခုစီအတွက် ကော်လမ်တစ်ခုစီဖန်တီးသည်။ အတန်းအလိုက် အဆိုပါ variety ရှိပါက ကော်လမ်တွင် `1`၊ မရှိပါက `0` ပါဝင်သည်။ ထို့ကြောင့် linear regression တွင် pumpkin variety တစ်ခုစီအတွက် coefficient ၄ ခုရှိပြီး၊ ၎င်းတွင် အစောပိုင်းစျေးနှုန်း(သို့မဟုတ် "အပိုစျေး") အတွက် တာဝန်ရှိသည်။
အောက်ပါ ကုဒ်သည် 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
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 encode တဲ့ variety ကို input အဖြစ်သုံး၍ linear regression လေ့ကျင့်ရန်၊ `X` နှင့် `y` အချက်အလက်များကို မှန်ကန်စွာ စတင်ရပါမည်။
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 encoded variety ကို input အဖြစ်သုံးပြီး linear regression ကို သင်ကြားရာတွင် `X` နှင့် `y` ဒေတာများကို မှန်မှန်ကန်ကန် သတ်မှတ်ရုံဖြစ်သည်-
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
အကြောင်းအရာများသည် အပေါ်က Linear Regression ခေတ်မီပုံစံနှင့် ထပ်တူတူဖြစ်သည်။ စမ်းကြည့်လျှင် mean squared error မျှ ၎င်းနှင့်အတူတူ နီးပါး ဖြစ်ပြီး coefficient of determination ပြင်းထန်စွာ မြင့်သည် ( ~77%) ဟု တွေ့ရမည်။ ပိုမိုတိကျသော ခန့်မှန်းချက်များရရန် categorical features အပြင် numeric features များ (ဥပမာ `Month``DayOfYear`) ကိုပါ ထည့်သွင်းနိုင်ပြီး၊ feature များ စုစည်းရန် `join` ကို အသုံးပြုနိုင်သည် -
Linear Regression သင်ကြားခြင်းတွက် အခြားကုဒ်ပိုင်းများထက်မတူဘဲမဟုတ်ပါ၊ မူလသင်ကြားထားသည့်ပုံစံနှင့် တူညီသည်။ စမ်းသပ်ပါက mean squared error ပြောင်းလဲမှုမပြင်းထန်ပေ၊ determination coefficient သည် .၇၇ ခန့် ရရှိမည်။ ပိုမိုတိကျသော ခန့်မှန်းချက်များ ရယူရန် categorical features များနှင့် numeric features များ (ဥပမာ- `Month`, `DayOfYear`) ကိုပါ သွင်းစဉ်းစားနိုင်သည်။ feature များကို တစ်စုစည်း array တစ်ခုတွင် ပေါင်းစပ်ဖို့ `join` ကို အသုံးပြုနိုင်သည်-
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -319,69 +320,69 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
ဒီမှာ `City` နှင့် `Package` အမျိုးအစားများကိုပါ ထည့်သွင်းပြီး၊ မည်သည့် MSE 2.84 (10%) နှင့် determination 0.94 ရရှိသည်။
## အားလုံးကို ပေါင်းစပ်ခြင်း
ဤတွင် `City` နှင့် `Package` အမျိုးအစားများလည်း သွင်းစဉ်းစားပြီး၊ MSE 2.84 (၁၀%) နှင့် determination 0.94 ထိရရှိပါသည်။
## စုပေါင်းပြီး မော်ဒယ်ကို ဖန်တီးခြင်း
အကောင်းဆုံး မော်ဒယ်ကို မိတ်ဆက်ရန်၊ အပေါ်ပါ ဥပမာ၏ combined (one-hot encoded categorical + numeric) data ကို Polynomial Regression နှင့် တွဲသုံးရပါမည်။ ကျွန်ုပ်တို့၏ တူညီမှုအတွက် အပြည့်အစုံကုဒ် -
အကောင်းဆုံးမော်ဒယ်ဖန်တီးရန် အပေါ်ပါ ဥပမာမှ Categorical (one-hot encoded) နှင့် numeric ဒေတာများကို Polynomial Regression နှင့် တွဲဖက်၍ အသုံးပြုနိုင်သည်။ အဆင်ပြေစေရန် မူလကုဒ် here ပါ-
```python
# သင်ကြားရေးဒေတာကို စီစဉ်ပါ
# လေ့ကျင့်ရေးဒေတာကို စီစဉ်ပါ
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']
# သင်ကြားမှုနှင့် စမ်းသပ်မှု ခွဲခြားပါ
# လေ့ကျင့်မှုနှင့် စမ်းသပ်မှု ခွဲခြားပါ
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# ပိုင်လိုင်းအား စီစဉ်ပြီး သင်ကြားပါ
# ပိုင်းလိုင်းကို အသင့်ပြင်ပြီး လေ့ကျင့်ပါ
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# စမ်းသပ်ဒေတာအတွက် ခန့်မှန်းရလဒ်များ ထုတ်ပါ
# စမ်းသပ်ဒေတာအတွက် ဖော်ထုတ်ဆောင်ရွက်မှု
pred = pipeline.predict(X_test)
# MSE နှင့် ဆုံးဖြတ်ချက်ကို တွက်ချက်ပါ
# 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 အများဆုံး ၉၇% နီးပါး၊ MSE=2.23 (ခန့်မှန်းချက်အမှား ၈% လောက်) ပေးမည်။
| Model | MSE | Determination |
|-------|-----|---------------|
| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
| `Variety` Linear | 5.24 (19.7%) | 0.77 |
| All features Linear | 2.84 (10.5%) | 0.94 |
ဒါမှတစ်ပါး determination coefficient ကို ၉၇% ခန့်၊ MSE=2.23 (~၈%ခန့် မျှော်မှန်းချက် အချက်အလက်အမှား) ရရှိမည်။
| Model | MSE | Determination |
|-------|-----|---------------|
| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
| `Variety` Linear | 5.24 (19.7%) | 0.77 |
| All features Linear | 2.84 (10.5%) | 0.94 |
| All features Polynomial | 2.23 (8.25%) | 0.97 |
🏆 ကောင်းမွန်ပါတယ်! သင်သည် Regression မော်ဒယ် ၄ ခုကို သင်ခန်းစာတစ်ခုတွင်တည်း ဖန်တီးပြီး မော်ဒယ်အရည်အသွေးကို ၉၇% ထိ မြှင့်တင်ခဲ့ပါသည်။ Regression နောက်ဆုံးအပိုင်းတွင် မည်သည့် category များဖြစ်သည်ကို သတ်မှတ်ပေးသည့် Logistic Regression ကို သင်ကြားမည် ဖြစ်သည်။
🏆 အလုပ်ကောင်းပါတယ်! သင်သည် သင်ခန်းစာတစ်ခုအတွင်း Regression မော်ဒယ် (၄) များ ဖန်တီးပြီး မော်ဒယ်အရည်အသွေးကို ၉၇% ဆုတ်ခဲ့ပြီ။ Regression ၏ နောက်ဆုံးပိုင်းတွင် Logistic Regression အကြောင်း လေ့လာ၍ ကဏ္ဍ သတ်မှတ်ခြင်းကို သင်ယူမည်ဖြစ်သည်။
---
## 🚀 စိန်ခေါ်မှု
---
## 🚀စိန်ခေါ်မှု
ဒီ notebook တွင် မတူညီသော variables များကို စမ်းသပ်ပါ။ Correlation နှင့် model တိကျမှု ယှဉ်တွဲမှုကို ကြည့်ရှုပါ။
ဤ notebook တွင် မတူညီသော variable များစမ်းသပ်၍ correlation နှင့် မော်ဒယ်တိကျမှု ဆက်စပ်မှုကို တွေ့ပါ။
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## [သင်ခန်းစာ အပေါ်တွင် စစ်တမ်း](https://ff-quizzes.netlify.app/en/ml/)
## ပြန်လည်သုံးသပ်ခြင်းနှင့် ကိုယ်တိုင်လေ့လာမှု
## ပြန်လည်သုံးသပ်ရန် နှင့် ကိုယ်တိုင်လေ့လာရန်
ဒီသင်ခန်းစာတွင် Linear Regression အကြောင်း သင်ယူခဲ့ပါသည်။ ထိုသို့ အရေးကြီးသော Regression အမျိုးအစားအခြားများလည်း ရှိပါသည်။ Stepwise, Ridge, Lasso နှင့် Elasticnet နည်းစနစ်များကိုလေ့လာပါ။ ပိုမိုလေ့လာရန် Stanford Statistical Learning သင်တန်းရုပ်သံသည် အကောင်းဆုံးဖြစ်သည်။ [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
သင်ခန်းစာတွင် Linear Regression အကြောင်း သင်ယူခဲ့သည်။ အခြား အရေးကြီးသော Regression အမျိုးအစားများလည်းရှိပါသည်။ Stepwise, Ridge, Lasso, နှင့် Elasticnet နည်းများကို အသေးစိတ်လေ့လာပါ။ ပိုမိုသိရှိရန် [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) ကို အကြံပြုသည်။
## တာဝန်လက်ခံခြင်း
## အလုပ်လက်တွေ့
[Build a Model](assignment.md)
[Model တစ်ခု တည်ဆောက်ရန်](assignment.md)
---
<!-- 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 -->

@ -1,17 +1,17 @@
# Cuisine classifiers 1
# အစားအသောက် အမျိုးအစား ခွဲခြားသူများ ၁
ဒီသင်ခန်းစာမှာ မိမိအရင်သင်ခန်းစာမှာ သိမ်းဆည်းထားတဲ့ အစားအစာအမျိုးအစားများနှင့်ပတ်သက်သော အချက်အလက်များကို အသုံးပြုပါမည်။
ဒီသင်ခန်းစာမှာ သင်ဟာ ယင်းအစားအသောက်အမျိုးအစားတွေနဲ့ပတ်သက်ပြီး ချိန်ညှိပြီး သန့်ရှင်းသော ဒေတာတစ်ခုကို မပြီးဆုံးခင်သင်ခန်းစာကနေ သိမ်းဆည်းထားတဲ့ ဒေတာ set ကိုအသုံးပြုပါမည်။
ဒီအချက်အလက်များကို အသုံးပြုပြီး _ပစ္စည်းများအုပ်စုအပေါ်မူတည်၍ အမျိုးသားအစားအစာကို ခန့်မှန်းနိုင်ရန်_ အမျိုးမျိုးသော classifiers များကို အသုံးပြုပါမည်။ ဒီလုပ်ငန်းစဉ်တွင် classification tasks များအတွက် algorithm များကို ဘယ်လိုအသုံးချနိုင်သည်ဆိုတာကို ပိုမိုလေ့လာနိုင်ပါမည်။
အဲဒီ dataset ကို အမျိုးအစားခွဲခြားသူမျိုးစုံနဲ့ သုံးပြီး _ပေးထားတဲ့ အစားအစာပစ္စည်း အုပ်စုတစ်ခုအပေါ်အခြေခံပြီး အမျိုးအစားခွဲခြားဖော်ထုတ်ခြင်း_ ပြုလုပ်မှာဖြစ်ပါတယ်။ ဒီအလုပ်လုပ်နေစဉ်အတွင်း အပိုင်းခွဲခြားလုပ်ငန်းများအတွက် algorithm တွေကို ဘယ်လိုအသုံးချနိုင်ကြောင်း အပိုများစွာ လေ့လာနိုင်မှာဖြစ်ပါတယ်။
## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
# ပြင်ဆင်မှု
## [သင်ခန်းစာမတိုင်မီ စမ်းမေးပွဲ](https://ff-quizzes.netlify.app/en/ml/)
# ပြင်ဆင်မှုပြုလုပ်ခြင်း
[Lesson 1](../1-Introduction/README.md) ကို ပြီးမြောက်ထားသည်ဟု ခန့်မှန်းပါက, _cleaned_cuisines.csv_ ဖိုင်ကို `/data` folder ရဲ့ root မှာ ရှိနေဖို့ သေချာပါစေ
[သင်ခန်းစာ ၁](../1-Introduction/README.md) ပြီးဆုံးပြီးသားဖြစ်ကြောင်း သတ်မှတ်ပြီးသားဆိုထားပြီး၊ ဤသင်ခန်းစာလေးခုအတွက် root `/data` ဖိုလ်ဒါအတွင်း _cleaned_cuisines.csv_ ဖိုင်ရှိနေပြီးဖြစ်ကြောင်း သေချာစေပါ
## လေ့ကျင့်ခန်း - အမျိုးသားအစားအစာကို ခန့်မှန်းပါ
## လေ့ကျင့်ခန်း - အမျိုးအစားခွဲခြားရန် ခန့်မှန်းခြင်း
1. ဒီသင်ခန်းစာရဲ့ _notebook.ipynb_ folder မှာ Pandas library နဲ့အတူ ဖိုင်ကို import လုပ်ပါ:
1. ဒီသင်ခန်းစာ_notebook.ipynb_ ဖိုလ်ဒါအတွင်းမှာ အဲဒီဖိုင်နဲ့ Pandas စာကြည့်တိုက်ကို တင်သွင်းပါ။
```python
import pandas as pd
@ -19,7 +19,7 @@
cuisines_df.head()
```
အချက်အလက်တွေက ဒီလိုပုံစံနဲ့ ရှိပါမယ်:
ဒေတာဟာ ဒီလိုမျိုးပုံစံရှိပါတယ် -
| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
@ -30,7 +30,7 @@
| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1. အခြား libraries များကို import လုပ်ပါ:
1. ယခု အခြားစာကြည့်တိုက်များကို တင်သွင်းပါ။
```python
from sklearn.linear_model import LogisticRegression
@ -40,14 +40,14 @@
import numpy as np
```
1. X နဲ့ y coordinates ကို training အတွက် dataframes နှစ်ခုအဖြစ် ခွဲပါ။ `cuisine` ကို labels dataframe အဖြစ် သတ်မှတ်ပါ:
1. X နှင့် y ကို သင်ကြားရေးအတွက် နှစ်ခုသော dataframe များအဖြစ် ခွဲထုတ်ပါ။ `cuisine` ကို label အဖြစ်သတ်မှတ်နိုင်သည်။
```python
cuisines_label_df = cuisines_df['cuisine']
cuisines_label_df.head()
```
ါဟာ ဒီလိုပုံစံနဲ့ ရှိပါမယ်:
ီလိုမျိုးရှိပါလိမ့်မယ် -
```output
0 indian
@ -58,14 +58,14 @@
Name: cuisine, dtype: object
```
1. `Unnamed: 0` column နဲ့ `cuisine` column ကို `drop()` ကိုခေါ်ပြီး ဖယ်ရှားပါ။ ကျန်တဲ့ data ကို trainable features အဖြစ် သိမ်းဆည်းပါ:
1. `Unnamed: 0`နှင့် `cuisine` ကော်လံများကို `drop()` ဖြင့် ဖယ်ရှားပြီး training features အဖြစ် အခြားဒေတာများအား သိမ်းဆည်းပါ။
```python
cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
cuisines_feature_df.head()
```
Features တွေက ဒီလိုပုံစံနဲ့ ရှိပါမယ်:
သင့် features ဟာ ဒီလိုပုံစံရှိတော့မယ် -
| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
@ -75,75 +75,75 @@
| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
အခုတော့ မိမိရဲ့ model ကို training လုပ်ဖို့ အဆင်သင့်ဖြစ်ပါပြီ!
ယခု သင့်မှာ သင်တန်းပေးဖို့ အဆင်သင့်ဖြစ်ပါပြီ။
## Classifier ရွေးချယ်ခြင်း
## သင့်အတွက် အမျိုးအစားခွဲခြားသူ ရွေးချယ်ခြင်း
အချက်အလက်တွေကို training လုပ်ဖို့ အဆင်သင့်ဖြစ်ပြီးနောက်, မိမိလုပ်ငန်းစဉ်အတွက် algorithm ကို ရွေးချယ်ရပါမည်။
ဒေတာ သန့်ရှင်းပြီး သင်ကြားရန် ပြင်ဆင်ပြီး ဖြစ်တဲ့အခါ၊ အလုပ်အတွက် ဘယ် algorithm ကို သုံးမလဲ ဆိုတာဆုံးဖြတ်ရပါမယ်။
Scikit-learn က classification ကို Supervised Learning အဖြစ် grouping လုပ်ပြီး, အဲဒီ category မှာ classification လုပ်နိုင်တဲ့ နည်းလမ်းများစွာကို တွေ့နိုင်ပါမည်။ [အမျိုးမျိုးသောနည်းလမ်းများ](https://scikit-learn.org/stable/supervised_learning.html) ကို ပထမဆုံးကြည့်တဲ့အခါ အတော်လေးရှုပ်ထွေးစေပါသည်။ အောက်ပါနည်းလမ်းများသည် classification techniques များပါဝင်သည်:
Scikit-learn ဟာ Classification ကို Supervised Learning အတွင်း ထည့်သွင်းပြီး၊ အဲဒီအုပ်စုမှာ သင်တွေ့နိုင်တဲ့ အမျိုးအစားလာလားဖြစ်စေ classification နည်းလမ်းမျိုးစုံကို ရှာတွေ့နိုင်ပါတယ်။ [အမျိုးမျိုး](https://scikit-learn.org/stable/supervised_learning.html) မှာ ရှိတာက ပထမကြည့်တဲ့အခါ စိတ်မချမ်းသာ ဖြစ်စေတတ်ပါတယ်။ အောက်ပါနည်းလမ်းများတွင် classification နည်းပညာများ ပါဝင်သည် -
- Linear Models
- လိုင်းနီးယား မော်ဒယ်များ
- Support Vector Machines
- Stochastic Gradient Descent
- Nearest Neighbors
- အနီးဆုံးအိမ်နီးများ
- Gaussian Processes
- Decision Trees
- Ensemble methods (voting Classifier)
- Multiclass and multioutput algorithms (multiclass and multilabel classification, multiclass-multioutput classification)
- ဆုံးဖြတ်ရိုက်ပုံများ
- Ensemble နည်းလမ်းများ (voting Classifier)
- Multiclass နှင့် multioutput algorithm များ (multiclass နှင့် multilabel classification, multiclass-multioutput classification)
> [neural networks](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) ကို data classification အတွက် အသုံးပြုနိုင်သော်လည်း, ဒီသင်ခန်းစာရဲ့ အကျိုးအာနိသင်အတွင်းမှာ မပါဝင်ပါ။
> သင်ဟာ [နယူးရာလ်နက်ဝက်များဖြင့် ဒေတာပြုလုပ်ခြင်း](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification)ကိုပါ အသုံးပြုနိုင်သော်လည်း၊ ဒီသင်ခန်းစာ၏ ပတ်ဝန်းကျင်ဟာ အဲဒါနဲ့ မဟုတ်ပါ။
### ဘယ် classifier ကို သုံးမလဲ?
### ဘယ်အမျိုးအစားခွဲခြားသူကို ရွေးမလဲ?
ဒါဆို, ဘယ် classifier ကို သုံးသင့်သလဲ? အများအားဖြင့်, အမျိုးမျိုးကို run လုပ်ပြီး ရလဒ်ကောင်းတစ်ခုကို ရှာဖွေခြင်းသည် စမ်းသပ်မှုတစ်ခုဖြစ်သည်။ Scikit-learn က [side-by-side comparison](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) ကို dataset တစ်ခုမှာ ပြုလုပ်ပြီး, KNeighbors, SVC နှစ်မျိုး, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB နဲ့ QuadraticDiscrinationAnalysis တို့ကို visualized ရလဒ်များဖြင့် နှိုင်းယှဉ်ပြထားသည်:
ဒါဆို အမျိုးအစားခွဲခြားသူ ဘယ်အမျိုးကိုရွေးသင့်သလဲ? ပုံမှန်အားဖြင့် အမျိုးမျိုးကို တွန်းလှန် စမ်းသပ်ပြီး ရလဒ်ကောင်းလာလားကြည့်ရင် စမ်းသပ်နိုင်ပါတယ်။ Scikit-learn ဟာ [တပြိုင်နက်မှာ နှိုင်းယှဉ်ခြင်း](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) ကို dataset တစ်ခုကိုဖန်တီးပြီး နည်းလမ်းအချို့ (KNeighbors, SVC နှစ်မျိုး, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB နှင့် QuadraticDiscrinationAnalysis) နဲ့ အဆင်ပြေမှုကို မြင်ယောင် ပြထားပါတယ် -
![comparison of classifiers](../../../../4-Classification/2-Classifiers-1/images/comparison.png)
> Scikit-learn ရဲ့ documentation မှ Plots
![comparison of classifiers](../../../../translated_images/my/comparison.edfab56193a85e7f.webp)
> Scikit-learn မှ အထောက်အထားစာတမ်းအတွင်း ဖန်တီးထားသော ပြဇာတ်များ ဖြစ်သည်။
> AutoML က ဒီပြဿနာကို cloud မှာ comparison များ run လုပ်ခြင်းဖြင့် အလွယ်တကူ ဖြေရှင်းပေးပြီး, မိမိ data အတွက် algorithm အကောင်းဆုံးကို ရွေးချယ်နိုင်စေသည်။ [ဒီမှာ](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) စမ်းသပ်ကြည့်ပါ။
> AutoML က ဒီပြဿနာကို သွားရောက်ပြီး ဆန်းစစ်ကာ သင့်ဒေတာအတွက် အကောင်းဆုံး algorithm ကို ရွေးနိုင်စေပါတယ်။ [ဒီမှာ ကြိုးစားကြည့်ပါ](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
### ပိုမိုကောင်းမွန်တဲ့နည်းလမ်း
### ပိုမိုကောင်းမွန်သောနည်းလမ်း
အကြံပေးမှုများကို လိုက်နာခြင်းသည် wild guessing လုပ်ခြင်းထက် ပိုမိုကောင်းမွန်ပါသည်။ [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) ကို download လုပ်ပြီး, multiclass problem အတွက် ရွေးချယ်စရာများကို ရှာဖွေကြည့်ပါ:
လွဲမှားတွေးတာထက် ပိုကောင်းသောနည်းလမ်းကတော့ ဒီ [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) ကို ဒင်းလိုက်ဒေါင်းလုတ် ယူပြီး အကြံဉာဏ်တွေကို လိုက်နာခြင်းဖြစ်ပါတယ်။ ဒီမှာ ကျွန်တော်တို့ multiclass ပြဿနာအတွက် ရွေးချယ်စရာ အတော်များများ ရှိကြောင်း တွေ့ရှိရပါသည်။
![cheatsheet for multiclass problems](../../../../4-Classification/2-Classifiers-1/images/cheatsheet.png)
> Microsoft's Algorithm Cheat Sheet ရဲ့ multiclass classification options ကို ဖော်ပြထားသော အပိုင်း
![cheatsheet for multiclass problems](../../../../translated_images/my/cheatsheet.07a475ea444d2223.webp)
> Microsoft ၏ Algorithm Cheat Sheet မှ အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး multiclass classification အတွက် ရွေးချယ်နည်းများ ဖော်ပြထားသည်။
Cheat sheet ကို download လုပ်ပြီး, print ထုတ်ထားပြီး မိမိရဲ့ နံရံမှာ တင်ထားပါ!
ဒီ cheat sheet ကို ဒေါင်းလုဒ် ယူ၍ ပုံနှိပ်ထားပြီး နံရံပေါ်တွင် ပေါ်လာအောင် တပ်ထားပါ။
### Reasoning
### အကြောင်းပြချက်များ
မိမိရဲ့ constraints တွေကို အခြေခံပြီး အမျိုးမျိုးသောနည်းလမ်းများကို reasoning လုပ်ကြည့်ပါ:
ကြည့်ကြပါစို့ မတူညီသော လမ်းစဉ်များကို ငြင်းဆိုရာတွင် ကျွန်တော်တို့ ရှိတဲ့ကန့်သတ်ချက်များအရ -
- **Neural networks မလိုအပ်ပါ**။ မိမိရဲ့ clean ဖြစ်တဲ့ dataset နဲ့ local notebooks မှာ training လုပ်နေတဲ့အခြေအနေကြောင့်, neural networks က ဒီ task အတွက် မလိုအပ်ပါ
- **Two-class classifier မလိုအပ်ပါ**။ Two-class classifier ကို မသုံးသင့်ပါ, ဒါကြောင့် one-vs-all ကို မသုံးပါ။
- **Decision tree သို့မဟုတ် logistic regression သုံးနိုင်ပါ**။ Decision tree သို့မဟုတ် logistic regression ကို multiclass data အတွက် အသုံးပြုနိုင်ပါသည်။
- **Multiclass Boosted Decision Trees က အခြားပြဿနာကို ဖြေရှင်းသည်**။ Multiclass boosted decision tree က nonparametric tasks များအတွက် အကောင်းဆုံးဖြစ်ပြီး, ranking များကို ဖန်တီးရန်အတွက် အသုံးပြုသည်, ဒါကြောင့် ဒီ task အတွက် မသင့်တော်ပါ။
- **နယူးရာလ်နက်ဝက်များသည် များစွာကြီးလွန်းသည်**။ သန့်ရှင်းပြီး သေးငယ်သည့် dataset ဖြင့်၊ သင့်က နောက်ခံနက်ဘုတ်ဖြင့် ထည့်သင်ကြားခြင်း များ ပြုလုပ်နေသောကြောင့် Neural network များသည် အလေးမတင်နိုင်သည်
- **နှစ်သိမ့်အမျိုးအစား ခွဲခြားသူ မရှိပါ**။ နှစ်သိမ့် classifier မသုံးတော့သောကြောင့် one-vs-all ကို မသုံးပါ။
- **Decision tree သို့မဟုတ် logistic regression ကောင်းကောင်းလည်ပတ်နိုင်သည်**။ Decision tree သို့မဟုတ် multiclass အချက်အလက်များအတွက် logistic regression အသုံးပြုနိုင်ပါတယ်။
- **Multiclass Boosted Decision Trees သည် အခြားပြဿနာများဖြေရှင်းသည်**။ Multiclass boosted decision tree သည် ranking ကို ဖန်တီးရန် ဒီဇိုင်းပြုလုပ်သော nonparametric task များမှသာ အသုံးပြုသင့်သည်၊ သို့င်း ကျွန်ုပ်တို့အတွက် မသင့်တော်ပါ။
### Scikit-learn ကို အသုံးပြုခြင်း
Scikit-learn ကို အသုံးပြုပြီး data ကို analysis လုပ်ပါမည်။ သို့သော်, Scikit-learn မှာ logistic regression ကို အသုံးပြုနိုင်တဲ့ နည်းလမ်းများစွာ ရှိပါသည်။ [parameters to pass](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) ကို ကြည့်ပါ
ကျွန်တော်တို့ Scikit-learn ကို ဒေတာအား စစ်တမ်းဖော်မြူဆောင်ရန် သုံးမှာ ဖြစ်သည်။ သို့သော် logistic regression တွင် Scikit-learn မှာ parameter များ များစွာ အသုံးပြုနိုင်ပါသည်။ [parameter များကြည့်ပါ](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)။
အဓိကအားဖြင့် `multi_class` နဲ့ `solver` ဆိုတဲ့ parameters နှစ်ခုကို သတ်မှတ်ရန်လိုအပ်ပါသည်။ Scikit-learn ကို logistic regression လုပ်ရန် တောင်းဆိုတဲ့အခါ, `multi_class` value က behavior တစ်ခုကို သတ်မှတ်ပေးပါသည်။ Solver ရဲ့ value က algorithm ကို သတ်မှတ်ပေးပါသည်။ Solvers အားလုံးကို `multi_class` values အားလုံးနဲ့ pair လုပ်လို့ မရပါ။
အဓိကအားဖြင့် အရေးကြီးသော parameter နှစ်ခုရှိသည် - `multi_class` နှင့် `solver` - တိုင်းတာပြီး Scikit-learn ကို logistic regression လုပ်ရန် တောင်းဆိုသည့်အခါ သတ်မှတ်ရမည်။ `multi_class` သည် မတူညီသော လုပ်ဆောင်ချက်တစ်ခု လုပ်ဆောင်ပြီး၊ solver သည် ဘယ် algorithm ကို သုံးမယ်ဆိုတာ သတ်မှတ်သည်။ အားလုံးသော solver များသည် `multi_class` အားလုံးနှင့် တွဲဖက် အသုံးပြုလို့ မရပါ။
Docs အရ, multiclass case မှာ training algorithm:
စာရွက်စာတမ်းအရ၊ multiclass တွင်၊ သင်ကြားရေး algorithm သည် -
- **one-vs-rest (OvR) scheme ကို အသုံးပြုသည်**, အကယ်၍ `multi_class` option ကို `ovr` အဖြစ် သတ်မှတ်ထားပါက
- **cross-entropy loss ကို အသုံးပြုသည်**, အကယ်၍ `multi_class` option ကို `multinomial` အဖြစ် သတ်မှတ်ထားပါက။ (လက်ရှိမှာ `multinomial` option ကို lbfgs, sag, saga နဲ့ newton-cg solvers တွေကသာ support လုပ်ပါသည်။)
- `multi_class` ကို `ovr` သတ်မှတ်ထားလျှင် **one-vs-rest (OvR) စနစ်ကို အသုံးပြုသည်**
- `multi_class` ကို `multinomial` သတ်မှတ်ထားလျှင် **cross-entropy loss ကို အသုံးပြုသည်**။ (လောလောဆယ် lbfgs, sag, saga နဲ့ newton-cg solver တွေရဲ့ အတွက်သာ `multinomial` ကို ထောက်ပံ့သည်)"
> 🎓 'scheme' ဆိုတာက 'ovr' (one-vs-rest) သို့မဟုတ် 'multinomial' ဖြစ်နိုင်ပါသည်။ Logistic regression ကို binary classification အတွက် design လုပ်ထားသော်လည်း, ဒီ schemes တွေက multiclass classification tasks များကို ပိုမိုကောင်းမွန်စွာ handle လုပ်နိုင်စေပါသည်။ [source](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'scheme' ဆိုတာဟာ 'ovr' (one-vs-rest) သို့မဟုတ် 'multinomial' ဖြစ်နိုင်သည်။ Logistic regression သည် ဒုတိယအချိုးချင်း classification အတွက် ရည်ရွယ်ထားပြီး၎င်းဖြင့် multiclass classification ပြဿနာများကို ပိုမိုကောင်းမွန်စွာ ဖြေရှင်းနိုင်စေရန် အဲဒီစနစ်တွေကို အသုံးပြုသည်။ [source](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'solver' ကို "optimization problem အတွက် အသုံးပြုမည့် algorithm" အဖြစ် သတ်မှတ်ထားသည်။ [source](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 'solver' သည် optimization ပြဿနာတွင် အသုံးပြုသော algorithm ကို သတ်မှတ်ထားသည်။ [source](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Scikit-learn က solvers တွေက data structure မျိုးစုံရဲ့ ပြဿနာများကို handle လုပ်ပုံကို ရှင်းပြထားသော table ကို ပေးထားပါသည်:
Scikit-learn သည် solver များသည် ကွာခြားသော ဒေတာဖွဲ့စည်းမှုအမျိုးအစားများကို မည်သို့ ကိုင်တွယ်သည်ဆိုတာကို ရှင်းပြရန် အောက်ပါ အတန်းဇယားကို ပေးထားသည်။
![solvers](../../../../4-Classification/2-Classifiers-1/images/solvers.png)
![solvers](../../../../translated_images/my/solvers.5fc648618529e627.webp)
## လေ့ကျင့်ခန်း - data ကို ခွဲခြားပါ
## လေ့ကျင့်ခန်း - ဒေတာခွဲခြမ်းခြားခြင်း
ိမိအရင်သင်ခန်းစာမှာ logistic regression ကို လေ့လာထားပြီးဖြစ်သောကြောင့်, training trial အတွက် logistic regression ကို အဓိကထားပါမည်
`train_test_split()` ကို ခေါ်ပြီး data ကို training group နဲ့ testing group အဖြစ် ခွဲပါ:
ကြာသေးခင် သင်ခန်းစာတစ်ခုမှာ logistic regression ကို သင်ယူခဲ့တာဖြစ်လို့ ပထမဆုံး သင်ကြားမှုအတွက် logistic regression ကို အဓိကထားပြီး စမ်းသပ်ပါ
`train_test_split()` ကို ခေါ်ဆို၍ သင်နှင့် စမ်းသပ် ဘားကိုခွဲပါ -
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
@ -151,9 +151,9 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
## လေ့ကျင့်ခန်း - logistic regression ကို အသုံးပြုပါ
Multiclass case ကို အသုံးပြုနေသောကြောင့်, မိမိသုံးမည့် _scheme_ နဲ့ _solver_ ကို ရွေးချယ်ရန်လိုအပ်ပါသည်။ LogisticRegression ကို multi_class setting နဲ့ **liblinear** solver ကို သတ်မှတ်ပြီး training လုပ်ပါ။
မိမိသည် multiclass ဖြစ်သောကြောင့် ဘယ် _scheme_ ကို အသုံးပြုမလဲ၊ ဘယ် _solver_ ကို သတ်မှတ်မလဲ ဆိုတာ ရွေးဖို့လိုပါသည်။ LogisticRegression ကို multi_class ကို `ovr` နှင့် solver ကို **liblinear** သတ်မှတ်၍ သင်ကြားပါ။
1. multi_class ကို `ovr` အဖြစ် သတ်မှတ်ပြီး solver ကို `liblinear` အဖြစ် သတ်မှတ်ထားသော logistic regression ကို ဖန်တီးပါ:
1. multi_class ကို `ovr` သတ်မှတ်ထားပြီး solver ကို `liblinear` သတ်မှတ်ထားသော logistic regression ကို ဖန်တီးပါ
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
@ -163,27 +163,28 @@ Multiclass case ကို အသုံးပြုနေသောကြောင
print ("Accuracy is {}".format(accuracy))
```
`lbfgs` က default အဖြစ် သတ်မှတ်ထားသော solver ဖြစ်ပြီး, အဲဒီ solver ကို စမ်းသပ်ကြည့်ပါ
> မှတ်ချက်၊ သင့်ဒေတာကိုလိုအပ်သောအခါချောမောစေရန် Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) function ကိုအသုံးပြုပါ။
အတိအကျမှုသည် **80%** အထက်မှာကောင်းမွန်ပါသည်။
✅ ပုံမှန်အားဖြင့်သတ်မှတ်ထားသော `lbfgs` ကဲ့သို့ အခြား solver ကို စမ်းသုံးကြည့်ပါ။
1. ဒီမော်ဒယ်ကို စမ်းသပ်ရန်အတွက် ဒေတာတစ်တန်း (#50) ကို စမ်းကြည့်နိုင်သည်-
> မှတ်ချက် - လိုအပ်လျှင် Pandas ၏ [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) function အသုံးပြုပြီး ဒေတာကို တန်းစီချခြင်း။
တိကျမှုမှာ **၈၀% ကျော်** ဖြစ်ကြောင်း တွေ့နိုင်ပါသည်!
1. ဒေတာ အတန်းတစ်ခု (#50) ကို စမ်းသပ်ကာ ဒီမော်ဒယ်က ဘယ်လို သွားမလဲ ကြည့်နိုင်ပါသည် -
```python
print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
print(f'cuisine: {y_test.iloc[50]}')
```
ရလဒ်ကို ပုံနှိပ်ထားသည်-
ရလဒ် ကို ဤသို့ ပြသသည် -
```output
ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
cuisine: indian
```
✅ အခြားတန်းနံပါတ်ကို စမ်းကြည့်ပြီး ရလဒ်များကို စစ်ဆေးပါ။
1. နက်နက်ရှိုင်းရှိုင်း စစ်ဆေးလိုပါက ဒီခန့်မှန်းမှု၏ အတိအကျမှုကို စစ်ဆေးနိုင်သည်-
✅ အတန်း အရေအတွက် ပြောင်းပြီး ရလဒ်တွေ စစ်ဆေးကြည့်ပါ။
1. Digging deeper, you can check for the accuracy of this prediction:
```python
test= X_test.iloc[50].values.reshape(-1, 1).T
@ -195,7 +196,7 @@ Multiclass case ကို အသုံးပြုနေသောကြောင
topPrediction.head()
```
ရလဒ်ကို ပုံနှိပ်ထားသည် - အိန္ဒိယအစားအစာဟာ အကောင်းဆုံးခန့်မှန်းချက်ဖြစ်ပြီး အလားအလာကောင်းများပါသည်-
The result is printed - Indian cuisine is its best guess, with good probability:
| | 0 |
| -------: | -------: |
@ -205,9 +206,9 @@ Multiclass case ကို အသုံးပြုနေသောကြောင
| korean | 0.017277 |
| thai | 0.007634 |
မော်ဒယ်က အိန္ဒိယအစားအစာဖြစ်တယ်လို့ အတော်လေးသေချာနေတာကို ရှင်းပြနိုင်ပါသလား?
Can you explain why the model is pretty sure this is an Indian cuisine?
1. Regression သင်ခန်းစာများတွင် လုပ်ခဲ့သလို Classification Report ကို ပုံနှိပ်ပြီး အသေးစိတ်ကို ရယူပါ-
1. Get more detail by printing a classification report, as you did in the regression lessons:
```python
y_pred = model.predict(X_test)
@ -221,24 +222,26 @@ Multiclass case ကို အသုံးပြုနေသောကြောင
| japanese | 0.70 | 0.75 | 0.72 | 220 |
| korean | 0.86 | 0.76 | 0.81 | 242 |
| thai | 0.79 | 0.85 | 0.82 | 254 |
| accuracy | 0.80 | 1199 | | |
| accuracy | | | 0.80 | 1199 |
| macro avg | 0.80 | 0.80 | 0.80 | 1199 |
| weighted avg | 0.80 | 0.80 | 0.80 | 1199 |
## 🚀စိန်ခေါ်မှု
## 🚀Challenge
ဒီသင်ခန်းစာမှာ သင်ရဲ့ သန့်စင်ထားသော ဒေတာကို အသုံးပြုပြီး အစားအစာအမျိုးအစားကို ခန့်မှန်းနိုင်တဲ့ Machine Learning မော်ဒယ်တစ်ခုကို တည်ဆောက်ခဲ့ပါတယ်။ Scikit-learn မှာ ဒေတာကို ခွဲခြားဖို့ ရရှိနိုင်တဲ့ အမျိုးမျိုးသော ရွေးချယ်မှုများကို ဖတ်ရှုရန် အချိန်ယူပါ။ 'solver' ဆိုတဲ့ အယူအဆကို နက်နက်ရှိုင်းရှိုင်း လေ့လာပြီး မော်ဒယ်အတွင်းမှာ ဘာတွေဖြစ်ပျက်နေလဲဆိုတာကို နားလည်ပါ။
ဒီသင်ခန်းစာမှာ သင်ဟာ သန့်ရှင်းပြီးပြင်ဆင်ထားတဲ့ ဒေတာကို အသုံးပြုပြီး ပစ္စည်းများအခြေပြု၍ နိုင်ငံတစ်ကာစားနပ်ရိက္ခာမျိုးကို ခန့်မှန်းနိုင်တဲ့ စက်မှုသင်ယူမှု မော်ဒယ်ကို တည်ဆောက်ခဲ့ပါသည်။ Scikit-learn က ဒေတာကို သတ်မှတ်ဖော်ကြားဖို့ ပေးသည့် အမျိုးအစားများအတွက် ရွေးချယ်စရာများစွာကို အချိန်ယူဖတ်ရှုပါ။ 'solver' အယူအဆိုနောက်က အကြောင်းအရာကို ပိုမိုနက်နဲစွာ လေ့လာပါ။
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## [စာသင်ခန်း နှောင်း အကြံပေး စစ်ဆေးမှု](https://ff-quizzes.netlify.app/en/ml/)
## ပြန်လည်သုံးသပ်ခြင်းနှင့် ကိုယ်တိုင်လေ့လာခြင်း
Logistic Regression ရဲ့ သင်္ချာဆိုင်ရာ အခြေခံကို နက်နက်ရှိုင်းရှိုင်း လေ့လာရန် [ဒီသင်ခန်းစာ](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) ကို ဖတ်ရှုပါ။
## အလုပ်ပေးစာ
Logistic regression နောက်က ဖြစ်ပေါ်လာတဲ့ နည်းဗေဒများကို [ဒီသင်ခန်းစာ](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) တွင် နည်းပိုမို နက်နဲစွာ လေ့လာပါ။
## အလုပ်တာဝန်
[Solvers ကို လေ့လာပါ](assignment.md)
[Solvers များကို လေ့လာပါ](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 -->

@ -8,16 +8,16 @@
[![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) | [Khmer](../km/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 တွင် ဘာသာစကား ၅၀ ကျော်၏ ဘာသာပြန်ထားမှုများပါရှိပြီး ဒေါင်းလုပ်အရွယ်အစားကို အလွန်တက်ကြွစေပါသည်။ ဘာသာပြန်မှုများမပါဘဲ ကလုန်းချင်ပါက sparse checkout ကို အသုံးပြုပါ:
> ဒီအသံသင်ခန်းစာတွင် ဘာသာစကား ၅၀ ကျော်အတွက်ဘာသာပြန်ချက်များ ပါဝင်ပြီး ဒေါင်းလုန်းမှုအရေအတွက်ကို တိုးမြှင့်ပေးသည်။ ဘာသာပြန်ချက်များ မပါဘဲ ကလုန်းလုပ်လိုပါက sparse checkout ကို သုံးနိုင်သည်။
>
> **Bash / macOS / Linux:**
> ```bash
@ -33,145 +33,146 @@
> 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) တွင် ၂၀၂၅ ခုနှစ် စက်တင်ဘာလ ၁၈ ရက်မှ ၃၀ ရက်အထိ စိတ်ဝင်စားဖိတ်ကြားပါသည်။ GitHub Copilot ကို Data Science အတွက် အသုံးပြုနည်းများကို သင်ယူခွင့်ရပါမည်။
ကျွန်ုပ်တို့မှာ Discord တွင် AI တွင် အတူတကွသင်ယူမှု စီးရီးရှိပြီး၊ ပို၍သိရှိလိုပါက၊ ၂၀၂၅ ခုနှစ် စက်တင်ဘာလ ၁၈ မှ ၃၀ အထိ [Learn with AI Series](https://aka.ms/learnwithai/discord) တွင် ဆုတောင်းပါ။ GitHub Copilot ကို Data Science အတွက် အသုံးပြုနည်း လမ်းညွှန်ချက်များ ရရှိပါမည်။
![Learn with AI series](../../translated_images/my/3.9b58fd8d6c373c20.webp)
# စက်လေ့လာမှု (Machine Learning) စတင်သင်ယူခြင်း - သင်တန်းအစီအစဉ်
# စက်မှုလေ့လာမှု အခြေခံ သင်တန်းအစီအစဉ်
> 🌍 ကမ္ဘာတဝှမ်း လှည့်လည် သင်ကြားသည့် စက်လေ့လာမှုနှင့် ကမ္ဘာ့ယဉ်ကျေးမှုများ 🌍
> 🌍 ကမ္ဘာတစ်၀န်း လှည့်ပတ် သင်ယူကြရအောင် Machine Learning ကို ကမ္ဘာ့ယဉ်ကျေးမှုဖြင့် ရှင်းပြကြမယ် 🌍
Microsoft ၏ Cloud Advocates မှ စက်လေ့လာမှုနှင့် ပတ်သက်သော အပတ် ၁၂ ကြာ၊ သင်ခန်းစာ ၂၆ ခုပါသော သင်တန်းအစီအစဉ်အား ပူဇော်ဂုဏ်ပြု၍ တင်ဆက်လိုက်ပါသည်။ ဤသင်တန်းအစီအစဉ်တွင် ရိုးရာစက်လေ့လာမှုကို ကျယ်ပြန့်စွာ သိရှိမှာဖြစ်ပြီး Scikit-learn ကို အသုံးပြုကာ အခြားလုပ်ဆောင်နည်းများထက် နက္ခတ်ရန်လေ့လာမှုများ(Deep Learning) မပါဝင်ပါ၊ ၎င်းကို ကျွန်ုပ်တို့၏ [AI for Beginners' curriculum](https://aka.ms/ai4beginners) တွင် ပါဝင်သည်။ ထို့အပြင် ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) နှင့် တွဲဖက်၍ သင်ယူနိုင်ပါသည်။
Microsoft ၏ Cloud Advocates မှ စက်မှုလေ့လာမှု ကို ပညာပေးသွားမည့် ၁၂ ပတ်၊ ၂၆ မျိုး သင်ခန်းစာ စီစဉ်ထားသည်။ ဒီသင်ခန်းစာတွင်၊ ပုံမှန်သုံးသော **classic machine learning** ဆိုသော အကြောင်းအရာများကို Scikit-learn စာကြည့်တိုက် အသုံးပြု၍ လေ့လာမည်ဖြစ် ပြီး၊ အနက်မြှင့် လေ့လာမှုကို [AI for Beginners' curriculum](https://aka.ms/ai4beginners) တွင် ဖော်ပြထားသည်။ ဤသင်ခန်းစာကို ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) နှင့်အတူလည်း ချိတ်ဆက်အသုံးပြုနိုင်သည်။
ကမ္ဘာတစ်ဝှမ်း လှည့်လည် ဘာသာရပ်ကြီးများမှ ရရှိသော ဒေတာများကို အသုံးပြု၍ ရိုးရာ စက်လေ့လာမှုနည်းများကို အသုံးပြုရာတွင် ဤသင်ခန်းစာများ လေ့လာသွားပါမည်။ လူကြိုက်များသော သင်ခန်းစာအပိုင်းများတွင် သင်ခန်းစာ မတိုင်မီနှင့်ပြီးသော အမြင်အာရုံ စစ်ဆေးမှုများ၊ ရေးသားချက်နဲ့ လေ့လာမည့်အတိုင်းဆောင်ရွက်ရမည့် အပိုင်းများ၊ ဖြေရှင်းချက်များ၊ တာဝန်ပေးအပ်ချက်များ ပါဝင်သည်။ ပရောဂျက်အခြေပြု သင်ကြားပုံစံက အသစ်သင်ယူသူများအတွက် စွဲမက်စေခြင်းအတွက် ထိရောက်သော နည်းလမ်းဖြစ်သည်။
ကမ္ဘာတဝန်းက ဒေတာများအပေါ် အခြေခံ၍ အဆိုပါ classic machine learning နည်းလမ်းများကို အသုံးပြုကာ ခရီးသွားကြပါစို့။ သင်ခန်းစာတစ်ခုချင်းစီတွင် မတိုင်မီနှင့်ပြီးနောက် ကွစ်ဇ်များ၊ အသေးစိတ်ရေးစရာများ၊ ဖြေဆိုချက်များ၊ တာဝန်ချမှတ်ချက်များ ပါဝင်သည်။ စီမံကိန်းအခြေပြု သင်ကြားမှု ရေးစရာသည် သင်ယူသူများ သင်ယူရာတွင် အကျိုးရှိစေသည်။
**✍️ ကျွန်ုပ်တို့၏ မူရင်းစာရေးသူများအား အထူးကျေးဇူးတင်ရှိပါသည်** 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
**🤩 ကျွန်ုပ်တို့၏ R သင်ခန်းစာများအတွက် Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, နှင့် Vidushi Gupta တို့အား ထပ်မံကျေးဇူးအများကြီးတင်ရှိပါသည်!**
**🤩 R သင်ခန်းစာများအတွက် Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, နှင့် Vidushi Gupta များကို အထူးပင်ကျေးဇူးတင်ရှိပါသည်!**
# စတင်အသုံးပြုခြင်း
# စတင်ခြင်း
အောက်ပါအဆင့်များကို လိုက်နာပါ။
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)
> 🔧 **ကူညီရန်လိုအပ်ပါသလား?** ထည့်သွင်းခြင်း၊ ဆက်တင်အတည်ပြုခြင်းနှင့် သင်ခန်းစာများ ဆောင်ရွက်ရာတွင် တွေ့ကြုံနေရသော ပြဿနာများအတွက် [ပြဿနာဖြေရှင်းလမ်းညွှန်](TROUBLESHOOTING.md) ကို ကြည့်ရှုပါ။
> 🔧 **အကူအညီလိုပါသလား?** အင်စတောလေးရှင်း၊ စတင်ချိန်နှင့် သင်ခန်းစာများ ပြေးဆွဲရာ တွင် ဖြစ်တတ်သော ပြဿနာများအတွက် [Troubleshooting Guide](TROUBLESHOOTING.md) ကို ကြည့်ပါ။
**[ကျောင်းသားများ](https://aka.ms/student-page)**၊ ဤသင်တန်းအစီအစဉ်ကို အသုံးပြုလိုပါက တပတ်လုံးကို ကိုယ့် GitHub အကောင့်သို့ fork လုပ်ပြီး လေ့ကျင့်ခန်းများကို ကိုယ့်အဖွဲ့သို့မဟုတ် တစ်ယောက်တည်း ပြီးမြောက်စေပါ။
**[ကျောင်းသားများ](https://aka.ms/student-page)**၊ ဤသင်ခန်းစာကို အသုံးပြုရန်၊ repository ကို မိမိကိုယ်တိုင် GitHub အကောင့်တွင် fork ပြီး အလုပ်များကို ကိုယ်တိုင်သို့မဟုတ် အဖွဲ့လိုက် ဖြေရှင်းပါ။
- หลักสูตรก่อนการบรรยาย အသေးစိတ်စစ်ဆေးမှုကို စတင်ပါ
- သင်ခန်းစာကို ဖတ်ပြီး လုပ်ဆောင်ချက်များကို ကိုင်တွယ်ပြီး တစ်ခုချင်းစီမှာ သင်ယူမှုကို ပြန်လည်စဉ်းစားပါ။
- လုပ်ငန်းစီမံကိန်း များကို ဖြေရှင်းချက်ကုဒ်ကို မပြောင်းဘဲ သင်ကြားမှုများကို နားလည်ရင်း စမ်းသပ်ဖန်တီးကြည့်ပါ; သို့သော် အဆိုပါကုဒ်များကို /solution ဖိုလ်ဒါများတွင် တွေ့နိုင်ပါသည်။
- သင်ခန်းစာပြီးဆုံးပြီးလျှင် သတ်မှတ်ခေါင်းစဉ်အရ စစ်ဆေးမှုကို ဖြေဆိုပါ။
- စိန်ခေါ်မှုကို ပြီးမြောက်ပါ။
- တာဝန်ပေးအပ်ချက်ကို ပြီးစီးပါ။
- သင်ခန်းစာအုပ်အုပ်စုပြီးပါက [ဆွေးနွေးခန်း](https://github.com/microsoft/ML-For-Beginners/discussions) သို့ သွား၍ လေ့လာမှုကိန်းဂဏန်း(PAT) ကို ဖြည့်စွက်ပြီး အသံထွက်၍ "learn out loud" လုပ်ပါ။ 'PAT' သည် သင်၏လေ့လာမှုကို ပိုမိုကောင်းမွန်စေသော တိုးတက်မှုအကဲဖြတ်ကိရိယာတစ်ခုဖြစ်ပြီး အခြား PAT များအားလည်း တုံ့ပြန်နိုင်သည်။
- အကြို သင်ခန်းစာကွစ်ဇ်ဖြည့်ရမည်
- သင်ခန်းစာကို ဖတ်ပြီး လေ့ကျင့်ခန်းများ ပြီးမြောက်ရန် ရပ်နားတိုင်ကြားပြီး ပြန်လည်စဉ်းစားပါ။
- အဖြေကုဒ်ကို တိုက်ရိုက်_run_ မလုပ်ပဲ သင်ခန်းစာအကြောင်းအရ ကယ်နရာမှ စီမံကိန်း ထုတ်လုပ်ရန် ကြိုးပမ်းပါ၊ သို့သော် ကုဒ်များကို /solution ဖိုလ်ဒါတွင် ရရှိနိုင်ပါသည်။
- သင်ခန်းစာပြီးဆုံးလျှင် မေးခွန်းကွစ်ဇ် ဖြေပါ။
- စိန်ခေါ်မှု ပြီးမြောက်ပါ။
- တာဝန်လုပ်ငန်း ပြီးမြောက်ပါ။
- သင်ခန်းစာအုပ်စုတစ်ခု ပြီးဆုံးပြီးနောက် [ဆွေးနွေးပွဲ အဖို](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) ၏ module များနှင့် သင်ယူခရီးများကို လိုက်နာရန် အကြံပြုပါသည်။
> ထပ်မံလေ့လာစေလိုပါက အောက်ပါ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules နှင့် သင်ယူမှုလမ်းကြောင်းများ လိုက်နာဖို့ အကြံပြုပါသည်။
**ဆရာ/ဆရာမများအတွက်** ဤသင်တန်းအစီအစဉ်ကို မည်သို့ အသုံးပြုရမည်ကို [အကြံပြုချက်များ](for-teachers.md) ပါဝင်ပါသည်။
**ဆရာ/ဆရာမများ**၊ ဤသင်ခန်းစာကို အသုံးပြုနည်းအတွက် [အကြံပြုချက်များ](for-teachers.md) ပါဝင်ပါသည်။
---
## ဗီဒီယို လေ့လာရေ
## ဗီဒီယို ရှင်းပြချက်မျာ
အချို့သော သင်ခန်းစာများကို မိနစ်တိုအတွင်း ဗီဒီယိုအနေနှင့် ရရှိနိုင်သည်။ ၎င်းတို့အားစာအုပ်အတွင်းတွင်မှတစ်ဆင့် သို့မဟုတ် [ML for Beginners playlist on the Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) တွင် အောက်ပါပုံကိုႏွိပ်၍ ရှာဖွေကြည့်ရှုနိုင်ပါသည်။
သင်ခန်းစာတချို့ကို အသေးစား ဗီဒီယိုအဖြစ် ရရှိနိုင်ပါသည်။ ဤဗီဒီယိုများကို သင်ခန်းစာထဲတွင် တိုက်ရိုက်ရှာဖွေပါ၊ သို့မဟုတ် [ML for Beginners playlist မှ Microsoft Developer YouTube ချန်နယ်၌](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)
> 🎥 ပရောဂျက်နှင့် ဖန်တီးသူများအကြောင်း ဗီဒီယိုကို အပေါ်ဖော်ပြထားသော ပုံကို နှိပ်ပြီး ကြည့်ရှုပါ
> 🎥 အပေါ်ပါပုံကို နှိပ်၍ ဒီစီမံကိန်းနှင့် စီမံကိန်းကိုဖန်တီးထားသူများကို ကြည့်ရှုနိုင်သည်
---
## သင်ကြားပုံရပ်
ဤသင်တန်းအစီအစဉ်ကို ဖန်တီးရာတွင် နှစ်ခုသော သင်ကြားပုံရပ်များကို ရွေးကောက်ထားပါသည်။ ၎င်းမှာ လုပ်ငန်းအခြေပြု **ပရောဂျက်အခြေပြု** ဖြစ်ရမည်နှင့် **အကြိမ်ကြိမ်စစ်ဆေးမှုများ** ပါဝင်ရမည်ဖြစ်သည်။ ထို့ပြင် သင်တန်းကို တစ်ခုတည်းသော **ခေါင်းစဉ်** ရှိအောင် ပြင်ဆင်ထားပါသည်။
အကြောင်းအရာကို ပရောဂျက်များနှင့် ကိုက်ညီစေခြင်းအားဖြင့် ကျောင်းသားများ အတွက် ရင်ဘတ်စိတ်ဝင်စားမှုမြင့်မားပြီး အသိပညာ ကြားချိတ်ဆက်မှု တိုးမြင့်စေပါသည်။ ထို့အပြင် စာသင်ခန်းတစ်ခန်းမတိုင်မီ လေးနက်မှုမရှိသော စစ်ဆေးမှုတစ်ခုက ကျောင်းသား၏ သင်ယူလိုရှိမှု ရည်ရွယ်ချက်ကို သတ်မှတ်ပေးပြီး၊ စာသင်ခန်းပြီးနောက် စစ်ဆေးမှုတစ်ခုက ဆက်လက်သိရှိမှုကို အတည်ပြုသည်။ ဤသင်တန်းအစီအစဉ်ကို အကြံပြုမှုပြုထားပြီး ပျော်ရွှင်ဖွယ်ဖြစ်သောပုံစံဖြစ်၍ အစိတ်အပိုင်းများ သို့မဟုတ် ပြည့်စုံစွာ သင်ယူနိုင်ပါသည်။ ပရောဂျက်များမှာ တဖြည်းဖြည်း ကြီးမားမှုတက်ပြီး ၁၂ ပတ်ကြာ ခရီးစဉ်၏ အဆုံးမှာ ရှင်းလင်းပြတ်သားလာသည်။ ဤသင်တန်းအစီအစဉ်တွင် နောက်ပိုင်းတွင် စက်လေ့လာမှု၏ အမှန်တကယ် အသုံးချမှုများကိုပါ ပါဝင်သည်၊ ၎င်းကို ထပ်မံအတတ်ပညာရရှိရန် သို့မဟုတ် ဆွေးနွေးခြင်းအခြေခံအဖြစ် အသုံးပြုနိုင်ပါသည်။
> ကျွန်ုပ်တို့၏ [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), နှင့် [Troubleshooting](TROUBLESHOOTING.md) လမ်းညွှန်ချက်များကို ရှာဖွေလိုက်ပါ။ သင်၏ တန်ဖိုးထားသော တုံ့ပြန်ချက်ကို ကြိုဆိုပါသည်။
## သင်ခန်းစာတစ်ခုစီတွင် ပါဝင်သည်
- ရွေးချယ်စရာ စကက်ချ်မှာ (sketchnote)
- ရွေးချယ်စရာ ပေါင်းစပ်ဗီဒီယို
- ဗီဒီယို လမ်းညွှန် (အချို့သင်ခန်းစာများသာ)
- [သင်ခန်းစာမတိုင်မီ အပူပေး စစ်ဆေးမှု](https://ff-quizzes.netlify.app/en/ml/)
- ရေးသားထားသော သင်ခန်းစာ
- ပရောဂျက်အခြေပြု သင်ခန်းစာများအတွက် ပရောဂျက် ဖန်တီးနည်း အဆင့်ဆင့် လမ်းညွန်ချက်များ
- နားလည်မှု စစ်ဆေးမှုများ
- စိန်ခေါ်မှုတစ်ခု
- ပေါင်းစပ် ဖတ်ရှုရန်
- တာဝန်ပေးအပ်ချက်
- [သင်ခန်းစာပြီးနောက် စစ်ဆေးမှု](https://ff-quizzes.netlify.app/en/ml/)
> **ဘာသာစကားများအကြောင်း မှတ်ချက်** - ဒီသင်ခန်းစာများကို အဓိကအားဖြင့် Python ဖြင့်ရေးသားထားပြီး၊ အများအပြားကို R ဖြင့်လည်းရနိုင်ပါသည်။ R သင်ခန်းစာ တစ်ခု ပြီးစီးရန်အတွက် `/solution` ဖိုလ်ဒါသို့ သွားပြီး R သင်ခန်းစာများကို ရှာဖွေပါ။ ၎င်းတို့တွင် **R Markdown** ဖိုင်ကို ဆိုလိုသည့် .rmd extension ပါဝင်ပြီး၊ ၎င်းမှာ `code chunks` (R သို့မဟုတ် အခြားဘာသာစကားများကို) နှင့် `YAML header` (PDF ကဲ့သို့သော ထွက်ရရှိမှုများကို ဖော်ပြရာတွင် လမ်းညွှန်သည်) ကို `Markdown စာတမ်း` အတွင်း ထည့်သွင်းထားသည့် ပုံစံတစ်မျိုးအဖြစ် သတ်မှတ်နိုင်သည်။ ထို့ကြောင့်၊ အချက်အလက် သိပ္ပံအတွက် သင်ရေးသူစနစ်တစ်ခုအဖြစ် အကောင်းဆုံးဖြစ်ပြီး သင့်ကုဒ်၊ ၎င်း၏ထွက်ရှိမှုနှင့် သင့်အတွေးများကို Markdown ဖြင့်ရေးသား နိုင်စေသည့် ပုံစံဟု ဆိုနိုင်သည်။ ထို့အပြင် R Markdown စာတမ်းများကို PDF, HTML သို့မဟုတ် Word ကဲ့သို့သော ထွက်ရှိမှု ပုံစံများသို့ ပြုလုပ်နိုင်သည်။
> **မေးဝန်းခြင်းများအကြောင်း မှတ်ချက်** - မေးဝန်းခြင်းများအားလုံးကို [Quiz App folder](../../quiz-app) တွင် ပါဝင်ပြီး၊ မေးခွန်းသုံးခုပါသော မေးဝန်းခြင်း ၅၂ ခု ပါဝင်ပါသည်။ ၎င်းတို့ကို သင်ခန်းစာများအတွင်းမှ ချိတ်ဆက်ထားသော်လည်း quiz app ကို ကိုယ့်တြင် အလိုအလျောက်စမ်းသပ်နိုင်သည်။ `quiz-app` ဖိုလ်ဒါတွင်ပါတဲ့ ညွှန်ကြားချက်များ လိုက်နာကာ ကိုယ့်စက်တွင် မဟုတ်မဖြစ် တည်ဆောက်၍ သို့မဟုတ် Azure တွင် ဖြန့်ချိနိုင်သည်။
| သင်ခန်းစာနံပါတ် | အကြောင်းအရာ | သင်ခန်းစာအုပ်စု | သင်ယူရမည့် ရည်မှန်းချက်များ | ချိတ်ဆက်ထားသော သင်ခန်းစာ | တာဝန်ရှိသူ |
| :--------------: | :-------------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------: |
| ၀၁ | ကွန်ပျူတာသင်္ချာသင်ခန်းစာ မိတ်ဆက် | [Introduction](1-Introduction/README.md) | ကွန်ပျူတာသင်္ချာ၏ အခြေခံအယူအဆများ ကို သင်ယူပါ | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| ၀၂ | ကွန်ပျူတာသင်္ချာ၏ သမိုင်းကြောင်း | [Introduction](1-Introduction/README.md) | ဤအကျဉ်းပိုင်း၏ သမိုင်းကြောင်းကို သင်ယူပါ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| ၀၃ | တရားမျှတမှုနှင့် ကွန်ပျူတာသင်္ချာ | [Introduction](1-Introduction/README.md) | ကွန်ပျူတာသင်္ချာ မော်ဒယ်များ တည်ဆောက်ခြင်းနှင့် အကောင်အထည်ဖော်ရာတွင် ကျောင်းသားများ ရေးသားစဉ်တွင် စဉ်းစားသင့်သည့် တရားမျှတမှု အရေးကြီးသော ဒဿနိက ဟူသော ခြိမ်းခြောက်မှုများမှာ ဘာတွေရှိသနည်း? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| ၀၄ | ကွန်ပျူတာသင်္ချာနည်းပညာများ | [Introduction](1-Introduction/README.md) | ကွန်ပျူတာသင်္ချာ သုတေသန မိသားစုများက မော်ဒယ်များ တည်ဆောက်ရာတွင် ယူသည့် နည်းပညာများမှာ မည်သို့ပါသနည်း? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| ၀၅ | ရည်ညွှန်းမှု မိတ်ဆက် | [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 |
| ၀၆ | မြောက်အမေရိကန် ဖရဲသရက်ဈေးနှုန်း 🎃 | [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 |
| ၀၇ | မြောက်အမေရိကန် ဖရဲသရက်ဈေးနှုန်း 🎃 | [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 |
| ၀၈ | မြောက်အမေရိကန် ဖရဲသရက်ဈေးနှုန်း 🎃 | [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 |
| ၀၉ | ဝက်ဘ် အက်ပ် 🔌 | [Web App](3-Web-App/README.md) | သင် သင်ယူထားသော မော်ဒယ်ကို အသုံးပြုရန် ဝက်ဘ် အက်ပ် တစ်ခုတည်ဆောက်ပါ | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| ၁၀ | ခွဲခြားခြင်း မိတ်ဆက် | [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 |
| ၁၁ | အာရှနှင့်အိန္ဒိယ အရသာများ 🍜 | [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 |
| ၁၂ | အာရှနှင့်အိန္ဒိယ အရသာများ 🍜 | [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 |
| ၁၃ | အာရှနှင့်အိန္ဒိယ အရသာများ 🍜 | [Classification](4-Classification/README.md) | သင့်မော်ဒယ်ကို အသုံးပြု၍ အကြံပြုထောက်ခံရေး ဝက်ဘ် အက်ပ် တည်ဆောက်ခြင်း | [Python](4-Classification/4-Applied/README.md) | Jen |
| ၁၄ | အုပ်စုဖွဲ့ခြင်း မိတ်ဆက် | [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 |
| ၁၅ | Nigeria ရဲ့ ဂီတ စတိုင်များ စူးစမ်းခြင်း 🎧 | [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 |
| ၁၆ | သဘာဝဘာသာစကား လုပ်ထုံးလုပ်နည်း မိတ်ဆက် ☕️ | [Natural language processing](6-NLP/README.md) | ရိုးရှင်းသော ဘော့တစ်ခု ဖန်တီးခြင်းအားဖြင့် NLP အခြေခံတွေကို သင်ယူပါ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| ၁၇ | အထွေထွေ NLP အလုပ်များ ☕️ | [Natural language processing](6-NLP/README.md) | ဘာသာစကားဖွဲ့စည်းမှုနှင့်ဆိုင်သော အလုပ်များကို စာလုံးပေါင်းအဆင့် စနစ်တကျ နားလည်၍ NLP ဗဟုသုတ ပိုမိုမြှင့်တင်ပါ | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| ၁၈ | ဘာသာပြန်ခြင်းနှင့်ခံစားချက် စစ်တမ်း ♥️ | [Natural language processing](6-NLP/README.md) | Jane Austen ၏ စာများဖြင့် ဘာသာပြန်ခြင်းနှင့်ခံစားချက် စစ်တမ်းများ | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| ၁၉ | ဥရောပရဲ့ ရင်ခုန်စေသော ဟိုတယ်များ ♥️ | [Natural language processing](6-NLP/README.md) | ဟိုတယ်သုံးသပ်ချက်များဖြင့် ခံစားချက် စစ်တမ်း ၁ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| ၂၀ | ဥရောပရဲ့ ရင်ခုန်စေသော ဟိုတယ်များ ♥️ | [Natural language processing](6-NLP/README.md) | ဟိုတယ်သုံးသပ်ချက်များ ဖြင့် ခံစားချက် စစ်တမ်း ၂ | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| ၂၁ | အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း မိတ်ဆက် | [Time series](7-TimeSeries/README.md) | အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း မိတ်ဆက် | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| ၂၂ | ⚡️ ကမ္ဘာလုံးဆိုင်ရာ လျှပ်စစ်အသုံး ပြုမှု ⚡️ - ARIMA ဖြင့် အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း | [Time series](7-TimeSeries/README.md) | ARIMA ဖြင့် အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| ၂၃ | ⚡️ ကမ္ဘာလုံးဆိုင်ရာ လျှပ်စစ်အသုံး ပြုမှု ⚡️ - SVR ဖြင့် အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း | [Time series](7-TimeSeries/README.md) | Support Vector Regressor ဖြင့် အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| ၂၄ | ပြန်လည်အားဖြည့်သင်ယူခြင်း မိတ်ဆက် | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning ဖြင့် ပြန်လည်အားဖြည့်သင်ယူခြင်း မိတ်ဆက် | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| ၂၅ | Peter ကို ကျားမှ ကာကွယ်ရန် အကူအညီ ပေးပါ! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| အပေါ်ဆုံး မှတ်ချက် | ML အကွယ်တဝင် အခြေအနေများနှင့် အသုံးချမှုများ | [ML in the Wild](9-Real-World/README.md) | ရိုးရာ ML ၏ စိတ်ဝင်စားဖွယ်နှင့် ထင်ဟပ်ဖော်ပြနိုင်သော အပြင်ပန်း လိုက်စားမှုများ | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| အပေါ်ဆုံး မှတ်ချက် | RAI dashboard အသုံးပြုပြီး ML မော်ဒယ်များ ပြင်ဆင်ခြင်း | [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 ကို ဖောက်ပြီး၊ ကိုယ့်စက်မှာ [Docsify](https://docsify.js.org/#/quickstart) ကို တပ်ဆင်ပါ၊ ထို့နောက် ဒီ repo ၏ မူလဖိုလ်ဒါထဲမှာ `docsify serve` ဟု ရိုက်ထည့်ပါ။ ဝဘ်ဆိုက်သည် ကိုယ့် localhost တွင် ပေါက် ၃၀၀၀ မှာ ဝန်ဆောင်မှုပေးမည်ဖြစ်ပြီး `localhost:3000` ဖြစ်ပါသည်။
## PDFs
သင်ရိုးညွှန်ကြားစာအုပ်၏ PDF ကို [ဤနေရာတွင်](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) ရှာဖွေပါ။
## သင်ကြားပုံ
ဤသင်ခန်းစာကို ဖန်တီးစဉ်တွင် နှစ်ခုသော သင်ကြားရေးပုစ္ဆာများကို ရွေးချယ်သည်။ ၎င်းတို့မှာ လက်တွဲဆောင်ရွက်ရသော **စီမံကိန်းအခြေပြု** သင်ကြားမှုနှင့် **နည်းပညာစစ်ဆေးမှုများကို အကြိမ်ကြိမ် ထည့်သွင်းမှု** ဖြစ်သည်။ ထို့အပြင် ဤသင်ခန်းစာမှာ **အကြောင်းအရာသွယ်မှု** ပါရှိသည်။
အကြောင်းအရာကို စီမံကိန်းများနှင့် ကိုက်ညီစေရန် သေချာကာ သင်ကြားသူများအတွက် စိတ်ဝင်စားမှုမြင့်မားလာပြီး အကြောင်းအရာ ကျွမ်းကျင်မှု ပြတ်သားမှု မြင့်မားစေသည်။ ကျောင်းခန်းစာတစ်ခု မတိုင်မီ ပြုလုပ်သော အနိမ့်ဆုံးအဆင့်ကွစ်ဇ်သည် သင်ကြားရန်အတွက် အဓိက ရည်ရွယ်ချက်ထားရှိစေသည်၊ သင်ခန်းစာပြီးချိန်မှာ ဖော်ပြထားသော ဒုတိယကွစ်ဇ်သည် တွေ့ရှိမှုတိုးတက်စေသည်။ ဤသင်ခန်းစာသည် စိတ်ကြိုက်နှင့် ပျော်ရွှင်စေသော အတိုင်း ပုံဖော်ထားပြီး ၁၂ ပတ်ကြာ အဆုံးသတ်ရာတွင် စီမံကိန်းများသည် အသေးစားမှ စ၍ များစွာ စိန်ခေါ်မှုအလွှာတက်သွားမည်ဖြစ်သည်။ အတန်းပြီးခြင်းအတွက် ML အလက်တွေ့အသုံးပြုမှုအပေါ် ဖော်ပြချက်လည်း ပါရှိသည်၊ သင်ကြားသူများအတွက် အပို အလိုက်လျှောညီမှု သို့မဟုတ် ဆွေးနွေးမှုအခြေခံခံရမည်ဖြစ်သည်။
> ကျွန်ုပ်တို့၏ [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), နှင့် [Troubleshooting](TROUBLESHOOTING.md) လမ်းညွှန်ချက်များကို ရှာဖွေနိုင်သည်။ သင်၏ ဖောက်သည်စဉ်းစားမှုပေးသည့် အကြံပြုချက်များကို ကြိုဆိုပါသည်!
## သင်ခန်းစာတိုင်းတွင် ပါဝင်သည်
- ရွေးချယ်နိုင်သော ဆန့်ကြည့်မှတ်တမ်း
- ရွေးချယ်နိုင်သော ထောက်ပံ့ပေးသော ဗီဒီယို
- ဗီဒီယို ဖြတ်သန်းမှု (တချို့သင်ခန်းစာများအတွက်သာ)
- [သင်ခန်းစာမတိုင်မီ အပူအေးကွစ်ဇ်](https://ff-quizzes.netlify.app/en/ml/)
- ကော်ပိုရေးရှင်းသင်ခန်းစာ
- စီမံကိန်းအခြေပြု သင်ခန်းစာများတွင် စီမံကိန်း ဖန်တီးရန် လမ်းညွှန်ချက်အဆင့်ဆင့်
- အသိပညာစစ်ပွဲများ
- စိန်ခေါ်မှု
- ထောက်ပံ့စာဖတ်ရှုမှု
- တာဝန်ကျေမှု
- [သင်ခန်းစာပြီးနောက် ကွစ်ဇ်](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` တွင် ထည့်သွင်းထားခြင်းဟု ရိုးရှင်းစွာ သတ်မှတ်နိုင်သည်။ ထို့ကြောင့် သင်၏ကုဒ်၊ ၎င်း၏အထွက်များနှင့် သင်၏စိတ်ကူးများကို Markdown တွင်ရေးသားနိုင်ခြင်းဖြင့် data science အတွက် ဥပမာဆန်သော စာရေးခြင်း ဖွဲ့စည်းမှုတစ်ခုအဖြစ် တန်ဆာပလာတစ်ခုအနေဖြင့် ကူညီပေးသည်။ ထို့အပြင် R Markdown စာရွက်များကို PDF၊ HTML သို့မဟုတ် Word ကဲ့သို့သော output ပုံစံများသို့ ပြောင်းလဲထုတ်ယူနိုင်ပါသည်။
> **အမေးဖြေများအကြောင်း မှတ်ချက်**: မေးခွန်းများအားလုံးကို [Quiz App ဖိုလ်ဒါ](../../quiz-app) တွင်ထားရှိပြီး မေးခွန်းသုံးခုပါသော မေးခွန်း ၅၂ ခုပါဝင်သည်။ ၎င်းတို့သည် သင်ခန်းစာအတွင်းမှ ချိတ်ဆက်ထားသော်လည်း quiz app ကို ဒေသခံမှာလည်း ပြေးနိုင်ပြီး၊ ဒေသခံမှာ လုပ်ဆောင်ရန် သတ်မှတ်ချက်များကို `quiz-app` ဖိုလ်ဒါတွင် လိုက်နာပါ။
| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author |
| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | စက်လေ့လာမှုသို့အညွှန်း | [အညွှန်း](1-Introduction/README.md) | စက်လေ့လာမှုနောက်ခံ အခြေခံအကြောင်းအရာများ လေ့လာပါ | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | စက်လေ့လာမှု၏ သမိုင်းကြောင်း | [အညွှန်း](1-Introduction/README.md) | ဤနယ်ပယ်၏ သမိုင်းကြောင်းကို လေ့လာပါ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | တရားမျှတမှုနှင့် စက်လေ့လာမှု | [အညွှန်း](1-Introduction/README.md) | စက်လေ့လာမှုပြုလုပ်သည့်အခါ တရားမျှတမှုဆိုင်ရာ အရေးကြီးသော နိယာမပိုင်းဆိုင်ရာ ပြဿနာများကို သင်ယူပါ။ | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | စက်လေ့လာမှု နည်းပညာများ | [အညွှန်း](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 | မြောက်အမေရိကန်ပဲ pumpkins စျေးနှုန်းများ 🎃 | [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 | မြောက်အမေရိကန်ပဲ pumpkins စျေးနှုန်းများ 🎃 | [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 | မြောက်အမေရိကန်ပဲ pumpkins စျေးနှုန်းများ 🎃 | [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 | ဝက်ဘ်အက်ပ် 🔌 | [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 | Nigérian ဂီတအကြိုက်များ ဆန်းစစ်ခြင်း 🎧 | [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 | သဘာဝဘာသာစကားဖြင့်အလုပ်လုပ်ခြင်း အညွှန်း ☕️ | [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) | ဘာသာစကားတည်ဆောက်မှုနှင့် ဆက်စပ်၍ လိုအပ်သော နေ့စဉ်အလုပ်များကို နားလည် မြင်တတ်ပါ | [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 ဖြစ်ပေါ်မှုနှင့် အသုံးပြုမှုများ | [ML in the Wild](9-Real-World/README.md) | ရိုးရာ ML ၏ စိတ်ဝင်စားဖွယ်နှင့် ပြင်းထန်သော လက်တွေ့ အသုံးပြုရန်များ | [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 ကို သင့်ဒေသခံစက်တွင် ထည့်သွင်းပါ](https://docsify.js.org/#/quickstart)၊ ပြီးလျှင် ဒီ repo ၏ root ဖိုလ်ဒါတွင် `docsify serve` ဟု ရေးပါ။ ဝဘ်ဆိုက်ကို သင့် localhost တွင် port 3000 တွင် အားပေးမည်။ `localhost:3000`
## PDF များ
သင်တန်းအတန်းတစ်ခု၏ PDF ကို [ဒီမှာ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) တွေ့ပါ။
## 🎒 အခြားသင်တန်းများ
ကျွန်ုပ်တို့အသင်းသည် အခြားသင်တန်းများကို ထုတ်လုပ်နေပါသည်။ စစ်ဆေးကြည့်ပါ။
ကျွန်ုပ်တို့အသင်းသည် အခြားသင်တန်းများကို ထုတ်လုပ်သည်။ စမ်းသပ်ကြည့်ပါ။
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -188,7 +189,7 @@ Microsoft ၏ Cloud Advocates မှ စက်လေ့လာမှုနှင
---
### စီးရီး အနုပညာ AI
### Generative AI Series
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -196,7 +197,7 @@ Microsoft ၏ Cloud Advocates မှ စက်လေ့လာမှုနှင
---
### အခြေခံ သင်ယူမှု
### အခြေခံသင်ယူမှု
[![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)
@ -213,24 +214,35 @@ Microsoft ၏ Cloud Advocates မှ စက်လေ့လာမှုနှင
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## စီစဉ်သော ကူညီမှု
## ကူညီမှု ရယူခြင်း
AI အပ်ပလီကေးရှင်း များ တည်ဆောက်ရာတွင် တင့်ဆိုင်သော မေးခွန်းများ ကျရောက်ပါက MCP သင်ယူသူများနှင့် အတွေ့အကြုံရှိ Developer များဖြင့် ဆွေးနွေးပွဲများတွင် ပါဝင်ဆွေးနွေးပါ။ ၎င်းသည် မေးခွန်းများအား ကြိုဆိုပြီး အသိပညာများကို အခမဲ့ မျှဝေသော ပံ့ပိုးမှုပိုင်း ကွန်ယက်တခု ဖြစ်ပါသည်။
Machine Learning သင်ယူနေစဉ် သို့မဟုတ် AI ဖြစ်တည်မှု အက်ပ်လိကေးရှင်းများ တည်ဆောက်နေစဉ်တွင် အခက်ခဲများ ကျရောက်ခဲ့သည်ဆိုလျှင် စိတ်ပူစရာမလိုပါ — ကူညီမှု ရနိုင်ပါသည်။
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
သင်နိုင်ငံသားများနှင့် ဖွံ့ဖြိုးသူများနှင့် ဆွေးနွေးနိုင်ပြီး၊ မေးခွန်းများ တောင်းနိုင်ပြီး၊ သင့် အတွေးများကို ပြန်လည် မျှဝေနိုင်ပါသည်။
- မေးခွန်းများ မေးရန်နှင့် အခြားလူများ နှင့်အတူ သင်ယူရန် လူမှုအသိုင်းအဝိုင်းသို့ ဝင်ရောက်ပါ
- Machine Learning အယူအဆများနှင့် ပရောဂျက် အကြံပြုချက်များ ဆွေးနွေးပါ
- အတွေ့အကြုံရှိ လက်တွေ့ ဖွံ့ဖြိုးသူများထံမှ လမ်းညွှန်မှု ရယူပါ
ထောက်ခံပံ့ပိုးသော လူမှုအသိုင်းအဝိုင်းသည် သင့်ကျွမ်းကျင်မှု တိုးတက်စေပြီး ပြဿနာများကို ပိုမိုလျင်မြန်စွာ ဖြေရှင်းရန် အကောင်းဆုံးနည်းလမ်းဖြစ်သည်။
ထုတ်ကုန် တုံ့ပြန်ချက် သို့မဟုတ် တည်ဆောက်သည်အထိ အမှားများ ရှိပါက:
[Microsoft Foundry Discord Community](https://discord.gg/nTYy5BXMWG)
အမှားများ၊ အလွဲသုံးစားခြင်းများ တွေ့ရှိပါက သို့မဟုတ် တိုးတက်မှု အကြံပြုချက်များရှိပါက၊ ဒီအမျိုးအစားကို သတင်းပို့ရန် ဒီဂျစ်တယ် မူရင်း Repository မှာ **Issue** တင်နိုင်ပါသည်။
ထုတ်ကုန်တုံ့ပြန်ချက်များအတွက် သို့မဟုတ် ရှိပြီးသား လူမှုအသိုင်းအဝိုင်း ပို့စ်များကို ရှာဖွေလိုပါက Developer Forum ကို သွားရောက်ပါ။
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## ထပ်မံသင်ယူသော အကြံပြုချက်များ
- သင်ခန်းစာတိုင်းပြီးစီးပြီးနောက် စာအုပ်များကို ပြန်လည်ကြည့်ရှုပါ။
- ကိုယ်တိုင် အယ်လ်ဂိုရစ်သမ်များကို လေ့ကျင့်ပါ။
- သင်ယူထားသော သဘောတရားများဖြင့် တကယ့်ကမ္ဘာဒေတာများကို ရှာဖွေပါ။
## ပေါင်းထည့် သင်ယူရန် အကြံပြုချက်များ
- တစ်ခါတစ်လေ သင်ခန်းစာပြီးနောက် နုတ်ဘုတ်များကို ပြန်လည်သုံးသပ်ပါ။
- ကိုယ်တိုင် အယ်လ်ဂိုရစ်မှတ်များကို လေ့ကျင့် ဆောင်ရွက်ပါ။
- သင်ယူထားသော အယူအဆများ အသုံးပြုပြီး လက်တွေ့ဒေတာ ကဏ္ဍများကို ရှာဖွေပါ။
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**အကြောင်းကြားချက်**
ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ဖြင့် ဘာသာပြန်ထားသည်။ ကျွန်ုပ်တို့သည်တိကျမှန်ကန်မှုအတွက် ကြိုးစားသော်လည်း၊ စက်မှုအလိုအလျောက် ဘာသာပြန်ချက်များတွင် အမှားများ သို့မဟုတ် မှားယွင်းမှုများ ရှိနိုင်ကြောင်း သတိပေးအပ်ပါသည်။ မူလစာရွက်စာတမ်းကို သူ၏ မူလဘာသာဖြင့်သာ တရားဝင်ရင်းမြစ်အဖြစ် တွက်ချက်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် သေချာမှန်ကန်သော လူ့ဘာသာပြန်ဝန်ဆောင်မှုကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုမှုဖြင့် ဖြစ်ပေါ်လာသော နားလည်မှုမှားယွင်းမှုများနှင့် အဓိပ္ပါယ်ပြောင်းလဲမှုများအတွက် ကျွန်ုပ်တို့၏ တာဝန်မရှိပါ။
**သတိပေးချက်**:
ဤစာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ တိကျမှန်ကန်မှုအတွက် ကြိုးစားထားသော်လည်း၊ အလိုအလျောက် ဘာသာပြန်ချက်များတွင် အမှားများ သို့မဟုတ် မှားယွင်းချက်များ ဖြစ်ပေါ်နိုင်ပါသည်။ မူလစာတမ်းကို မူရင်းဘာသာဖြင့်သာ မှန်ကန်နားလည်ရမည့် အရင်းအမြစ်ဟု သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူ့ပရော်ဖက်ရှင်နယ် ဘာသာပြန်ခြင်းကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်အား အသုံးပြုမှုကြောင့် ဖြစ်ပေါ်လာသော နားလည်မှုမှားယွင်းခြင်းများအတွက် ကျွန်ုပ်တို့ မတာဝန်ယူပါ။
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -90,8 +90,8 @@
"language_code": "uk"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:14:18+00:00",
"original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
"translation_date": "2026-04-20T20:21:55+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "uk"
},
@ -168,8 +168,8 @@
"language_code": "uk"
},
"4-Classification/2-Classifiers-1/README.md": {
"original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b",
"translation_date": "2025-09-05T13:06:26+00:00",
"original_hash": "cb761595e5b6c42b99bb81bd13683311",
"translation_date": "2026-04-20T20:23:04+00:00",
"source_file": "4-Classification/2-Classifiers-1/README.md",
"language_code": "uk"
},
@ -552,8 +552,8 @@
"language_code": "uk"
},
"README.md": {
"original_hash": "7fb48097f57e680b380cd9aae988d317",
"translation_date": "2026-04-06T17:34:56+00:00",
"original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0",
"translation_date": "2026-04-20T20:20:09+00:00",
"source_file": "README.md",
"language_code": "uk"
},

@ -1,136 +1,138 @@
# Побудова регресійної моделі за допомогою Scikit-learn: регресія чотирма способами
# Побудова регресійної моделі з використанням Scikit-learn: регресія чотирма способами
## Примітка для початківців
Лінійна регресія використовується, коли ми хочемо передбачити **числове значення** (наприклад, ціну будинку, температуру або обсяг продажів).
Вона працює, знаходячи пряму лінію, яка найкраще відображає зв’язок між вхідними ознаками та виходом.
Лінійна регресія використовується, коли ми хочемо передбачити **числове значення** (наприклад, ціну будинку, температуру або продажі).
Вона працює, знаходячи пряму, яка найкраще відображає зв’язок між вхідними ознаками й виходом.
У цьому уроці ми зосереджуємося на розумінні концепції перед тим, як дослідити більш просунуті методи регресії.
![Лінійна vs поліноміальна регресія інфографіка](../../../../translated_images/uk/linear-polynomial.5523c7cb6576ccab.webp)
У цьому уроці ми зосереджуємося на розумінні концепції перед тим, як вивчати більш просунуті методи регресії.
![Linear vs polynomial regression infographic](../../../../translated_images/uk/linear-polynomial.5523c7cb6576ccab.webp)
> Інфографіка від [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Передлекторний тест](https://ff-quizzes.netlify.app/en/ml/)
> ### [Цей урок доступний і на R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
## [Перевірка знань перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
> ### [Цей урок доступний на R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Вступ
До цього моменту ви досліджували, що таке регресія, використовуючи вибіркові дані з набору даних про ціни на гарбузи, який ми використовуватимемо протягом усього цього уроку. Ви також візуалізували ці дані за допомогою Matplotlib.
До цього моменту ви досліджували, що таке регресія, на прикладі даних про ціни на гарбузи, які ми використаємо протягом цього уроку. Ви також візуалізували дані за допомогою Matplotlib.
Тепер ви готові зануритися глибше у регресію в машинному навчанні. Хоча візуалізація допомагає зрозуміти дані, справжня сила машинного навчання полягає в авчанні моделей_. Моделі навчаються на історичних даних, щоб автоматично виявляти залежності в даних, і дозволяють прогнозувати результати для нових даних, яких модель раніше не бачила.
Тепер ви готові заглибитися в регресію для машинного навчання (ML). Візуалізація допомагає зрозуміти дані, але справжня сила машинного навчання полягає у авчанні моделей_. Моделі тренуються на історичних даних, щоб автоматично вловлювати залежності в даних і дозволяють робити прогнози для нових даних, які модель раніше не бачила.
У цьому уроці ви детальніше дізнаєтесь про два типи регресії: _базова лінійна регресія_ та _поліноміальна регресія_, а також про математику, що лежить в основі цих методів. Ці моделі дозволять нам прогнозувати ціни на гарбузи залежно від різних вхідних даних.
У цьому уроці ви дізнаєтесь більше про два типи регресії: _базова лінійна регресія_ та _поліноміальна регресія_, а також про математику, що лежить в основі цих методів. Ці моделі дозволять нам передбачати ціни на гарбузи залежно від різних вхідних даних.
[![ML для початківців - Розуміння лінійної регресії](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML для початківців - Розуміння лінійної регресії")
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд лінійної регресії.
> 🎥 Натисніть на зображення вище, щоб переглянути коротке відеоогляд лінійної регресії.
> Протягом цього курсу ми передбачаємо мінімальні знання математики і намагаємося зробити її доступною для студентів з інших галузей, тому звертайте увагу на примітки, 🧮 підказки, діаграми та інші інструменти для полегшення розуміння.
> Протягом цього курсу ми припускаємо мінімальні знання математики і прагнемо зробити матеріал доступним для студентів з різних галузей, тому звертайте увагу на примітки, 🧮 позначки, діаграми та інші інструменти навчання, які допоможуть зрозуміти матеріал.
### Передумови
### Вимоги
До цього часу ви вже маєте ознайомлення зі структурою даних про гарбузи, які ми досліджуємо. Ви можете знайти їх завантаженими та попередньо очищеними у файлі _notebook.ipynb_ цього уроку. У файлі ціна на гарбуз подана за бушель у новому датафреймі. Переконайтесь, що ви можете запускати ці ноутбуки в ядрах у Visual Studio Code.
Ви вже знайомі зі структурою даних про гарбузи, які ми досліджуємо. Ви можете знайти їх завантаженими та попередньо очищеними у файлі цього уроку _notebook.ipynb_. У файлі ціна гарбуза відображається за бушель у новому фреймі даних. Переконайтеся, що ви можете запускати ці ноутбуки у Visual Studio Code.
### Підготовка
Як нагадування, ви завантажуєте ці дані, щоб ставити до них запитання.
Нагадаємо, ви завантажуєте ці дані, щоб ставити питання.
- Коли найкращий час купувати гарбузи?
- Яку ціну можна очікувати за коробку мініатюрних гарбузів?
- Чи варто купувати їх у корзинах на півбушеля або у коробках на 1 1/9 бушеля?
Продовжимо досліджувати ці дані.
- Коли найкращий час купувати гарбузи?
- Яку ціну можна очікувати за коробку мініатюрних гарбузів?
- Чи варто купувати їх у кошиках на півбушеля, чи в коробках на 1 1/9 бушеля?
Продовжимо копатися в цих даних.
У попередньому уроці ви створили датафрейм Pandas і наповнили його частиною оригінального набору даних, стандартизувавши ціни за бушель. Проте при цьому ви змогли зібрати лише близько 400 точок даних і лише для осінніх місяців.
У попередньому уроці ви створили Pandas DataFrame і заповнили його частиною оригінального набору даних, стандартизуючи ціни за бушель. Проте таким чином вдалося зібрати лише близько 400 точок даних і тільки за осінні місяці.
Погляньте на дані, які ми заздалегідь завантажили у супровідному ноутбуці цього уроку. Дані завантажено, і побудовано початковий графік розсіювання для показу даних по місяцях. Можливо, ми зможемо отримати трохи більше інформації про природу цих даних, очистивши їх ще більше.
Ознайомтеся з даними, які ми завантажили у супровідному ноутбуці цього уроку. Дані завантажені, і початковий розсіювальний графік відображає дані за місяцями. Можливо, ми зможемо дізнатися більше про природу даних, очистивши їх більш ретельно.
## Лінійна регресійна лінія
Як ви дізнались у Уроці 1, мета вправи з лінійної регресії це можливість побудувати лінію для:
Як ви дізналися в уроці 1, мета лінійної регресійної вправи — побудувати лінію, щоб:
- **Показу взаємозв’язків змінних**. Показати зв’язок між змінними
- **Робити прогнози**. Робити точні прогнози, де нова точка даних розташується відносно цієї лінії.
- **Показати залежності змінних.** Відобразити зв’язок між змінними
- **Зробити прогнози.** Робити точні прогнози про те, де нова точка даних розміститься відносно цієї лінії
Типово для **регресії найменших квадратів** малюють саме таку лінію. Термін "найменші квадрати" відноситься до процесу мінімізації загальної помилки в нашій моделі. Для кожної точки даних ми вимірюємо вертикальну відстань (яку називають залишком) між фактичною точкою і нашою регресійною лінією.
Зазвичай для цього використовується **регресія найменших квадратів (Least-Squares Regression)**. Термін «найменших квадратів» означає процес мінімізації загальної похибки в нашій моделі. Для кожної точки даних ми вимірюємо вертикальну відстань (результат, який називається залишком) між фактичною точкою та нашою регресійною лінією.
Ці відстані ми підносимо до квадрату з двох основних причин:
Ми підносимо ці відстані у квадрат з двох основних причин:
1. **Величина важливіша за напрямок:** Ми хочемо поставитись до помилки -5 так само, як до помилки +5. Квадрат робить усі значення додатними.
1. **Величина важливіша за напрямок:** Хочемо, щоб похибка -5 розглядалася так само, як і +5. Квадрат робить всі значення позитивними.
2. **Покарання за викиди:** Квадрат надає більшу вагу великим помилкам, змушуючи лінію триматися ближче до точок, які далеко розташовані.
2. **Штрафування викидів:** Квадрат надає більшу вагу великим похибкам, що змушує лінію ближче підходити до точок, які розташовані далеко.
Потім ми додаємо всі ці квадратні значення разом. Наша мета — знайти таку лінію, де ця сума буде мінімальною (найменшим можливим значенням) — звідси й назва "найменших квадратів".
Потім ми складаємо всі ці квадрати. Наша мета — знайти лінію, де ця сума квадратичних відхилень буде найменшою (мінімальною) — звідси й назва «найменших квадратів».
> **🧮 Покажи математику**
>
> Цю лінію, яка називається інією найкращого наближення_, можна виразити за допомогою [рівняння](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> **🧮 Покажіть мені математику**
> Цю лінію, яку називають інією найкращого прилягання_, можна подати за допомогою [рівняння](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` це "пояснювальна змінна". `Y` "залежна змінна". Нахил лінії `b`, а `a` це y-перетин, що відображає значення `Y`, коли `X = 0`.
>
>![обчислення нахилу](../../../../translated_images/uk/slope.f3c9d5910ddbfcf9.webp)
>
> Спочатку обраховуємо нахил `b`. Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
>
> Іншими словами, і звертаючись до нашого початкового питання з даних про гарбузи: "передбачити ціну гарбуза за бушель по місяцях", `X` вказує на ціну, а `Y` на місяць продажу.
>
>![завершення рівняння](../../../../translated_images/uk/calculation.a209813050a1ddb1.webp)
>
> Обчисліть значення Y. Якщо ви платите близько 4 доларів, то це, мабуть, квітень! Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
>
> Математика, що обчислює цю лінію, має показати нахил лінії, який також залежить від перетину, тобто де знаходиться `Y`, коли `X = 0`.
>
> Ви можете ознайомитись з методом обчислення цих значень на сайті [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Також відвідайте [цей калькулятор найменших квадратів](https://www.mathsisfun.com/data/least-squares-calculator.html), щоб побачити, як значення чисел впливають на лінію.
>
> `X` — 'пояснювальна змінна', `Y` — 'залежна змінна'. Кут нахилу лінії — `b`, а `a` — це перетин з віссю Y, тобто значення `Y`, коли `X = 0`.
>
>![calculate the slope](../../../../translated_images/uk/slope.f3c9d5910ddbfcf9.webp)
>
> Спершу обчислюємо нахил `b`. Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
>
> Іншими словами, у нашому прикладі з гарбузами, де треба "передбачити ціну гарбуза за бушель залежно від місяця", `X` — це ціна, а `Y` — місяць продажу.
>
>![complete the equation](../../../../translated_images/uk/calculation.a209813050a1ddb1.webp)
>
> Обчисліть значення Y. Якщо ви платите близько $4, це має бути квітень! Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
>
> Математика, що обчислює лінію, має враховувати нахил і перетин лінії, тобто де знаходиться `Y`, коли `X = 0`.
>
> Ви можете ознайомитися з методом обчислення на сайті [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Також відвідайте [цей калькулятор найменших квадратів](https://www.mathsisfun.com/data/least-squares-calculator.html), щоб подивитися, як значення впливають на лінію.
## Кореляція
Ще один термін, який потрібно зрозуміти, це **коефіцієнт кореляції** між заданими змінними X та Y. За допомогою графіка розсіювання ви швидко можете візуалізувати цей коефіцієнт. Якщо точки на графіку розташовані акуратно по лінії — кореляція висока, якщо розкидані по всьому графіку — кореляція низька.
Добра модель лінійної регресії матиме високий (ближчий до 1, ніж до 0) коефіцієнт кореляції, визначений методом найменших квадратів із регресійною лінією.
✅ Запустіть ноутбук, який супроводжує цей урок, і подивіться на графік розсіювання місяця продажу до ціни. Чи є у даних про продажі гарбузів за місяцями висока чи низька кореляція згідно з вашим візуальним тлумаченням графіка? Чи зміниться це, якщо використати більш тонкий показник замість `Month`, наприклад, *день року* (тобто кількість днів з початку року)?
Ще один термін для розуміння — це **коефіцієнт кореляції** між змінними X і Y. За допомогою розсіювального графіку ви можете швидко побачити цей коефіцієнт. Якщо точки показані впорядковано уздовж лінії, кореляція висока, якщо розкидані хаотично — кореляція низька.
У коді нижче ми припустимо, що очистили дані й отримали датафрейм під назвою `new_pumpkins`, схожий на такий:
Добрий лінійний регресійний модель — це та, у якої коефіцієнт кореляції високо (ближче до 1, ніж до 0) і з використанням методу найменших квадратів із регресійною лінією.
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
✅ Запустіть ноутбук, що супроводжує цей урок, та подивіться на розсіювальний графік "Місяць - Ціна". Чи виглядає, що дані, що зв’язують місяць і ціну продажу гарбузів, мають високу чи низьку кореляцію згідно з вашим візуальним аналізом графіка? Чи зміниться це, якщо використати більш детальний показник замість `Month`, наприклад, *день року* (число днів від початку року)?
> Код для очистки даних доступний у [`notebook.ipynb`](notebook.ipynb). Ми провели такі ж кроки очищення, як і в попередньому уроці, і обчислили стовпець `DayOfYear` за допомогою такого виразу:
У наведеному нижче коді ми припускаємо, що дані були очищені і отримано DataFrame з назвою `new_pumpkins`, схожий на наступний:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|---------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> Код для очищення даних доступний у файлі [`notebook.ipynb`](notebook.ipynb). Ми виконали ті самі кроки очищення, що й у попередньому уроці, і обчислили стовпець `DayOfYear` за допомогою такого виразу:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Тепер, коли ви розумієте математику за лінійною регресією, давайте створимо модель регресії, щоб визначити, який пакет гарбузів має найкращі ціни. Ті, хто купує гарбузи для осінніх святкових майданчиків, можуть захотіти цю інформацію, аби оптимізувати свої закупівлі.
Тепер, коли ви маєте уявлення про математику лінійної регресії, давайте створимо регресійну модель, щоб побачити, чи можемо ми передбачити, яка упаковка гарбузів матиме найкращі ціни. Хтось, хто купує гарбузи для осіннього ярмарку, може хотіти цю інформацію, щоб оптимізувати свої покупки.
## Пошук кореляції
[![ML для початківців - Пошук кореляції: ключ до лінійної регресії](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML для початківців - Пошук кореляції: ключ до лінійної регресії")
[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд кореляції.
> 🎥 Натисніть на зображення вище, щоб переглянути коротке відео про кореляцію.
Як ви, мабуть, помітили у попередньому уроці, середня ціна за місяцями виглядає так:
Із попереднього уроку ви, мабуть, бачили, що середня ціна по місяцях виглядає так:
<img alt="Середня ціна за місяцями" src="../../../../translated_images/uk/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="Average price by month" src="../../../../translated_images/uk/barchart.a833ea9194346d76.webp" width="50%"/>
Це свідчить про те, що повинен бути певний зв’язок, і ми можемо спробувати навчити модель лінійної регресії, щоб спрогнозувати відношення між `Month` і `Price`, або між `DayOfYear` і `Price`. Ось графік розсіювання, який показує останній зв’язок:
Це підказує, що повинна бути певна кореляція, і ми можемо спробувати навчити модель лінійної регресії для прогнозу зв’язку між `Month` і `Price`, або між `DayOfYear` і `Price`. Ось розсіювальний графік для останнього зв’язку:
<img alt="Графік розсіювання Ціни проти Дня року" src="../../../../translated_images/uk/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" 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 за `Month` і -0.17 за `DayOfMonth`, але може існувати ще один важливий зв’язок. Виглядає, що існують різні кластери цін, які відповідають різним сортам гарбузів. Щоб підтвердити цю гіпотезу, побудуємо графік розсіювання кожної категорії гарбузів різним кольором. Передаючи параметр `ax` функції `scatter`, ми можемо відобразити всі точки на одному графіку:
Здається, кореляція досить мала: -0.15 за `Month` та -0.17 за `DayOfMonth`, але може бути ще один важливий зв’язок. Виглядає, що існують різні кластери цін відповідно до сортів гарбуза. Щоб підтвердити це припущення, побудуємо графік, де кожен сорт гарбузів виділено іншим кольором. Передаючи параметр `ax` в функцію `scatter`, ми можемо відобразити всі точки на одному графіку:
```python
ax=None
@ -139,41 +141,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/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="Bar graph of price vs variety" 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="Графік розсіювання Ціни проти Дня року для pie type" src="../../../../translated_images/uk/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/uk/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Якщо тепер обчислити кореляцію між `Price` і `DayOfYear` за допомогою функції `corr`, отримаємо близько `-0.27` — це означає, що навчання прогнозної моделі має сенс.
Якщо тепер порахувати кореляцію між `Price` і `DayOfYear` за допомогою функції `corr`, отримаємо приблизно `-0.27` — це означає, що навчання прогнозної моделі має сенс.
> Перед навчанням моделі лінійної регресії важливо впевнитися, що наші дані чисті. Лінійна регресія погано працює з відсутніми значеннями, тому варто видалити всі порожні клітинки:
> Перед тим, як навчати лінійну регресійну модель, важливо переконатися, що дані чисті. Лінійна регресія погано працює з пропущеними значеннями, тому має сенс позбутися порожніх клітинок:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Іншим підходом може бути заповнення порожніх значень середніми значеннями відповідного стовпця.
Іншим підходом може бути заповнення порожніх значень середніми значеннями стовпця.
## Проста лінійна регресія
[![ML для початківців - Лінійна і поліноміальна регресія за допомогою Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML для початківців - Лінійна і поліноміальна регресія за допомогою Scikit-learn")
[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд лінійної та поліноміальної регресії.
> 🎥 Натисніть на зображення вище, щоб переглянути коротке відеоогляд лінійної та поліноміальної регресії.
Для навчання моделі лінійної регресії ми використаємо бібліотеку **Scikit-learn**.
@ -182,49 +185,49 @@ from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Почнемо з розділення вхідних значень (ознаки) і очікуваного результату (мітки) у окремі масиви numpy:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Зверніть увагу, що довелося застосувати `reshape` до вхідних даних, щоб пакет лінійної регресії правильно їх сприйняв. Лінійна регресія очікує 2D-масив на вході, де кожен рядок — це вектор вхідних ознак. В нашому випадку, оскільки вхідна ознака лише одна, потрібен масив розміру N&times;1, де N — розмір набору даних.
> Зверніть увагу, що нам довелося виконати `reshape` для вхідних даних, щоб пакет лінійної регресії правильно їх зрозумів. Лінійна регресія очікує 2D-масив на вході, де кожен рядок — це вектор вхідних ознак. У нашому випадку, оскільки є лише одна ознака, нам потрібен масив розміром N&times;1, де N — розмір набору даних.
Далі потрібно розділити дані на навчальний і тестовий набори, щоб можна було перевірити модель після навчання:
Далі потрібно розділити дані на навчальний (train) та тестовий (test) набори, щоб можна було перевірити модель після навчання:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Нарешті, навчання власне моделі лінійної регресії займає лише два рядки коду. Спочатку створюємо об’єкт `LinearRegression`, а потім підганяємо його до наших даних за допомогою методу `fit`:
Нарешті, навчання лінійної регресійної моделі займає лише два рядки коду. Ми створюємо об’єкт `LinearRegression` і навчаємо його на наших даних за допомогою методу `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Об'єкт `LinearRegression` після виконання `fit` містить усі коефіцієнти регресії, до яких можна звернутися за допомогою властивості `.coef_`. У нашому випадку є лише один коефіцієнт, який повинен бути близько `-0.017`. Це означає, що ціни, здається, трохи зменшуються з часом, але не надто сильно, приблизно на 2 центи на день. Ми також можемо отримати точку перетину регресії з віссю Y за допомогою `lin_reg.intercept_`у нашому випадку вона буде близько `21`, що вказує на ціну на початку року.
Об’єкт `LinearRegression` після виконання `fit` містить усі коефіцієнти регресії, до яких можна отримати доступ за допомогою властивості `.coef_`. У нашому випадку є лише один коефіцієнт, який має бути близько `-0.017`. Це означає, що ціни, схоже, трохи знижуються з часом, але не дуже сильно, приблизно на 2 центи за день. Ми також можемо отримати точку перетину регресії з віссю Y за допомогою `lin_reg.intercept_` — вона буде близько `21` у нашому випадку, що вказує на ціну на початку року.
Щоб побачити, наскільки точна наша модель, ми можемо передбачити ціни на тестовому наборі даних, а потім виміряти, наскільки близькі наші передбачення до очікуваних значень. Це можна зробити, використовуючи метрику середньоквадратичної помилки (MSE), яка є середнім усіх квадратів різниць між очікуваним і передбаченим значенням.
Щоб побачити, наскільки точна наша модель, ми можемо передбачити ціни на тестовому наборі даних, а потім виміряти, наскільки близькі наші прогнози до очікуваних значень. Це можна зробити за допомогою метрики кореня середньоквадратичної помилки (RMSE), яка є коренем середнього значення всіх квадратів різниці між очікуваним і передбаченим значеннями.
```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}%)')
rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/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)
@ -235,17 +238,17 @@ plt.plot(X_test,pred)
## Поліноміальна регресія
Інший тип лінійної регресії — це поліноміальна регресія. Хоча іноді між змінними існує лінійний зв’язок — чим більша гарбуз за обсягом, тим вища ціна — іноді ці зв’язки не можна зобразити у вигляді площини або прямої лінії.
Інший тип лінійної регресії — це поліноміальна регресія. Хоча іноді між змінними існує лінійний зв’язок — чим більша гарбуз за обсягом, тим вища ціна — іноді такі зв’язки не можна відобразити у вигляді площини чи прямої лінії.
✅ Ось [ще кілька прикладів](https://online.stat.psu.edu/stat501/lesson/9/9.8) даних, для яких можна використати поліноміальну регресію
✅ Ось [декілька інших прикладів](https://online.stat.psu.edu/stat501/lesson/9/9.8) даних, які можуть потребувати поліноміальної регресії.
Знову погляньте на зв’язок між Датою та Ціною. Чи здається цей розкиданий графік такого, що його обов’язково треба аналізувати за допомогою прямої лінії? Чи не можуть ціни коливатися? У цьому випадку ви можете спробувати поліноміальну регресію.
Подивіться ще раз на зв’язок між датою та ціною. Чи цього розсіювання досить, щоб його обов’язково слід аналізувати прямою лінією? А чи не можуть ціни коливатися? У такому разі можна спробувати поліноміальну регресію.
✅ Поліноми — це математичні вирази, які можуть складатися з однієї або кількох змінних і коефіцієнтів.
✅ Поліноми — це математичні вирази, які можуть складатися з однієї чи кількох змінних і коефіцієнтів.
Поліноміальна регресія створює криву лінію, щоб краще підходити для нелінійних даних. У нашому випадку, якщо ми додамо змінну `DayOfYear` у квадраті до вхідних даних, ми зможемо наблизити наші дані параболічною кривою, яка матиме мінімум у певній точці протягом року.
Поліноміальна регресія створює криву лінію, щоб краще підходити нелінійним даним. У нашому випадку, якщо включити змінну `DayOfYear` у квадраті в вхідні дані, ми зможемо апроксимувати наші дані параболою, що має мінімум у певній точці року.
Scikit-learn включає корисний [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), щоб поєднати різні кроки обробки даних. **Pipeline** — це ланцюжок **оцінювачів**. У нашому випадку ми створимо pipeline, який спочатку додає поліноміальні ознаки до нашої моделі, а потім навчає регресію:
Scikit-learn має корисний [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) для об’єднання різних кроків обробки даних. **Pipeline** — це ланцюжок **оцінювачів**. У нашому випадку ми створимо pipeline, який спочатку додасть поліноміальні ознаки до моделі, а потім навчатиме регресію:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -256,34 +259,34 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
Використання `PolynomialFeatures(2)` означає, що ми включатимемо всі поліноми другого ступеня з вхідних даних. У нашому випадку це буде просто `DayOfYear`<sup>2</sup>, але за наявності двох вхідних змінних X і Y це додасть X<sup>2</sup>, XY та Y<sup>2</sup>. Ми також можемо використовувати поліноми вищих ступенів, якщо хочемо.
Використання `PolynomialFeatures(2)` означає, що ми включимо всі поліноми другого ступеня із вхідних даних. У нашому випадку це просто `DayOfYear`<sup>2</sup>, але якщо є дві вхідні змінні X і Y, додадуться X<sup>2</sup>, XY і Y<sup>2</sup>. Ми також можемо використати поліноми вищого ступеня, якщо хочемо.
Pipeline можна використовувати так само, як і оригінальний об’єкт `LinearRegression`, тобто ми можемо викликати `fit` для pipeline, а потім використовувати `predict` для отримання результатів передбачення. Ось графік, що показує тестові дані та наближену криву:
Pipeline можна використовувати так само, як і оригінальний об'єкт `LinearRegression`, тобто ми можемо `fit` pipeline, а потім викликати `predict` для отримання прогнозів. Ось графік, що показує тестові дані та криву апроксимації:
<img alt="Polynomial regression" src="../../../../translated_images/uk/poly-results.ee587348f0f1f60b.webp" width="50%" />
З використанням поліноміальної регресії ми можемо отримати трохи нижче MSE та вищий коефіцієнт детермінації, але незначно. Нам варто врахувати інші ознаки!
За допомогою поліноміальної регресії ми можемо отримати дещо нижче MSE та вищий коефіцієнт детермінації, але не суттєво. Потрібно враховувати інші ознаки!
> Ви можете побачити, що мінімальні ціни на гарбузи спостерігаються десь близько Геловіну. Як ви це можете пояснити?
> Ви бачите, що мінімальні ціни на гарбузи спостерігаються десь біля Геловіну. Як це можна пояснити?
🎃 Вітаємо, ви щойно створили модель, яка може допомогти передбачити ціну гарбузів для пирогів. Ви, ймовірно, зможете повторити ту ж процедуру для всіх типів гарбузів, але це було б нудно. Навчімося зараз враховувати сорт гарбуза у нашій моделі!
🎃 Вітаємо, ви щойно створили модель, яка може допомогти передбачити ціну гарбузів для пирогів. Ймовірно, ви можете повторити цю процедуру для всіх типів гарбузів, але це було б нудно. Давайте навчимося враховувати сорт гарбуза в нашій моделі!
## Категоріальні ознаки
В ідеальному світі ми хочемо мати можливість передбачати ціни для різних сортів гарбуза, використовуючи одну й ту ж модель. Однак стовпець `Variety` дещо відрізняється від таких стовпців, як `Month`, бо він містить нечислові значення. Такі стовпці називаються **категоріальними**.
В ідеальному світі ми хочемо передбачати ціни для різних сортів гарбузів за допомогою однієї моделі. Однак стовпець `Variety` дещо відрізняється від стовпців на кшталт `Month`, тому що містить нечислові значення. Такі стовпці називаються **категоріальними**.
[![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")
[![ML для початківців - передбачення з категоріальними ознаками за допомогою лінійної регресії](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML для початківців - передбачення з категоріальними ознаками за допомогою лінійної регресії")
> 🎥 Натисніть на зображення вище для короткого відеоогляду використання категоріальних ознак.
Тут ви можете побачити, як середня ціна залежить від сорту:
Тут ви бачите, як середня ціна залежить від сорту:
<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 кодування сорту:
@ -302,14 +305,14 @@ pd.get_dummies(new_pumpkins['Variety'])
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']) \
@ -319,11 +322,11 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Тут ми також враховуємо `City` і тип `Package`, що дає нам MSE 2.84 (10%) і коефіцієнт детермінації 0.94!
Тут ми також враховуємо `City` і тип упаковки `Package`, що дає нам MSE = 2.84 (10%) і коефіцієнт детермінації 0.94!
## Об’єднуємо все разом
## Підсумовуємо
Щоб отримати найкращу модель, ми можемо використати комбіновані (one-hot закодовані категоріальні + числові) дані з наведеного вище прикладу разом з поліноміальною регресією. Ось повний код для вашої зручності:
Щоб створити найкращу модель, ми можемо використовувати комбіновані (one-hot закодовані категоріальні + числові) дані з вищенаведеного прикладу разом з поліноміальною регресією. Ось повний код для вашої зручності:
```python
# налаштувати навчальні дані
@ -333,17 +336,17 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# зробити розподіл на тренувальні та тестові дані
# зробити розподіл на навчальну та тестову вибірки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# налаштувати і навчити конвеєр
# налаштувати та навчити конвеєр
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# передбачити результати для тестових даних
pred = pipeline.predict(X_test)
# обчислити MSE та коефіцієнт детермінації
# обчислити середньоквадратичну помилку та коефіцієнт детермінації
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
@ -351,36 +354,36 @@ 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/)
## Огляд та самостійне вивчення
У цьому уроці ми дізнались про лінійну регресію. Існують також інші важливі типи регресії. Прочитайте про покрокові, Ridge, Lasso та Elasticnet методи. Хорошим курсом для подальшого вивчення є [курс Стенфордського університету зі статистичного навчання](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
В цьому уроці ми вивчили лінійну регресію. Існують також інші важливі типи регресії. Прочитайте про крокову, Ridge, Lasso та Elasticnet техніки. Хорошим курсом для поглибленого вивчення є [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Завдання
## Завдання
[Побудуйте модель](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,17 +1,17 @@
# Класифікатори кухонь 1
У цьому уроці ви будете використовувати набір даних, який ви зберегли з попереднього уроку, наповнений збалансованими та очищеними даними про кухні.
У цьому уроці ви використаєте набір даних, який зберегли з попереднього уроку, повний збалансованих, чистих даних про кухні.
Ви будете використовувати цей набір даних із різними класифікаторами, щоб _передбачити національну кухню на основі групи інгредієнтів_. Під час цього ви дізнаєтеся більше про способи використання алгоритмів для задач класифікації.
Ви використаєте цей набір даних із різними класифікаторами, щоб _передбачити національну кухню на основі набору інгредієнтів_. Під час цього ви дізнаєтеся більше про деякі способи використання алгоритмів для задач класифікації.
## [Тест перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
## [Передлекційний тест](https://ff-quizzes.netlify.app/en/ml/)
# Підготовка
Якщо ви завершили [Урок 1](../1-Introduction/README.md), переконайтеся, що файл _cleaned_cuisines.csv_ знаходиться в кореневій папці `/data` для цих чотирьох уроків.
Припускаючи, що ви виконали [Урок 1](../1-Introduction/README.md), переконайтеся, що файл _cleaned_cuisines.csv_ існує в кореневій папці `/data` протягом цих чотирьох уроків.
## Вправа - передбачення національної кухні
## Вправа передбачення національної кухні
1. Працюючи в папці _notebook.ipynb_ цього уроку, імпортуйте цей файл разом із бібліотекою Pandas:
1. Працюючи у папці з цим уроком _notebook.ipynb_, імпортуйте цей файл разом із бібліотекою Pandas:
```python
import pandas as pd
@ -40,7 +40,7 @@
import numpy as np
```
1. Розділіть координати X та y на два датафрейми для тренування. `cuisine` може бути датафреймом міток:
1. Розділіть координати X і y на два датафрейми для навчання. `cuisine` може бути датафреймом міток:
```python
cuisines_label_df = cuisines_df['cuisine']
@ -58,7 +58,7 @@
Name: cuisine, dtype: object
```
1. Видаліть стовпці `Unnamed: 0` та `cuisine`, використовуючи `drop()`. Збережіть решту даних як тренувальні ознаки:
1. Відкиньте стовпець `Unnamed: 0` і стовпець `cuisine`, викликавши `drop()`. Збережіть решту даних як ознаки для навчання:
```python
cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
@ -75,85 +75,85 @@
| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Тепер ви готові тренувати вашу модель!
Тепер ви готові навчати свою модель!
## Вибір класифікатора
Тепер, коли ваші дані очищені та готові до тренування, вам потрібно вирішити, який алгоритм використовувати для задачі.
Тепер, коли ваші дані чисті та готові до навчання, вам потрібно вирішити, який алгоритм використовувати для задачі.
Scikit-learn групує класифікацію під Навчання з учителем, і в цій категорії ви знайдете багато способів класифікації. [Різноманіття](https://scikit-learn.org/stable/supervised_learning.html) може здатися приголомшливим на перший погляд. Наступні методи включають техніки класифікації:
Scikit-learn об'єднує класифікацію під категорією Навчання з вчителем (Supervised Learning), і в цій категорії ви знайдете багато способів класифікації. [Різноманітність](https://scikit-learn.org/stable/supervised_learning.html) на перший погляд досить вражаюча. Наступні методи включають техніки класифікації:
- Лінійні моделі
- Машини опорних векторів
- Підтримкові векторні машини
- Стохастичний градієнтний спуск
- Найближчі сусіди
- Гауссові процеси
- Гаусові процеси
- Дерева рішень
- Ансамблеві методи (голосуючий класифікатор)
- Алгоритми для багатокласових і багатовихідних задач (багатокласова і багатоміткова класифікація, багатокласова-багатовихідна класифікація)
- Метод ансамблів (voting Classifier)
- Алгоритми для багатокласової та мультививідної класифікації (multiclass і multilabel classification, multiclass-multioutput classification)
> Ви також можете використовувати [нейронні мережі для класифікації даних](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), але це виходить за рамки цього уроку.
> Ви також можете використовувати [нейронні мережі для класифікації даних](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), але це поза межами цього уроку.
### Який класифікатор обрати?
Отже, який класифікатор слід обрати? Часто тестування кількох класифікаторів і пошук найкращого результату є способом перевірки. Scikit-learn пропонує [порівняння](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) на створеному наборі даних, порівнюючи KNeighbors, SVC двома способами, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB і QuadraticDiscriminationAnalysis, показуючи результати візуалізованими:
Отже, який класифікатор слід вибрати? Часто запуск декількох і пошук гарного результату — це спосіб тестування. Scikit-learn пропонує [порівняння один поруч з одним](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) на створеному наборі даних, порівнюючи KNeighbors, SVC двома способами, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB і QuadraticDiscrinationAnalysis, демонструючи результати у візуалізованому вигляді:
![порівняння класифікаторів](../../../../4-Classification/2-Classifiers-1/images/comparison.png)
> Графіки, створені на документації Scikit-learn
![порівняння класифікаторів](../../../../translated_images/uk/comparison.edfab56193a85e7f.webp)
> Графіки створені на документації Scikit-learn
> AutoML вирішує цю проблему, виконуючи ці порівняння в хмарі, дозволяючи вам обрати найкращий алгоритм для ваших даних. Спробуйте [тут](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML вирішує цю проблему акуратно, запускаючи ці порівняння у хмарі, що дозволяє обрати найкращий алгоритм для ваших даних. Спробуйте [тут](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
### Кращий підхід
Кращий спосіб, ніж просто здогадуватися, — це слідувати ідеям із цього завантажуваного [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Тут ми дізнаємося, що для нашої багатокласової задачі у нас є кілька варіантів:
Однак кращий спосіб ніж гадаючи навмання — це слідувати ідеям з цього завантажувального [ML Cheatsheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Тут ми бачимо, що для нашої задачі багатокласової класифікації ми маємо кілька варіантів:
![шпаргалка для багатокласових задач](../../../../4-Classification/2-Classifiers-1/images/cheatsheet.png)
> Частина шпаргалки Microsoft Algorithm Cheat Sheet, що описує варіанти багатокласової класифікації
![шпаргалка для багатокласових задач](../../../../translated_images/uk/cheatsheet.07a475ea444d2223.webp)
> Частина алгоритмічного шпаргалки Microsoft, що описує варіанти багатокласової класифікації
✅ Завантажте цю шпаргалку, роздрукуйте її та повісьте на стіну!
✅ Завантажте цю шпаргалку, роздрукуйте її та прикріпіть на стіну!
### Міркування
### Обґрунтування
Давайте спробуємо розібратися в різних підходах, враховуючи наші обмеження:
Подивимося, чи можемо ми логічно підходити до вибору підходів з урахуванням наших обмежень:
- **Нейронні мережі занадто важкі**. З огляду на наш очищений, але мінімальний набір даних, і той факт, що ми запускаємо тренування локально через ноутбуки, нейронні мережі занадто важкі для цього завдання.
- **Не використовуємо класифікатор для двох класів**. Ми не використовуємо класифікатор для двох класів, тому це виключає one-vs-all.
- **Дерева рішень або логістична регресія можуть підійти**. Дерева рішень можуть підійти, або логістична регресія для багатокласових даних.
- **Багатокласові Boosted Decision Trees вирішують іншу задачу**. Багатокласове Boosted Decision Tree найбільш підходить для непараметричних задач, наприклад, задач, спрямованих на створення рейтингів, тому це нам не підходить.
- **Нейронні мережі занадто важкі**. Враховуючи наш чистий, але мінімальний набір даних і той факт, що навчання відбувається локально у блокнотах, нейронні мережі є занадто ресурсомісткими для цієї задачі.
- **Без двокласового класифікатора**. Ми не використовуємо двокласовий класифікатор, тому виключаємо схему один проти усіх (one-vs-all).
- **Може підійти дерево рішень або логістична регресія**. Можливо дерево рішень, або логістична регресія для багатокласових даних.
- **Багатокласові бустінгові дерева прийнятні для інших задач**. Багатокласове бустінгове дерево найкраще пасує для непараметричних задач, наприклад, для побудови ранжувань, тому для нас не підходить.
### Використання Scikit-learn
### Використання Scikit-learn
Ми будемо використовувати Scikit-learn для аналізу наших даних. Однак існує багато способів використання логістичної регресії в Scikit-learn. Ознайомтеся з [параметрами для передачі](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Ми будемо використовувати Scikit-learn для аналізу наших даних. Однак існує багато способів використовувати логістичну регресію у Scikit-learn. Ознайомтеся з [параметрами, що можна передавати](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Фактично, є два важливі параметри - `multi_class` і `solver` - які нам потрібно вказати, коли ми просимо Scikit-learn виконати логістичну регресію. Значення `multi_class` визначає певну поведінку. Значення solver визначає, який алгоритм використовувати. Не всі solvers можна поєднувати з усіма значеннями `multi_class`.
По суті, є два важливі параметри — `multi_class` та `solver` — які треба вказати, коли ви просите Scikit-learn провести логістичну регресію. Параметр `multi_class` задає певну поведінку. Параметр `solver` визначає, який алгоритм використовувати. Не всі solver-ки можуть поєднуватись з усіма значеннями `multi_class`.
Згідно з документацією, у випадку багатокласової задачі, алгоритм навчання:
Згідно з документацією, для багатокласового випадку алгоритм навчання:
- **Використовує схему one-vs-rest (OvR)**, якщо параметр `multi_class` встановлено як `ovr`
- **Використовує функцію втрат крос-ентропії**, якщо параметр `multi_class` встановлено як `multinomial`. (На даний момент опція `multinomial` підтримується лише solvers: lbfgs, sag, saga і newton-cg.)
- **Використовує схему Один проти решти (OvR)**, якщо параметр `multi_class` встановлено в `ovr`
- **Використовує крос-ентропійне відхилення**, якщо параметр `multi_class` встановлено в `multinomial`. (Зараз опція `multinomial` підтримується лише solver-ами 'lbfgs', 'sag', 'saga' і 'newton-cg')."
> 🎓 "Схема" тут може бути або 'ovr' (one-vs-rest), або 'multinomial'. Оскільки логістична регресія насправді призначена для підтримки бінарної класифікації, ці схеми дозволяють їй краще справлятися з багатокласовими задачами класифікації. [джерело](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'Схема' тут може бути або 'ovr' (один проти решти), або 'multinomial'. Оскільки логістична регресія насамперед розроблена для бінарної класифікації, ці схеми дають їй можливість краще працювати з багатокласовими задачами. [джерело](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 "Solver" визначається як "алгоритм, який використовується для вирішення задачі оптимізації". [джерело](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 'Solver' визначається як "алгоритм для використання у задачі оптимізації". [джерело](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Scikit-learn пропонує цю таблицю, щоб пояснити, як solvers справляються з різними викликами, представленими різними типами структур даних:
Scikit-learn пропонує цю таблицю, щоб пояснити, як solver-и справляються з різними викликами, які виникають у різних типах структур даних:
![solvers](../../../../4-Classification/2-Classifiers-1/images/solvers.png)
![solver-и](../../../../translated_images/uk/solvers.5fc648618529e627.webp)
## Вправа - розділіть дані
## Вправа розділення даних
Ми можемо зосередитися на логістичній регресії для нашого першого тренувального випробування, оскільки ви нещодавно вивчали її на попередньому уроці.
Розділіть ваші дані на тренувальні та тестові групи, викликавши `train_test_split()`:
Ми можемо зосередитись на логістичній регресії для нашої першої спроби навчання, оскільки ви нещодавно вивчили її у попередньому уроці.
Розділіть свої дані на тренувальну і тестову групи, викликавши `train_test_split()`:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
```
## Вправа - застосуйте логістичну регресію
## Вправа застосування логістичної регресії
Оскільки ви використовуєте багатокласовий випадок, вам потрібно вибрати, яку _схему_ використовувати і який _solver_ встановити. Використовуйте LogisticRegression із багатокласовим налаштуванням і **liblinear** solver для тренування.
Оскільки ви використовуєте багатокласовий випадок, потрібно вибрати, яку _схему_ застосувати і який _solver_ встановити. Використовуйте LogisticRegression з параметром multi_class і solver-ом **liblinear** для навчання.
1. Створіть логістичну регресію з multi_class, встановленим як `ovr`, і solver, встановленим як `liblinear`:
1. Створіть логістичну регресію з multi_class `ovr` і solver-ом `liblinear`:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
@ -163,11 +163,13 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
print ("Accuracy is {}".format(accuracy))
```
✅ Спробуйте інший solver, наприклад `lbfgs`, який часто встановлюється за замовчуванням.
> Зверніть увагу, використовуйте функцію Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) для згладжування ваших даних, коли це необхідно.
Точність становить понад **80%**!
✅ Спробуйте інший solver, наприклад, `lbfgs`, який часто встановлений за замовчуванням
1. Ви можете побачити, як ця модель працює, протестувавши один рядок даних (#50):
> Зауважте, використовуйте функцію Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) для згладжування даних, коли це потрібно.
Точність досить добра — понад **80%**!
1. Ви можете побачити цю модель у дії, протестувавши один рядок даних (#50):
```python
print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
@ -181,9 +183,8 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
cuisine: indian
```
✅ Спробуйте інший номер рядка та перевірте результати.
1. Заглиблюючись, ви можете перевірити точність цього прогнозу:
✅ Спробуйте інший номер рядка і перевірте результати
1. Заглиблюючись, ви можете перевірити точність цього передбачення:
```python
test= X_test.iloc[50].values.reshape(-1, 1).T
@ -195,7 +196,7 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
topPrediction.head()
```
Результат виводиться - індійська кухня є найкращим припущенням моделі з високою ймовірністю:
Результат надруковано - індійська кухня є найбільш імовірним варіантом:
| | 0 |
| -------: | -------: |
@ -207,7 +208,7 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
✅ Чи можете ви пояснити, чому модель досить впевнена, що це індійська кухня?
1. Отримайте більше деталей, вивівши звіт про класифікацію, як ви робили в уроках регресії:
1. Отримайте більше деталей, надрукувавши звіт про класифікацію, як ви робили в уроках регресії:
```python
y_pred = model.predict(X_test)
@ -221,24 +222,26 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
| japanese | 0.70 | 0.75 | 0.72 | 220 |
| korean | 0.86 | 0.76 | 0.81 | 242 |
| thai | 0.79 | 0.85 | 0.82 | 254 |
| accuracy | 0.80 | 1199 | | |
| accuracy | | | 0.80 | 1199 |
| macro avg | 0.80 | 0.80 | 0.80 | 1199 |
| weighted avg | 0.80 | 0.80 | 0.80 | 1199 |
## 🚀Виклик
У цьому уроці ви використали очищені дані для створення моделі машинного навчання, яка може передбачати національну кухню на основі серії інгредієнтів. Приділіть час, щоб ознайомитися з багатьма варіантами, які Scikit-learn пропонує для класифікації даних. Заглибтеся в концепцію 'solver', щоб зрозуміти, що відбувається за лаштунками.
У цьому уроці ви використовували свої очищені дані для побудови моделі машинного навчання, яка може передбачити національну кухню на основі набору інгредієнтів. Приділіть час, щоб ознайомитися з багатьма варіантами, які пропонує Scikit-learn для класифікації даних. Заглибтесь у концепцію 'solver', щоб зрозуміти, що відбувається за лаштунками.
## [Тест після лекції](https://ff-quizzes.netlify.app/en/ml/)
## [Пост-лекційний тест](https://ff-quizzes.netlify.app/en/ml/)
## Огляд і самостійне навчання
## Огляд та Самостійне вивчення
Заглибтеся трохи більше в математику логістичної регресії в [цьому уроці](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Завдання
Заглибтеся в математику за логістичною регресією у [цьому уроці](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Завдання
[Вивчіть solvers](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 -->

@ -8,16 +8,16 @@
[![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)](../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) | [Khmer](../km/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
@ -33,164 +33,164 @@
> 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)!
Співробітники Microsoft Cloud Advocates раді запропонувати 12-тижневу навчальну програму з 26 уроків, присвячену **машинному навчанню**. У цій програмі ви дізнаєтеся про те, що іноді називають **класичним машинним навчанням**, переважно використовуючи бібліотеку Scikit-learn і уникаючи глибокого навчання, яке освітлюється в нашій [навчальній програмі AI for Beginners](https://aka.ms/ai4beginners). Поєднуйте ці уроки з нашою ['Data Science for Beginners' навчальною програмою](https://aka.ms/ds4beginners).
Подорожуйте з нами по світу, застосовуючи ці класичні методи до даних з різних регіонів. Кожен урок містить опитування перед і після уроку, письмові інструкції для виконання завдання, розв’язок, домашнє завдання і більше. Наша проектно-орієнтована педагогіка дозволяє вчитися через створення проектів, що є доведеним способом закріплення нових навичок.
Подорожуйте разом з нами по світу, застосовуючи ці класичні методи до даних з багатьох куточків світу. Кожен урок містить тести до та після уроку, інструкції для виконання, розв’язок, завдання й більше. Наша проектно-орієнтована педагогіка дозволяє вчитися, створюючи, що є перевіреним способом для кращого засвоєння нових навичок.
**✍️ Величезна подяка нашим авторам** Джен Лупер, Стівен Гауелл, Франческа Лаззер, Томомі Імура, Кессі Бревіу, Дмитру Сошникову, Кріса Норінга, Анірбану Мукерджі, Орнеллі Альтунян, Рут Якобу та Емі Бойд
**✍️ Щиро дякуємо нашим авторам** Джен Лупер, Стівен Гауелл, Франческа Лаццері, Томомі Імура, Кессі Бревіу, Дмитру Сошникову, Крісу Норінгу, Анірбану Мукерджі, Орнеллі Альтунян, Рут Якубу та Емі Бойд
**🎨 Також дякуємо нашим ілюстраторам** Томомі Імура, Дасані Мадіпаллі та Джен Лупер
**🎨 Також дякуємо нашим ілюстраторам** Томомі Імурі, Дасані Мадіпаллі та Джен Лупер
**🙏 Особлива подяка 🙏 авторам, рецензентам та співробітникам Microsoft Student Ambassador**, зокрема Рішиту Даглі, Мухаммеду Сакібу Хану Інану, Рохану Раджу, Александру Петреску, Абхішеку Джайсвалу, Навріну Табассум, Іоану Самуїлі та Снігдха Агарвал
**🙏 Особлива подяка 🙏 авторам, рецензентам і контент-консультантам Microsoft Student Ambassador**, зокрема Рішиту Даглі, Мухаммаду Сакібу Хану Інану, Рохану Раджу, Олександру Петреску, Абішеаку Джайсвалу, Наврін Табассум, Іоану Самуїлу та Снігдха Агарвал
**🤩 Окрема подяка амбасадорам Microsoft Student Ambassadors Еріку Ванджау, Джаслін Сонді та Відуші Гупті за наші уроки з R!**
**🤩 Окрема подяка студентським амбасадорам Microsoft Еріку Ванджау, Джаслін Сонді та Відуші Гупті за уроки R!**
# Початок роботи
Дотримуйтеся цих кроків:
1. **Зробіть форк репозиторію**: Натисніть кнопку «Fork» у верхньому правому куті цієї сторінки.
Виконайте ці кроки:
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)
> 🔧 **Потрібна допомога?** Перегляньте наш [Посібник з усунення несправностей](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 на YouTube-каналі Microsoft Developer](https://aka.ms/ml-beginners-videos), натиснувши на зображення нижче.
Деякі уроки доступні у вигляді коротких відео. Усі їх можна знайти у самих уроках або на [плейлисті ML for Beginners на каналі Microsoft Developer у YouTube](https://aka.ms/ml-beginners-videos), натиснувши на зображення нижче.
[![ML for beginners banner](../../translated_images/uk/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## Знайомтесь із командою
## Знайомство з командою
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Гіф від** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif від** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Натисніть на зображення вище, щоб побачити відео про проект та людей, які його створили!
> 🎥 Натисніть на зображення вище, щоб переглянути відео про проєкт та людей, які його створили!
---
## Педагогіка
Ми обрали два педагогічні принципи при створенні цієї програми: забезпечення практичної, **проектно-орієнтованої** форми навчання та включення **частих опитувань**. Крім того, ця програма має спільну **тематичну лінію**, що додає цілісності.
Ми обрали два педагогічні принципи при розробці програми: забезпечення практичного **проектного підходу** та включення **частих тестів**. Крім того, ця навчальна програма має спільну **тему** для цілісності.
Забезпечуючи відповідність контенту проектам, процес стає більш захопливим для студентів і покращує запам’ятовування концепцій. Крім того, опитування з невисокою ставкою перед заняттям налаштовує студента на вивчення теми, а друге після заняття забезпечує подальше закріплення матеріалу. Ця програма спроектована бути гнучкою і цікавою, її можна проходити повністю або частково. Проекти починаються з простих і стають дедалі складнішими до кінця 12-тижневого циклу. У програмі також є доповнення про реальні застосування машинного навчання, яке можна використати як додатковий бал або як основу для обговорення.
Забезпечення відповідності вмісту проектам робить процес навчання більш захопливим для студентів, а також підвищує запам’ятовування концепцій. Низькопороговий тест перед заняттям налаштовує студента на вивчення теми, а другий тест після уроку забезпечує краще засвоєння. Програма була створена так, щоб бути гнучкою і цікавою, її можна проходити повністю або частково. Проекти починаються з простих і стають все складнішими до кінця 12-тижневого циклу. Програма також включає післямову про практичне застосування ML, яку можна використовувати як додатковий кредит або для бази обговорення.
> Ознайомтеся з нашим [Кодексом поведінки](CODE_OF_CONDUCT.md), [внесенням внеску](CONTRIBUTING.md), [перекладами](..) та [посібником з усунення несправностей](TROUBLESHOOTING.md). Ми вітаємо ваші конструктивні відгуки!
> Знайдіть наші [Кодекс поведінки](CODE_OF_CONDUCT.md), [Внесок](CONTRIBUTING.md), [Переклади](..) та [Посібник з усунення несправностей](TROUBLESHOOTING.md). Ми раді вашому конструктивному зворотному зв’язку!
## Кожен урок включає
- опціональні замальовки
- опціональне додаткове відео
- відеоогляд (лише деякі уроки)
- [опитування для розминки перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
- необов’язкові нотатки (sketchnote)
- необов’язкове допоміжне відео
- відео-розбір (лише для деяких уроків)
- [тест перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
- письмовий урок
- для проектно-орієнтованих уроків — покрокові інструкції зі створення проекту
- для уроків з проєктами покрокові інструкції зі створення проєкту
- перевірки знань
- виклик
- додаткове читання
- домашнє завдання
- [опитування після лекції](https://ff-quizzes.netlify.app/en/ml/)
> **Примітка про мови**: Ці уроки переважно написані на Python, але багато з них також доступні на R. Щоб пройти урок з R, перейдіть у папку `/solution` і знайдіть уроки на R. Вони мають розширення .rmd, що означає файл **R Markdown**, який можна просто визначити як інтеграцію `code chunks` (R чи інших мов) та `YAML header` (який керує тим, як форматувати виводи, наприклад PDF) у `Markdown документ`. Відтак, це слугує зразковим фреймворком для авторства в галузі науки про дані, оскільки дозволяє комбінувати ваш код, його вивід і ваші думки, дозволяючи записувати їх у Markdown. Крім того, документи R Markdown можна рендерити у формати виводу, такі як PDF, HTML чи Word.
> **Примітка про вікторини**: Усі вікторини містяться у [папці Quiz App](../../quiz-app), всього 52 вікторини по три питання кожна. Вони пов’язані з уроками, але додаток для вікторин можна запускати локально; дотримуйтесь інструкцій у папці `quiz-app`, щоб запустити локально або розгорнути на Azure.
| Номер уроку | Тема | Групування уроків | Навчальні цілі | Зв’язаний урок | Автор |
| :---------: | :------------------------------------------------------------: | :-----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------: |
| 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-середніх | [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) | Прогнозування часових рядів за допомогою регресора опорних векторів (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Вступ до підкріплювального навчання | [Reinforcement learning](8-Reinforcement/README.md) | Вступ до підкріплювального навчання з Q-навчанням | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Допоможіть Пітеру уникнути вовка! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Підкріплювальне навчання Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Постскрипт | Реальні сценарії та застосування ML | [ML in the Wild](9-Real-World/README.md) | Цікаві та показові реальні застосування класичного машинного навчання | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| Постскрипт | Відлагодження моделей ML з використанням панелі RAI | [ML in the Wild](9-Real-World/README.md) | Відлагодження моделей машинного навчання з використанням компонентів панелі Responsible AI | [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).
## 🎒 Інші курси
Наша команда створює інші курси! Перегляньте:
- завдання
- [тест після лекції](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), всього 52 вікторини по три питання кожна. Вони пов’язані з уроками, але додаток вікторини можна запускати локально; дотримуйтеся інструкцій у папці `quiz-app` для локального розміщення чи розгортання в Azure.
| Номер уроку | Тема | Групування уроків | Цілі навчання | Пов’язаний урок | Автор |
| :---------: | :------------------------------------------------------------: | :---------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |
| 01 | Вступ до машинного навчання | [Вступ](1-Introduction/README.md) | Вивчіть основні поняття машинного навчання | [Урок](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Історія машинного навчання | [Вступ](1-Introduction/README.md) | Дізнайтеся історію, що лежить в основі цієї галузі | [Урок](1-Introduction/2-history-of-ML/README.md) | Jen та Amy |
| 03 | Справедливість і машинне навчання | [Вступ](1-Introduction/README.md) | Які важливі філософські питання щодо справедливості слід враховувати при створенні та застосуванні моделей МН? | [Урок](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Техніки машинного навчання | [Вступ](1-Introduction/README.md) | Які техніки використовують дослідники МН для побудови моделей МН? | [Урок](1-Introduction/4-techniques-of-ML/README.md) | Chris і Jen |
| 05 | Вступ до регресії | [Регресія](2-Regression/README.md) | Початок роботи з Python і Scikit-learn для моделей регресії | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Ціни на гарбузи в Північній Америці 🎃 | [Регресія](2-Regression/README.md) | Візуалізація та очищення даних для підготовки до МН | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Ціни на гарбузи в Північній Америці 🎃 | [Регресія](2-Regression/README.md) | Побудова лінійної та поліноміальної регресій | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen та Dmitry • Eric Wanjau |
| 08 | Ціни на гарбузи в Північній Америці 🎃 | [Регресія](2-Regression/README.md) | Побудова моделі логістичної регресії | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Веб-додаток 🔌 | [Веб-додаток](3-Web-App/README.md) | Створіть веб-додаток для використання вашої навченої моделі | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Вступ до класифікації | [Класифікація](4-Classification/README.md) | Очищення, підготовка та візуалізація даних; вступ до класифікації | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen та Cassie • Eric Wanjau |
| 11 | Смачна азійська та індійська кухня 🍜 | [Класифікація](4-Classification/README.md) | Вступ до класифікаторів | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen та Cassie • Eric Wanjau |
| 12 | Смачна азійська та індійська кухня 🍜 | [Класифікація](4-Classification/README.md) | Більше класифікаторів | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen та Cassie • Eric Wanjau |
| 13 | Смачна азійська та індійська кухня 🍜 | [Класифікація](4-Classification/README.md) | Створіть рекомендований веб-додаток за допомогою вашої моделі | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Вступ до кластеризації | [Кластеризація](5-Clustering/README.md) | Очищення, підготовка та візуалізація даних; вступ до кластеризації | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Дослідження музичних уподобань Нігерії 🎧 | [Кластеризація](5-Clustering/README.md) | Дослідження методу кластеризації K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Вступ до обробки природної мови ☕️ | [Обробка природної мови](6-NLP/README.md) | Вивчіть основи NLP, побудувавши простого бота | [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 dashboard | [МН у реальності](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: `localhost:3000`.
## PDF
Завантажте PDF з навчальною програмою з посиланнями [тут](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Інші курси
Наша команда створює інші курси! Ознайомтесь:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j для початківців](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js для початківців](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain для початківців](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Агенти
[![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)
[![AZD для початківців](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI для початківців](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP для початківців](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI агенти для початківців](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)
---
### Серія по генеративному ШІ
### Серія про генеративний ШІ
[![Генеративний ШІ для початківців](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)
@ -198,41 +198,52 @@
---
### Основне навчання
### Основні знання
[![Машинне навчання для початківців](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/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![ШІ для початківців](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Кібербезпека для початківців](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Веб-розробка для початківців](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![Інтернет речей для початківців](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT для початківців](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR розробка для початківців](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Серія Copilot
[![Copilot для спільного програмування з ШІ](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 для парного програмування з ШІ](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. Це підтримуюча спільнота, де вітаються питання і знання поширюються вільно.
Якщо ви застрягли чи маєте запитання під час вивчення машинного навчання або створення ШІ-додатків, не хвилюйтеся — допомога доступна.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Ви можете приєднатися до обговорень з іншими учнями та розробниками, задавати питання та ділитися своїми ідеями з спільнотою.
- Приєднуйтесь до спільноти, щоб ставити питання та вчитися разом з іншими
- Обговорюйте концепції машинного навчання та ідеї проектів
- Отримуйте рекомендації від досвідчених розробників
Підтримуюча спільнота — це чудовий спосіб розвивати свої навички та швидше вирішувати проблеми.
Якщо у вас є відгуки про продукт або помилки під час розробки, відвідайте:
[Microsoft Foundry Discord Community](https://discord.gg/nTYy5BXMWG)
Якщо ви зіткнулися з помилками, збоями або маєте пропозиції щодо поліпшень, ви також можете відкрити **Issue** в цьому репозиторії, щоб повідомити про проблему.
Для відгуків про продукт або пошуку існуючих дописів у спільноті відвідайте Форум розробників:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Додаткові поради для навчання
- Переглядайте блокноти після кожного уроку для кращого розуміння.
- Практикуйтесь у самостійному впровадженні алгоритмів.
- Практикуйте впровадження алгоритмів самостійно.
- Досліджуйте реальні набори даних, використовуючи вивчені концепції.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Відмова від відповідальності**:
Цей документ був перекладений за допомогою сервісу AI-перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматизовані переклади можуть містити помилки або неточності. Оригінальний документ на рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний переклад людиною. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли через використання цього перекладу.
**Відмова від відповідальності**:
Цей документ було перекладено за допомогою сервісу AI-перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний переклад людиною. Ми не несемо відповідальності за будь-які непорозуміння чи неправильні тлумачення, що виникли внаслідок використання цього перекладу.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save