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

> Patarimas: [aplankykite šį žemėlapį internete](https://scikit-learn.org/stable/tutorial/machine_learning_map/) ir spustelėkite kelią, kad perskaitytumėte dokumentaciją.

> Patarimas: [apsilankykite šiame žemėlapyje internete](https://scikit-learn.org/stable/tutorial/machine_learning_map/) ir spustelėkite kelio taškus, kad perskaitytumėte dokumentaciją.
### Planas
Šis žemėlapis yra labai naudingas, kai aiškiai suprantate savo duomenis, nes galite „eiti“ jo keliais iki sprendimo:
Šis žemėlapis labai naudingas, kai jūs aiškiai suprantate savo duomenis, nes galite „žingsniuoti“ po jo kelius iki sprendimo:
- Turime >50 pavyzdžių
- Norime prognozuoti kategoriją
@ -29,16 +29,16 @@ Ankstesnėje pamokoje sužinojote apie įvairias galimybes klasifikuoti duomenis
- Turime mažiau nei 100 tūkst. pavyzdžių
- ✨ Galime pasirinkti Linear SVC
- Jei tai neveikia, kadangi turime skaitmeninius duomenis
- Galime išbandyti ✨ KNeighbors Classifier
- Jei tai neveikia, išbandykite ✨ SVC ir ✨ Ensemble Classifiers
- Galime išbandyti ✨ KNeighbors klasifikatorių
- Jei ir tai neveikia, išbandykite ✨ SVC ir ✨ Ensemble klasifikatorius
Tai labai naudingas kelias, kurio verta laikytis.
## Užduotis – padalykite duomenis
## Užduotis - padalinkite duomenis
Sekdami šį kelią, turėtume pradėti importuodami kai kurias reikalingas bibliotekas.
Sekdami šiuo keliu, turėtume pradėti nuo reikalingų bibliotekų importavimo.
1. Importuokite reikalingas bibliotekas:
1. Importuokite reikiamas bibliotekas:
```python
from sklearn.neighbors import KNeighborsClassifier
@ -50,31 +50,31 @@ Sekdami šį kelią, turėtume pradėti importuodami kai kurias reikalingas bibl
Support-Vector Clustering (SVC) yra Support-Vector Machines šeimos ML technikų dalis (daugiau apie jas sužinosite žemiau). Šiame metode galite pasirinkti „branduolį“ (kernel), kuris nusprendžia, kaip suskirstyti etiketes. Parametras „C“ reiškia „reguliavimą“, kuris reguliuoja parametrų įtaką. Branduolys gali būti vienas iš [kelių](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); čia mes nustatome jį kaip „linear“, kad užtikrintume Linear SVC naudojimą. Tikimybė pagal nutylėjimą yra „false“; čia mes nustatome ją kaip „true“, kad gautume tikimybių įvertinimus. Atsitiktinę būseną nustatome kaip „0“, kad sumaišytume duomenis ir gautume tikimybes.
Paramos vektorių klasterizacija (SVC) yra Paramų vektorių mašinų (Support-Vector machines) šeimos mašininio mokymosi metodas (daugiau apie juos skaitykite žemiau). Šiame metode galite pasirinkti „branduolį“ (kernel), kuris nusprendžia, kaip klasterizuoti etiketes. Parametras „C“ reiškia „reguliarizaciją“, kuri reguliuoja parametrų įtaką. Branduolys gali būti vienas iš [kelių](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); čia mes nustatome jį į „linear“, kad naudotume linijinį SVC. Tikimybė pagal nutylėjimą yra „false“; čia ją nustatome į „true“, kad gautume tikimybių įvertinimus. Atsitiktinumo būsena nustatyta į „0“, kad duomenys būtų permaišyti ir gautume tikimybes.
### Užduotis – pritaikykite Linear SVC
### Užduotis - pritaikykite linijinį SVC
Pradėkite kurdami klasifikatorių masyvą. Jūs palaipsniui pridėsite prie šio masyvo, kai testuosite.
Pradėkite kurdami klasifikatorių masyvą. Jį palaipsniui papildysite, kai testuosime.
2. Treniruokite savo modelį naudodami Linear SVC ir išspausdinkite ataskaitą:
2. Apmokykite savo modelį naudodami Linear SVC ir atspausdinkite ataskaitą:
```python
n_classifiers = len(classifiers)
@ -88,7 +88,7 @@ Pradėkite kurdami klasifikatorių masyvą. Jūs palaipsniui pridėsite prie ši
print(classification_report(y_test,y_pred))
```
Rezultatas yra gana geras:
Rezultatas gana geras:
```output
Accuracy (train) for Linear SVC: 78.6%
@ -107,19 +107,19 @@ Pradėkite kurdami klasifikatorių masyvą. Jūs palaipsniui pridėsite prie ši
## K-Neighbors klasifikatorius
K-Neighbors yra „kaimynų“ šeimos ML metodų dalis, kuriuos galima naudoti tiek prižiūrimam, tiek neprižiūrimam mokymuisi. Šiame metode sukuriamas iš anksto nustatytas taškų skaičius, o duomenys renkami aplink šiuos taškus, kad būtų galima prognozuoti apibendrintas etiketes.
K-Neighbors priklauso „kaimynų“ (neighbors) šeimai mašininio mokymosi metodų, kuriuos galima naudoti tiek prižiūrimam, tiek neprižiūrimam mokymuisi. Šiame metode sukuriamas iš anksto apibrėžtas taškų skaičius, o duomenys surenkami aplink šiuos taškus, kad būtų galima prognozuoti bendrines etiketes duomenims.
Ankstesnis klasifikatorius buvo geras ir gerai veikė su duomenimis, bet galbūt galime pasiekti geresnį tikslumą. Išbandykite K-Neighbors klasifikatorių.
1. Pridėkite eilutę prie savo klasifikatorių masyvo (po Linear SVC elemento pridėkite kablelį):
1. Įtraukite eilutę į savo klasifikatorių masyvą (po Linear SVC elemento pridėkite kablelį):
```python
'KNN classifier': KNeighborsClassifier(C),
```
Rezultatas yra šiek tiek blogesnis:
Rezultatas šiek tiek prastesnis:
```output
Accuracy (train) for KNN classifier: 73.8%
@ -136,23 +136,23 @@ Ankstesnis klasifikatorius buvo geras ir gerai veikė su duomenimis, bet galbūt
weighted avg 0.76 0.74 0.74 1199
```
✅ Sužinokite daugiau apie [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
✅ Sužinokite apie [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Support Vector Classifier
## Support Vector klasifikatorius
Support-Vector klasifikatoriai yra [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) šeimos ML metodų dalis, naudojama klasifikavimo ir regresijos užduotims. SVM „sudeda mokymo pavyzdžius į taškus erdvėje“, kad maksimaliai padidintų atstumą tarp dviejų kategorijų. Vėlesni duomenys yra sudedami į šią erdvę, kad būtų galima prognozuoti jų kategoriją.
Paramų vektorių klasifikatoriai yra mašininio mokymosi metodų, skirtų klasifikacijai ir regresijai, šeimos dalis [Paramų vektorių mašinų](https://wikipedia.org/wiki/Support-vector_machine) (SVM). SVM „žemėlapiuoja treniruočių pavyzdžius į erdvės taškus“, kad maksimaliai padidintų atstumą tarp dviejų kategorijų. Tolimesni duomenys taip pat žemėlapiuojami į šią erdvę, kad būtų galima prognozuoti jų kategorijas.
### Užduotis – pritaikykite Support Vector Classifier
### Užduotis - pritaikykite Support Vector klasifikatorių
Pabandykime pasiekti šiek tiek geresnį tikslumą naudodami Support Vector Classifier.
Pabandykime gauti šiek tiek geresnį tikslumą su Support Vector klasifikatoriumi.
1. Po K-Neighbors elemento pridėkite kablelį, tada pridėkite šią eilutę:
1. Po K-Neighbors elemento pridėkite kablelį ir tada pridėkite šią eilutę:
```python
'SVC': SVC(),
```
Rezultatas yra gana geras!
Rezultatas gana geras!
```output
Accuracy (train) for SVC: 83.2%
@ -169,18 +169,18 @@ Pabandykime pasiekti šiek tiek geresnį tikslumą naudodami Support Vector Clas
weighted avg 0.84 0.83 0.83 1199
```
✅ Sužinokite daugiau apie [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ Sužinokite apie [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Ensemble Classifiers
## Ensemble klasifikatoriai
Sekime kelią iki galo, nors ankstesnis testas buvo gana geras. Išbandykime „Ensemble Classifiers“, konkrečiai Random Forest ir AdaBoost:
Sekime kelią iki galo, nors ankstesnis testas buvo gana geras. Išbandykime kai kuriuos „Ensemble klasifikatorius“, ypatingai Random Forest ir AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
'ADA': AdaBoostClassifier(n_estimators=100)
```
Rezultatas yra labai geras, ypač Random Forest:
Rezultatas labai geras, ypač Random Forest atveju:
```output
Accuracy (train) for RFST: 84.5%
@ -210,25 +210,25 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ Sužinokite daugiau apie [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
✅ Sužinokite apie [Ensemble klasifikatorius](https://scikit-learn.org/stable/modules/ensemble.html)
Šis mašininio mokymosi metodas „sujungia kelių bazinių įvertintojų prognozes“, kad pagerintų modelio kokybę. Mūsų pavyzdyje naudojome Random Trees ir AdaBoost.
Šis mašininio mokymosi metodas „jungia kelių bazinių estimatorių prognozes“, kad pagerintų modelio kokybę. Mūsų pavyzdyje naudojome Atsitiktinius Medžius (Random Trees) ir AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), vidurkinimo metodas, sukuria „mišką“ iš „sprendimų medžių“, įterptų su atsitiktinumu, kad būtų išvengta per didelio pritaikymo. Parametras n_estimators nustatomas kaip medžių skaičius.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest)– vidurkinimo metodas, kuris kuria „mišką“ „sprendimų medžių“, įterptų su atsitiktinumu, kad būtų išvengta perdavimo. n_estimators parametras nurodo medžių skaičių.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) pritaiko klasifikatorių duomenų rinkiniui, o tada pritaiko šio klasifikatoriaus kopijas tam pačiam duomenų rinkiniui. Jis sutelkia dėmesį į neteisingai klasifikuotų elementų svorius ir koreguoja kitą klasifikatorių, kad ištaisytų klaidas.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) pritaiko klasifikatorių duomenų rinkiniui, po to pritaiko šio klasifikatoriaus kopijas tam pačiam duomenų rinkiniui. Jis sutelkia dėmesį į neteisingai klasifikuotų elementų svorius ir koreguoja tinkamumą kitam klasifikatoriui.
---
## 🚀Iššūkis
Kiekviena iš šių technikų turi daug parametrų, kuriuos galite koreguoti. Ištyrinėkite kiekvieno numatytuosius parametrus ir pagalvokite, ką šių parametrų koregavimas reikštų modelio kokybei.
Kiekviena iš šių technikų turi daugybę parametrų, kuriuos galite koreguoti. Išnagrinėkite kiekvienos numatytuosius parametrus ir pagalvokite, ką jų pakoregavimas reikštų modelio kokybei.
Šiose pamokose yra daug terminologijos, todėl skirkite minutę peržiūrėti [šį sąrašą](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) naudingų terminų!
Šiose pamokose yra daug terminų, todėl skirkite minutę peržiūrėti [šį terminų sąrašą](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott)!
## Užduotis
@ -236,5 +236,7 @@ Kiekviena iš šių technikų turi daug parametrų, kuriuos galite koreguoti. I
---
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipiame dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudotis profesionalių vertėjų paslaugomis. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus aiškinimus, kylančius dėl šio vertimo naudojimo.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatizuoti vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turi būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojamas profesionalus žmogaus vertimas. Mes neatsakome už bet kokius nesusipratimus ar neteisingus interpretavimus, kylančius dėl šio vertimo naudojimo.
"\n---\n\n**Atsakomybės apribojimas**:\nŠis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipiame dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama naudotis profesionalių vertėjų paslaugomis. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus aiškinimus, kylančius dėl šio vertimo naudojimo.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Atsakomybės apribojimas**:\nŠis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors stengiamės užtikrinti tikslumą, atkreipkite dėmesį, kad automatiniai vertimai gali turėti klaidų arba netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinės informacijos atveju rekomenduojamas profesionalus žmogaus vertimas. Mes neatsakome už jokius nesusipratimus ar klaidingas interpretacijas, kylančias dėl šio vertimo naudojimo.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"\n---\n\n**Atsakomybės apribojimas**: \nŠis dokumentas buvo išverstas naudojant AI vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, prašome atkreipti dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojama profesionali žmogaus vertimo paslauga. Mes neprisiimame atsakomybės už nesusipratimus ar klaidingus interpretavimus, atsiradusius dėl šio vertimo naudojimo.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Atsakomybės apribojimas**:\nŠis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors stengiamės užtikrinti tikslumą, prašome atkreipti dėmesį, kad automatizuoti vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas gimtąja kalba turėtų būti laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojamas profesionalus žmogiškasis vertimas. Mes neatsakome už jokius nesusipratimus ar klaidingas interpretacijas, kilusias dėl šio vertimo naudojimo.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
> Šiame saugykloje yra daugiau nei 50 kalbų vertimų, kurie žymiai padidina atsisiuntimo dydį. Norėdami klonuoti be vertimų, naudokite retinimą (sparse checkout):
> **Norite klonuoti vietoje?**
>
> Šiame saugykloje yra 50+ kalbų vertimų, kurie ženkliai padidina parsisiuntimo dydį. Norėdami klonuoti be vertimų, naudokite sparčiosios atrankos funkciją:
Mes vykdome Discord mokymosi su DI seriją, sužinokite daugiau ir prisijunkite prie mūsų [Learn with AI Series](https://aka.ms/learnwithai/discord) nuo 2025 m. rugsėjo 18 iki 30 d. Gaunate patarimų ir gudrybių, kaip naudotis GitHub Copilot duomenų mokslui.
Mes turime vykstančią Discord mokymosi su DI seriją, sužinokite daugiau ir prisijunkite prie mūsų [Mokymasis su DI serijoje](https://aka.ms/learnwithai/discord) rugsėjo 18 - 30 d., 2025 m. Sužinosite patarimus ir gudrybes, kaip naudoti GitHub Copilot Duomenų Mokslui.


# Mašininis mokymasis pradedantiesiems –Mokymo programa
> 🌍 Keliaukite po pasaulį mokydamiesi mašininio mokymosi per pasaulio kultūras 🌍
> 🌍 Keliaukime po pasaulį tyrinėdami Mašininį mokymąsi per pasaulio kultūras 🌍
„Microsoft“ debesų technologijų entuziastai džiaugiasi galėdami pasiūlyti 12 savaičių, 26 pamokų kurikulumą, skirtą **mašininio mokymosi** temai. Šiame kurikule sužinosite apie tai, ką kartais vadiname **klasikiniu mašininiu mokymusi**, daugiausia naudodami „Scikit-learn“ biblioteką ir vengdami giluminio mokymosi, kuris aptariamas mūsų [DI pradedantiesiems kurikule](https://aka.ms/ai4beginners). Derinkite šias pamokas su mūsų ['Duomenų mokslas pradedantiesiems' kurikulu](https://aka.ms/ds4beginners)!
„Microsoft“ Debesijos advokatų komanda džiaugiasi galėdama pasiūlyti 12 savaičių, 26 pamokų mokymo programą, skirtą **Mašininio mokymosi** pagrindams. Šioje programoje sužinosite apie tai, kas kartais vadinama **klasikiniu mašininiu mokymusi**, daugiausia naudojant Scikit-learn biblioteką ir vengiant giluminio mokymosi, kuris aptariamas mūsų [DI pradedantiesiems mokymo programoje](https://aka.ms/ai4beginners). Taip pat derinkite šias pamokas su mūsų ['Duomenų mokslo pradedantiesiems' programa](https://aka.ms/ds4beginners).
Keliaukite su mumis po pasaulį, taikydami šias klasikines technikas duomenims iš skirtingų pasaulio vietų. Kiekvienoje pamokoje yra prieš pamoką ir po pamokos testai, rašytinės instrukcijos pamokai atlikti, sprendimas, užduotis ir daugiau. Mūsų projektinis mokymas leidžia mokytis kartu su praktika – tai patikrintas būdas geriau įsisavinti naujus įgūdžius.
Keliaukite su mumis po pasaulį taikant šias klasikines technikas duomenims iš įvairių pasaulio sričių. Kiekviena pamoka apima prieš pamoką ir po pamokos testus, rašytines instrukcijas pamokai atlikti, sprendimą, užduotį ir dar daugiau. Mūsų projektinė pedagogika leidžia mokytis projektuojant, kas yra įrodyta kaip efektyvus įgūdžių įsisavinimo būdas.
**✍️ Nuoširdus dėkui autoriams** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ir Amy Boyd
**✍️ Nuoširdus dėkui mūsų autoriams** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ir Amy Boyd
**🎨 Ačiū kūrėjams** Tomomi Imura, Dasani Madipalli ir Jen Looper
**🎨 Taip pat dėkojame iliustratoriams** Tomomi Imura, Dasani Madipalli ir Jen Looper
**🙏 Specialūs dėkojimai 🙏 Microsoft studentų ambasadoriams autoriams, peržiūrėtojams ir turinio bendradarbiams**, ypač Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ir Snigdha Agarwal
**🙏 Ypatingas ačiū 🙏 mūsų Microsoft Studentų Ambasadorių autoriams, recenzentams ir turinio kūrėjams**, ypač Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ir Snigdha Agarwal
**🤩 Papildomas ačiū Microsoft studentų ambasadoriams Eric Wanjau, Jasleen Sondhi ir Vidushi Gupta už mūsų R pamokas!**
**🤩 Papildomas dėkingumas Microsoft Studentų Ambasadoriams Eric Wanjau, Jasleen Sondhi ir Vidushi Gupta už mūsų R pamokas!**
# Pradžia
Atlikite šiuos veiksmus:
1. **Padarykite „fork“**: spustelėkite mygtuką „Fork“ viršutiniame dešiniajame šio puslapio kampe.
> [rasite visus papildomus šio kurso išteklius mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [raskite visus papildomus šio kurso išteklius mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Reikia pagalbos?** Patikrinkite mūsų [trikčių šalinimo gidą](TROUBLESHOOTING.md), kaip spręsti dažniausias įdiegimo, nustatymo ir pamokų vykdymo problemas.
> 🔧 **Reikia pagalbos?** Peržiūrėkite mūsų [Trikčių šalinimo gaires](TROUBLESHOOTING.md) su dažnų įdiegimo, nustatymo ir pamokų vykdymo problemų sprendimais.
**[Studentai](https://aka.ms/student-page)**, norėdami naudotis šiuo kurikulu, padarykite visos saugyklos „fork“ į savo GitHub paskyrą ir atlikite pratimus savarankiškai arba grupėje:
**[Studentai](https://aka.ms/student-page)**, naudodami šią programą, sukurkite savo GitHub paskyroje saugyklos atšaką ir atlikite užduotis savarankiškai arba grupėje:
- Pradėkite nuo priešpaskaitinio testo.
- Perskaitykite paskaitą ir atlikite užduotis, stabtelėdami ir apmąstydami po kiekvieną žinių patikrinimą.
- Stenkitės kurti projektus suprasdami pamokas, o ne vien vykdydami sprendimų kodą; tačiau šis kodas yra prieinamas kiekvienos pamokos, orientuotos į projektus, `/solution` kataloguose.
- Atlikite paslapkaitinį testą.
- Atlikite iššūkį.
- Atlikite užduotį.
- Baigę pamokų grupę apsilankykite [diskusijų lentoje](https://github.com/microsoft/ML-For-Beginners/discussions) ir „mokykitės garsiai“, užpildydami atitinkamą PAT vertinimą. PAT (Progresso Vertinimo Įrankis) yra rubrika, kurią galite užpildyti geriau įsisavindami mokymąsi. Taip pat galite reaguoti į kitus PAT, kad mokytumėmės kartu.
- Perskaitykite paskaitą ir atlikite veiklas, sustodami ir apmąstydami kiekvieną žinių patikrinimą.
- Stenkitės kurti projektus suprasdami pamokas, o ne vien tik paleisdami sprendimo kodą; tačiau šis kodas yra prieinamas kiekvienos projektinės pamokos `/solution` aplankuose.
- Atlikite po paskaitos testą.
- Įvykdykite iššūkį.
- Įvykdykite užduotį.
- Baigus pamokų grupę, apsilankykite [Diskusijų lentoje](https://github.com/microsoft/ML-For-Beginners/discussions) ir „mokykitės garsiai“, užpildydami atitinkamą PAT vertinimo formą. „PAT“ yra pažangos vertinimo priemonė, kurią užpildote, kad pagilintumėte savo žinias. Taip pat galite reaguoti į kitų PAT, kad mokytumės kartu.
> Tolimesniam mokymuisi rekomenduojame sekti šiuos [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulius ir mokymosi kelius.
**Dėstytojai**, mes [pateikėme keletą patarimų](for-teachers.md), kaip naudoti šį kurikulą.
**Mokytojai**, mes pateikėme [keletą pasiūlymų](for-teachers.md), kaip naudoti šią programą.
---
## Vaizdo apžvalgos
## Vaizdo įrašų peržiūros
Kai kurios pamokos pateikiamos trumpų formų vaizdo įrašais. Jas visas rasite tiesiogiai pamokose arba [ML pradedantiesiems grojaraštyje „Microsoft Developer“ YouTube kanale](https://aka.ms/ml-beginners-videos) spustelėję paveikslėlį žemiau.
Kai kurios pamokos yra prieinamos trumpų vaizdo įrašų pavidalu. Visus juos galite rasti tiesiogiai pamokose arba [ML pradedantiesiems grojaraštyje Microsoft Developer YouTube kanale](https://aka.ms/ml-beginners-videos), spustelėję žemiau pateiktą paveikslėlį.
[](https://aka.ms/ml-beginners-videos)
@ -89,79 +99,79 @@ Kai kurios pamokos pateikiamos trumpų formų vaizdo įrašais. Jas visas rasite
> 🎥 Spustelėkite viršutinį paveikslėlį, kad peržiūrėtumėte vaizdo įrašą apie projektą ir jo kūrėjus!
> 🎥 Spustelėkite aukščiau esantį paveikslėlį, kad pamatytumėte video apie projektą ir jį sukūrusius žmones!
---
## Pedagogika
Kuriant šį kurikulą pasirinkome du pedagoginius principus: užtikrinti, kad jis būtų praktinis, **projektų pagrindu** ir būtų įtrauktos **dažnos viktorinos**. Be to, šis kurikulas turi bendrą **temą**, suteikiančią nuoseklumą.
Kurdami šią mokymo programą pasirinkome du pedagoginius principus: užtikrinti, kad ji būtų praktinė ir **projektinė**, bei kad joje būtų **dažni testai**. Be to, šiai programai suteikta bendra **tema**, suteikianti nuoseklumą.
Suderinus turinį su projektais, mokymosi procesas tampa patrauklesnis ir koncepcijų įsisavinimas sustiprinamas. Be to, mažos rizikos testas prieš paskaitą nukreipia studentą į naujos temos mokymąsi, o antras testas po paskaitos užtikrina geresnį įsisavinimą. Šis kurikulas sukurtas būti lankstus ir įdomus, jį galima atlikti pilnai arba dalimis. Projektai pradžioje yra paprasti ir palaipsniui sudėtingėja iki 12 savaičių ciklo pabaigos. Šiame kurikule taip pat yra pabaigos pastaba apie mašininio mokymosi taikymą realiame pasaulyje, kurį galima naudoti kaip papildomą užduotį arba diskusijų pagrindą.
Užtikrinant turinio suderinamumą su projektais, procesas studentams tampa įdomesnis, o sąvokų įsisavinimas padidėja. Be to, mažos rizikos testas prieš paskaitą nukreipia studentų dėmesį į mokymąsi, o po paskaitos atliekamas testas palaiko geresnį įsisavinimą. Ši programa sukurta būti lanksti ir smagi, ją galima atlikti visą arba dalimis. Projektai prasideda nuo paprastų ir didėja sudėtingumu per 12 savaičių ciklą. Programa taip pat apima postscriptą apie realaus gyvenimo ML taikymus, kuris gali būti naudojamas kaip papildomas balas arba diskusijų pagrindas.
> Raskite mūsų [Elgesio kodeksą](CODE_OF_CONDUCT.md), [Indėlio taisykles](CONTRIBUTING.md), [Vertimo gaires](TRANSLATIONS.md) ir [Trikčių šalinimo vadovą](TROUBLESHOOTING.md). Laukiame jūsų konstruktyvios grįžtamosios informacijos!
> Rasite mūsų [Elgesio kodeksą](CODE_OF_CONDUCT.md), [Indėlio taisykles](CONTRIBUTING.md), [Vertimų gaires](TRANSLATIONS.md) ir [Trikčių šalinimo instrukcijas](TROUBLESHOOTING.md). Labai laukiame jūsų konstruktyvios atsiliepimų!
> **Pastaba apie kalbas**: šios pamokos daugiausia parašytos Python kalba, tačiau daug jų taip pat prieinamos R kalba. Norėdami atlikti R pamoką, eikite į `/solution` katalogą ir ieškokite R pamokų. Jos turi .rmd plėtinį, kuris žymi **R Markdown** failą, kurį galima apibūdinti kaip `kodo blokų` (R arba kitomis kalbomis) ir `YAML antraštės` (kuri nurodo, kaip formatuoti išvestį, pvz., PDF) integraciją į `Markdown` dokumentą. Todėl tai yra puiki kūrimo sistema duomenų mokslui, nes leidžia derinti kodą, jo rezultatus ir pastebėjimus, rašant juos Markdown formatu. Be to, R Markdown dokumentus galima eksportuoti į tokias išvesties formas kaip PDF, HTML ar Word.
> **Pastaba apie testus**: Visi testai yra [Quiz App aplanke](../../quiz-app), iš viso 52 testai po tris klausimus. Jie yra susieti pamokų viduje, tačiau testų programėlę galima paleisti ir vietoje; vadovaukitės nurodymais `quiz-app` aplanke, kad galėtumėte ją paleisti vietoje arba įdiegti į Azure.
| Pamokos numeris | Tema | Pamokos grupavimas | Mokymosi tikslai | Susieta pamoka | Autorius |
| 01 | Įvadas į mašininį mokymąsi | [Įvadas](1-Introduction/README.md) | Išmokite pagrindines mašininio mokymosi sąvokas | [Pamoka](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Mašininio mokymosi istorija | [Įvadas](1-Introduction/README.md) | Sužinokite šio srities istoriją | [Pamoka](1-Introduction/2-history-of-ML/README.md) | Jen ir Amy |
| 03 | Teisingumas ir mašininis mokymasis | [Įvadas](1-Introduction/README.md) | Kokios yra svarbios filosofinės teisingumo problemos, kurias studentai turėtų apsvarstyti kuriant ir taikant ML modelius? | [Pamoka](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Mašininio mokymosi technikos | [Įvadas](1-Introduction/README.md) | Kokias technikas ML tyrėjai naudoja kurdami ML modelius? | [Pamoka](1-Introduction/4-techniques-of-ML/README.md) | Chris ir Jen |
| 05 | Įvadas į regresiją | [Regresija](2-Regression/README.md) | Pradėkite naudotis Python ir Scikit-learn regresijos modeliams | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Vaizduokite ir valykite duomenis, ruošiantis ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Kurkite linijinius ir polinominius regresijos modelius | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ir Dmitry • Eric Wanjau |
| 08 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Kurkite loginės regresijos modelį | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Interneto programėlė 🔌 | [Web App](3-Web-App/README.md) | Sukurkite internetinę programėlę, kad naudotumėte savo išmokytą modelį | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Įvadas į klasifikavimą | [Klasifikacija](4-Classification/README.md) | Valykite, paruoškite ir vizualizuokite duomenis; įvadas į klasifikavimą | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ir Cassie • Eric Wanjau |
| 11 | Gardūs Azijos ir Indijos virtuvės patiekalai 🍜 | [Klasifikacija](4-Classification/README.md) | Įvadas į klasifikatorius | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ir Cassie • Eric Wanjau |
| 12 | Gardūs Azijos ir Indijos virtuvės patiekalai 🍜 | [Klasifikacija](4-Classification/README.md) | Daugiau klasifikatorių | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ir Cassie • Eric Wanjau |
| 13 | Gardūs Azijos ir Indijos virtuvės patiekalai 🍜 | [Klasifikacija](4-Classification/README.md) | Sukurkite rekomendacinę interneto programėlę naudodami savo modelį | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Įvadas į klasterizavimą | [Klasterizacija](5-Clustering/README.md) | Valykite, paruoškite ir vizualizuokite savo duomenis; įvadas į klasterizaciją | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Nigerijos muzikos skonių tyrinėjimas 🎧 | [Klasterizacija](5-Clustering/README.md) | Tyrinėkite K-Means klasterizavimo metodą | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Įvadas į natūralios kalbos apdorojimą ☕️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Išmokite NLP pagrindus kurdami paprastą botą | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Bendros NLP užduotys ☕️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Gilinkite NLP žinias suprasdami dažnas užduotis, reikalingas kalbos struktūroms apdoroti | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Vertimas ir nuotaikos analizė ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Vertimas ir nuotaikos analizė su Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantiški Europos viešbučiai ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Nuotaikos analizė su viešbučių atsiliepimais 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantiški Europos viešbučiai ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Nuotaikos analizė su viešbučių atsiliepimais 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Įvadas į laiko eilučių prognozavimą | [Laiko eilutės](7-TimeSeries/README.md) | Įvadas į laiko eilučių prognozavimą | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Pasaulinis elektros naudojimas ⚡️ - laiko eilučių prognozavimas su ARIMA | [Laiko eilutės](7-TimeSeries/README.md) | Laiko eilučių prognozavimas su ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Pasaulinis elektros naudojimas ⚡️ - laiko eilučių prognozavimas su SVR | [Laiko eilutės](7-TimeSeries/README.md) | Laiko eilučių prognozavimas su palaikomųjų vektorių regresoriumi | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Įvadas į sustiprintą mokymąsi | [Sustiprintas mokymasis](8-Reinforcement/README.md) | Įvadas į sustiprintą mokymąsi su Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Padėkite Peteriui išvengti vilko! 🐺 | [Sustiprintas mokymasis](8-Reinforcement/README.md) | Sustiprinto mokymosi sporto salė | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Tikro pasaulio ML scenarijai ir taikymai | [ML laukinėje gamtoje](9-Real-World/README.md) | Įdomūs ir atskleidžiantys klasikinio ML realaus pasaulio taikymai | [Pamoka](9-Real-World/1-Applications/README.md) | Komanda |
| Postscript | Modelių derinimas ML naudojant RAI prietaisų skydelį | [ML laukinėje gamtoje](9-Real-World/README.md) | Modelių derinimas mašininio mokymosi srityje naudojant Atsakingo AI prietaisų skydelio komponentus | [Pamoka](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [raskite visus papildomus šio kurso išteklius mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Offline prieiga
Šią dokumentaciją galite naudoti offline naudodami [Docsify](https://docsify.js.org/#/). Šakinkite šį repozitoriją, [įdiekite Docsify](https://docsify.js.org/#/quickstart) savo vietiniame kompiuteryje, tada šio repozitorijos šakniniame aplanke įrašykite `docsify serve`. Svetainė bus paleista 3000 prievade jūsų localhost: `localhost:3000`.
## PDF'ai
Curriculum PDF su nuorodomis rasite [čia](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Kiti kursai
> **Pastaba apie kalbas**: Šios pamokos daugiausia parašytos Python kalba, tačiau daug jų yra ir R kalba. Norėdami atlikti R pamoką, eikite į `/solution` katalogą ir ieškokite R pamokų. Jos turi .rmd plėtinį, kuris reiškia **R Markdown** failą, kurį galima paprastai apibrėžti kaip `kodo blokų` (R ar kitų kalbų) ir `YAML antraštės` (kuri nurodo, kaip formatuoti išvestis, pvz., PDF) įterpimą `Markdown` dokumente. Todėl tai yra puikus duomenų mokslo kūrimo karkasas, nes leidžia derinti savo kodą, jo išvestį ir savo mintis, leidžiant jas užrašyti Markdown formatu. Be to, R Markdown dokumentus galima išvesti į tokius formatus kaip PDF, HTML ar Word.
> **Pastaba apie testus**: Visi testai yra [Quiz App kataloge](../../quiz-app), iš viso 52 testai po tris klausimus. Jie yra susieti su pamokomis, tačiau testų programą galima paleisti vietoje; vadovaukitės `quiz-app` katalogo instrukcijomis, kaip ją paleisti vietoje arba išdiegti į Azure.
| Pamokos numeris | Tema | Pamokų grupavimas | Mokymosi tikslai | Susieta pamoka | Autorius |
| 01 | Įvadas į mašininį mokymąsi | [Įvadas](1-Introduction/README.md) | Sužinokite pagrindines mašininio mokymosi sąvokas | [Pamoka](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Mašininio mokymosi istorija | [Įvadas](1-Introduction/README.md) | Sužinokite šios srities istoriją | [Pamoka](1-Introduction/2-history-of-ML/README.md) | Jen ir Amy |
| 03 | Teisingumas ir mašininis mokymasis | [Įvadas](1-Introduction/README.md) | Kokie svarbūs filosofiniai teisingumo klausimai, kuriuos studentai turėtų apsvarstyti kurdami ir taikydami ML modelius? | [Pamoka](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Mašininio mokymosi metodikos | [Įvadas](1-Introduction/README.md) | Kokias technikas ML tyrėjai naudoja kurdami ML modelius? | [Pamoka](1-Introduction/4-techniques-of-ML/README.md) | Chris ir Jen |
| 05 | Įvadas į regresiją | [Regresija](2-Regression/README.md) | Pradėkite dirbti su Python ir Scikit-learn regresijos modeliams | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Duomenų vizualizavimas ir valymas pasiruošiant ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Sukurkite linijinius ir polinominius regresijos modelius | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ir Dmitry • Eric Wanjau |
| 08 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regresija](2-Regression/README.md) | Sukurkite logistinį regresijos modelį | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Tinklalapio programa 🔌 | [Web App](3-Web-App/README.md) | Sukurkite tinklalapio programą, skirtą naudoti treniruotą modelį | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Įvadas į klasifikaciją | [Klasifikacija](4-Classification/README.md) | Valykite, paruoškite ir vizualizuokite savo duomenis; įvadas į klasifikaciją | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ir Cassie • Eric Wanjau |
| 11 | Gardžios Azijos ir Indijos virtuvės 🍜 | [Klasifikacija](4-Classification/README.md) | Įvadas į klasifikatorius | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ir Cassie • Eric Wanjau |
| 12 | Gardžios Azijos ir Indijos virtuvės 🍜 | [Klasifikacija](4-Classification/README.md) | Daugiau klasifikatorių | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ir Cassie • Eric Wanjau |
| 13 | Gardžios Azijos ir Indijos virtuvės 🍜 | [Klasifikacija](4-Classification/README.md) | Sukurkite rekomendacinės sistemos tinklalapį naudodami savo modelį | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Įvadas į grupavimą (klasterizavimą) | [Grupavimas](5-Clustering/README.md) | Valykite, paruoškite ir vizualizuokite savo duomenis; Įvadas į grupavimą | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Nigerijos muzikos skonių tyrinėjimas 🎧 | [Grupavimas](5-Clustering/README.md) | Tyrinėkite K-sredinių grupavimo metodą | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Įvadas į natūralios kalbos apdorojimą ☕️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Sužinokite NLP pagrindus kuriant paprastą botą | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Įprasti NLP uždaviniai ☕️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Pagilinkite savo NLP žinias suprasdami dažnus uždavinius, reikalingus kalbos struktūroms | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Vertimas ir nuotaikų analizė ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Vertimas ir nuotaikų analizė su Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantiški Europos viešbučiai ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Nuotaikų analizė su viešbučių apžvalgomis 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantiški Europos viešbučiai ♥️ | [Natūralios kalbos apdorojimas](6-NLP/README.md) | Nuotaikų analizė su viešbučių apžvalgomis 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Įvadas į laiko eilučių prognozavimą | [Laiko eilutės](7-TimeSeries/README.md) | Įvadas į laiko eilučių prognozavimą | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Pasaulio galios vartojimas ⚡️ - laiko eilučių prognozavimas su ARIMA | [Laiko eilutės](7-TimeSeries/README.md) | Laiko eilučių prognozavimas su ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Pasaulio galios vartojimas ⚡️ - laiko eilučių prognozavimas su SVR | [Laiko eilutės](7-TimeSeries/README.md) | Laiko eilučių prognozavimas su atraminio vektoriaus regresoriumi | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Įvadas į sustiprintą mokymąsi | [Sustiprintas mokymasis](8-Reinforcement/README.md) | Įvadas į sustiprintą mokymąsi naudojant Q-Mokymą | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| Postscript | Tikros pasaulio ML scenarijai ir taikymai | [ML laukinėje aplinkoje](9-Real-World/README.md) | Įdomios ir atskleidžiančios realaus pasaulio klasikinio ML taikymo pavyzdžiai | [Pamoka](9-Real-World/1-Applications/README.md) | Komanda |
| Postscript | Modelio derinimas ML naudojant RAI valdymo skydelį | [ML laukinėje aplinkoje](9-Real-World/README.md) | Modelio derinimas mašininio mokymosi metu naudojant Responsible AI valdymo skydelio komponentus | [Pamoka](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [raskite visas papildomas šio kurso medžiagas mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Vietinis prieinamumas
Šią dokumentaciją galite naudoti ir offline režimu naudodami [Docsify](https://docsify.js.org/#/). Sukurkite šio repo kopiją, [įdiekite Docsify](https://docsify.js.org/#/quickstart) savo vietinėje mašinoje, ir tuomet šio repo šakninėje direktorijoje įveskite `docsify serve`. Svetainė bus patiekiama per 3000 prievadą jūsų localhost'e: `localhost:3000`.
## PDF failai
Raskite viso kurso mokymo planą su nuorodomis [čia](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Kiti kursai
Mūsų komanda kuria ir kitus kursus! Pažiūrėkite:
@ -172,7 +182,7 @@ Mūsų komanda kuria ir kitus kursus! Pažiūrėkite:
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
@ -180,11 +190,11 @@ Mūsų komanda kuria ir kitus kursus! Pažiūrėkite:
---
### Generatyvinio AI serija
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### Generatyvinė dirbtinis intelektas
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
@ -193,31 +203,36 @@ Mūsų komanda kuria ir kitus kursus! Pažiūrėkite:
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copilot serija
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
Jei įstringate arba turite klausimų apie DI programų kūrimą. Prisijunkite prie kitų mokinių ir patyrusių kūrėjų, kurie dalyvauja diskusijose apie MCP. Tai palaikanti bendruomenė, kurioje klausimai yra laukiami, o žinios laisvai dalijamos.
Jei užstrigote arba turite klausimų apie DI programėlių kūrimą, prisijunkite prie kitų besimokančiųjų ir patyrusių programuotojų diskusijose apie MCP. Tai palaikanti bendruomenė, kurioje klausimai yra laukiam ir žinios dalijamasi laisvai.
- Tirskite realaus pasaulio duomenų rinkinius naudodami išmoktus konceptus.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipkite dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Pirminis dokumentas originalia kalba yra laikomas autoritetingu šaltiniu. Svarbiai informacijai rekomenduojama naudoti profesionalų žmogaus vertimą. Mes neatsakome už bet kokius nesusipratimus ar neteisingą interpretaciją, kylančią naudojantis šiuo vertimu.
**Atsakomybės apribojimas**:
Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipkite dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba laikomas autoritetingu šaltiniu. Dėl svarbios informacijos rekomenduojamas profesionalus žmogiškas vertimas. Mes neatsakome už bet kokius nesusipratimus ar neteisingus aiškinimus, kylantčius dėl šio vertimo naudojimo.
[](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 Linear Regression ရဲ့ အကျဉ်းချုပ်ကို ကြည့်ရန် အထက်ပါပုံကို နှိပ်ပါ။
> 🎥 ဒေါက်ဗိုင်းလင်ကို နှိပ်၍ linear regression အကြောင်း နိဒါန်းဗီဒီယို ကြည့်ရှုနိုင်ပါသည်။
> ဒီလိုင်းကို _line of best fit_ ဟုခေါ်ပြီး [equation](https://en.wikipedia.org/wiki/Simple_linear_regression) ဖြင့် ဖော်ပြနိုင်သည်။
> ဒီလိုင်းကို _line of best fit_လို့ခေါ်ပြီး [တစ်ခုတည်းသောဆွဲဆန့် regression ဆိပ်ကမ်း](https://en.wikipedia.org/wiki/Simple_linear_regression) ဖြင့်ဖော်ပြနိုင်ပါတယ်။
[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
[](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 အထက်ကပုံကိုနှိပ်ပြီး categorical features အသုံးပြုနည်းအကျဉ်းချုပ်ဗီဒီယိုကိုကြည့်ပါ။
* **Numeric encoding** က variety အမျိုးအစားတွေကို table တစ်ခုထဲမှာတည်ဆောက်ပြီး၊ variety နာမည်ကို table ထဲက index နဲ့အစားထိုးပါမယ်။ ဒါဟာ linear regression အတွက်အကောင်းဆုံးနည်းလမ်းမဟုတ်ပါဘူး၊ အကြောင်းက linear regression က index ရဲ့ actual numeric value ကိုယူပြီး၊ coefficient တစ်ခုနဲ့မြှောက်ပြီးရလဒ်ထဲထည့်သွင်းပါတယ်။ ကျွန်တော်တို့အခြေအနေမှာ index နံပါတ်နဲ့စျေးနှုန်းကြားက relationship က non-linear ဖြစ်ပါတယ်၊ indices တွေကိုအတိအကျစီစဉ်ထားတယ်ဆိုရင်တောင်ပါ။
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
У цьому уроці ви дізналися про інструментарій відповідального штучного інтелекту, "відкритий, керований спільнотою проєкт, який допомагає науковцям з даних аналізувати та вдосконалювати системи штучного інтелекту". Для цього завдання досліджуйте один із [ноутбуків](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) інструментарію RAI та представте свої висновки у вигляді статтіабо презентації.
У цьому уроці ви дізналися про Інструментарій Відповідального Штучного Інтелекту, «відкритий, керований спільнотою проєкт, щоб допомогти дата-сайентистам аналізувати та покращувати системи ШІ». Для цього завдання дослідіть одну з [ноутбуків](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) RAI Toolbox і подайте звіт про свої висновки у вигляді доповідіабо презентації.
## Критерії оцінювання
| Критерії | Відмінно | Задовільно | Потребує покращення |
| | Представлено статтю або презентацію PowerPoint, в якій обговорюються системи Fairlearn, ноутбук, який було запущено, та висновки, зроблені на основі його виконання | Представлено статтю без висновків | Стаття не представлена |
| | Представлено доповідь або презентацію PowerPoint, що обговорює системи Fairlearn, виконаний ноутбук та висновки, зроблені після його запуску | Представлено доповідь без висновків | Доповідь не представлена |
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Відмова від відповідальності**:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ мовою оригіналу слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.
Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми докладаємо зусиль для забезпечення точності, просимо врахувати, що автоматичні переклади можуть містити помилки чи неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння чи неправильні тлумачення, що виникли внаслідок використання цього перекладу.
> ### [Цей урок доступний у R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [Цей урок доступний і на R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Вступ
До цього моменту ви дослідили, що таке регресія, використовуючи вибіркові дані з набору даних про ціни на гарбузи, який ми будемо використовувати протягом цього уроку. Ви також візуалізували ці дані за допомогою Matplotlib.
До цього моменту ви досліджували, що таке регресія, використовуючи вибіркові дані з набору даних про ціни на гарбузи, який ми використовуватимемо протягом усього цього уроку. Ви також візуалізували ці дані за допомогою Matplotlib.
Тепер ви готові глибше зануритися в регресію для машинного навчання. Хоча візуалізація дозволяє зрозуміти дані, справжня сила машинного навчання полягає у_навчанні моделей_. Моделі навчаються на історичних даних, щоб автоматично захоплювати залежності між даними, і дозволяють прогнозувати результати для нових даних, які модель раніше не бачила.
Тепер ви готові зануритися глибше у регресію в машинному навчанні. Хоча візуалізація допомагає зрозуміти дані, справжня сила машинного навчання полягає в_навчанні моделей_. Моделі навчаються на історичних даних, щоб автоматично виявляти залежності в даних, і дозволяють прогнозувати результати для нових даних, яких модель раніше не бачила.
У цьому уроці ви дізнаєтеся більше про два типи регресії: _основну лінійну регресію_ та _поліноміальнурегресію_, а також про деякі математичні основи цих методів. Ці моделі дозволять нам прогнозувати ціни на гарбузи залежно від різних вхідних даних.
У цьому уроці ви детальніше дізнаєтесь про два типи регресії: _базова лінійна регресія_ та _поліноміальнарегресія_, а також про математику, що лежить в основі цих методів. Ці моделі дозволять нам прогнозувати ціни на гарбузи залежно від різних вхідних даних.
[](https://youtu.be/CRxFT8oTDMg "ML для початківців - Розуміння лінійної регресії")
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд лінійної регресії.
> Протягом цього курсу ми припускаємо мінімальні знання математики та прагнемо зробити її доступною для студентів з інших галузей, тому звертайте увагу на примітки, 🧮 математичні виклики, діаграми та інші навчальні інструменти для полегшення розуміння.
> Протягом цього курсу ми передбачаємо мінімальні знання математики і намагаємося зробити її доступною для студентів з інших галузей, тому звертайте увагу на примітки, 🧮 підказки, діаграми та інші інструменти для полегшення розуміння.
### Передумови
На даний момент ви повинні бути знайомі зі структурою даних про гарбузи, які ми досліджуємо. Ви можете знайти їх попередньо завантаженими та очищеними у файлі _notebook.ipynb_ цього уроку. У файлі ціна гарбуза відображається за бушель у новому фреймі даних. Переконайтеся, що ви можете запускати ці ноутбуки в ядрах Visual Studio Code.
До цього часу ви вже маєте ознайомлення зі структурою даних про гарбузи, які ми досліджуємо. Ви можете знайти їх завантаженими та попередньо очищеними у файлі _notebook.ipynb_ цього уроку. У файлі ціна на гарбуз подана за бушель у новому датафреймі. Переконайтесь, що ви можете запускати ці ноутбуки в ядраху Visual Studio Code.
### Підготовка
Нагадаємо, ви завантажуєте ці дані, щоб ставити запитання до них.
Як нагадування, ви завантажуєте ці дані, щоб ставити до них запитання.
- Коли найкращий час для купівлі гарбузів?
- Яку ціну можна очікувати за ящик мініатюрних гарбузів?
- Чи варто купувати їх у кошиках на півбушеля чи в коробках на 1 1/9 бушеля?
Давайте продовжимо досліджувати ці дані.
- Коли найкращий час купувати гарбузи?
- Яку ціну можна очікувати за коробку мініатюрних гарбузів?
- Чи варто купувати їх у корзинах на півбушеля абоу коробках на 1 1/9 бушеля?
Продовжимо досліджувати ці дані.
У попередньому уроці ви створили фрейм даних Pandas і заповнили його частиною оригінального набору даних, стандартизуючи ціни за бушель. Однак, зробивши це, ви змогли зібрати лише близько 400 точок даних і лише для осінніх місяців.
У попередньому уроці ви створили датафрейм Pandas і наповнили його частиною оригінального набору даних, стандартизувавши ціни за бушель. Проте при цьому ви змогли зібрати лише близько 400 точок даних і лише для осінніх місяців.
Перегляньте дані, які ми попередньо завантажили у супровідному ноутбуці цього уроку. Дані попередньо завантажені, а початковий діаграма розсіювання побудована для відображення даних за місяцями. Можливо, ми зможемо отримати трохи більше деталей про природу даних, якщо очистимо їх більше.
Погляньте на дані, які ми заздалегідь завантажили у супровідному ноутбуці цього уроку. Дані завантажено, і побудовано початковий графік розсіювання для показу даних по місяцях. Можливо, ми зможемо отримати трохи більше інформації про природу цих даних, очистивши їх ще більше.
## Лінія лінійної регресії
## Лінійна регресійна лінія
Як ви дізналися в Уроці 1, мета вправи з лінійної регресії полягає в тому, щоб побудувати лінію для:
Як ви дізнались у Уроці 1, мета вправи з лінійної регресії – це можливість побудувати лінію для:
- **Показу взаємозв'язків змінних**. Показати взаємозв'язок між змінними.
- **Прогнозування**. Зробити точні прогнози щодо того, де нова точка даних буде розташована відносно цієї лінії.
- **Показу взаємозв’язків змінних**. Показати зв’язок між змінними
- **Робити прогнози**. Робити точні прогнози, де нова точка даних розташується відносно цієї лінії.
Зазвичай для побудови такого типу лінії використовується метод**регресії найменших квадратів**. Термін "найменші квадрати" означає, що всі точки даних навколо лінії регресії підносяться до квадрату, а потім додаються. Ідеально, щоб остаточна сума була якомога меншою, оскільки ми хочемо мати низьку кількість помилок, або`найменші квадрати`.
Типово для**регресії найменших квадратів** малюють саме таку лінію. Термін "найменші квадрати" відноситься до процесу мінімізації загальної помилки в нашій моделі. Для кожної точки даних ми вимірюємо вертикальну відстань (яку називають залишком) між фактичною точкою і нашою регресійною лінією.
Ми робимо це, оскільки хочемо змоделювати лінію, яка має найменшу сумарну відстань від усіх наших точок даних. Ми також підносимо терміни до квадрату перед додаванням, оскільки нас цікавить їх величина, а не напрямок.
Ці відстані ми підносимо до квадрату з двох основних причин:
> **🧮 Покажіть мені математику**
>
> Ця лінія, яка називається _лінією найкращого підходу_, може бути виражена [рівнянням](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
1. **Величина важливіша за напрямок:** Ми хочемо поставитись до помилки -5 так само, як до помилки +5. Квадрат робить усі значення додатними.
2. **Покарання за викиди:** Квадрат надає більшу вагу великим помилкам, змушуючи лінію триматися ближче до точок, які далеко розташовані.
Потім ми додаємо всі ці квадратні значення разом. Наша мета — знайти таку лінію, де ця сума буде мінімальною (найменшим можливим значенням) — звідси й назва "найменших квадратів".
> **🧮 Покажи математику**
>
> Цю лінію, яка називається _лінією найкращого наближення_, можна виразити за допомогою [рівняння](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` — це "пояснювальна змінна". `Y` — це "залежна змінна". Нахил лінії — це `b`, а`a` — це точка перетину з віссю Y, яка відповідає значенню `Y`, коли `X = 0`.
> `X`– це "пояснювальна змінна". `Y`– "залежна змінна". Нахил лінії –`b`, а`a`– це y-перетин, що відображає значення `Y`, коли `X = 0`.
> Спочатку обчисліть нахил `b`. Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
> Спочатку обраховуємо нахил `b`. Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
>
> Іншими словами, звертаючись до початкового питання про дані гарбузів: "прогнозуйте ціну гарбуза за бушель за місяцями", `X` буде означати ціну, а`Y` — місяць продажу.
> Іншими словами, і звертаючись до нашого початкового питання з даних про гарбузи: "передбачити ціну гарбуза за бушель по місяцях", `X` вказує на ціну, а`Y`– на місяць продажу.
> Обчисліть значення Y. Якщо ви платите близько $4, це має бути квітень! Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
> Обчисліть значення Y. Якщо ви платите близько 4 доларів, то це, мабуть, квітень! Інфографіка від [Jen Looper](https://twitter.com/jenlooper)
>
> Математика, яка обчислює лінію, повинна демонструвати нахил лінії, який також залежить від точки перетину, або де `Y` розташований, коли `X = 0`.
> Математика, що обчислює цю лінію, має показати нахил лінії, який також залежить від перетину, тобто де знаходиться `Y`, коли `X = 0`.
>
> Ви можете ознайомитися з методом обчислення цих значень на веб-сайті [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Також відвідайте [цей калькулятор найменших квадратів](https://www.mathsisfun.com/data/least-squares-calculator.html), щоб побачити, як значення чисел впливають на лінію.
> Ви можете ознайомитись з методом обчислення цих значень на сайті [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Також відвідайте [цей калькулятор найменших квадратів](https://www.mathsisfun.com/data/least-squares-calculator.html), щоб побачити, як значення чисел впливають на лінію.
## Кореляція
Ще один термін, який потрібно зрозуміти, — це **коефіцієнт кореляції** між заданими змінними X і Y. Використовуючи діаграму розсіювання, ви можете швидко візуалізувати цей коефіцієнт. Діаграма з точками даних, розташованими в акуратній лінії, має високу кореляцію, але діаграма з точками даних, розкиданими між X і Y, має низьку кореляцію.
Ще один термін, який потрібно зрозуміти, – це **коефіцієнт кореляції** між заданими змінними X та Y. За допомогою графіка розсіювання ви швидко можете візуалізувати цей коефіцієнт. Якщо точки на графіку розташовані акуратно по лінії — кореляція висока, якщо розкидані по всьому графіку — кореляція низька.
Хороша модель лінійної регресії буде тією, яка має високий (ближче до 1, ніж до 0) коефіцієнт кореляції, використовуючи метод регресії найменших квадратів із лінією регресії.
Добра модель лінійної регресії матиме високий (ближчий до 1, ніж до 0) коефіцієнт кореляції, визначений методом найменших квадратів із регресійною лінією.
✅ Запустіть ноутбук, що супроводжує цей урок, і подивіться на діаграму розсіювання "Місяць до Ціни". Чи здається, що дані, які асоціюють місяць із ціною продажу гарбузів, мають високу чи низьку кореляцію, згідно з вашим візуальним інтерпретацією діаграми розсіювання? Чи змінюється це, якщо використовувати більш детальний вимір замість `Місяць`, наприклад, *день року* (тобто кількість днів з початку року)?
✅ Запустіть ноутбук, який супроводжує цей урок, і подивіться на графік розсіювання місяця продажу до ціни. Чи є у даних про продажі гарбузів за місяцями висока чи низька кореляція згідно з вашим візуальним тлумаченням графіка? Чи зміниться це, якщо використати більш тонкий показник замість `Month`, наприклад, *день року* (тобто кількість днів з початку року)?
Унаведеному нижче коді ми припускаємо, що ми очистили дані та отримали фрейм даних під назвою `new_pumpkins`, схожий на наступний:
Укоді нижче ми припустимо, що очистили дані й отримали датафрейм під назвою `new_pumpkins`, схожий на такий:
ID | Місяць | ДеньРоку | Сорт | Місто | Упаковка | Низька ціна | Висока ціна | Ціна
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
> Код для очищення даних доступний у [`notebook.ipynb`](../../../../2-Regression/3-Linear/notebook.ipynb). Ми виконали ті ж кроки очищення, що й у попередньому уроці, і обчислили стовпець `DayOfYear`, використовуючи наступний вираз:
> Код для очистки даних доступний у [`notebook.ipynb`](notebook.ipynb). Ми провели такі ж кроки очищення, як і в попередньому уроці, і обчислили стовпець `DayOfYear` за допомогою такого виразу:
Тепер, коли ви розумієте математику, що лежить в основі лінійної регресії, давайте створимо модель регресії, щоб перевірити, чи можемо ми передбачити, яка упаковка гарбузів матиме найкращі ціни на гарбузи. Хтось, хто купує гарбузи для святкового гарбузового поля, може захотіти отримати цю інформацію, щоб оптимізувати свої покупки упаковок гарбузів для поля.
Тепер, коли ви розумієте математику за лінійною регресією, давайте створимо модель регресії, щоб визначити, який пакет гарбузів має найкращі ціни. Ті, хто купує гарбузи для осінніх святкових майданчиків, можуть захотіти цю інформацію, аби оптимізувати свої закупівлі.
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд кореляції.
З попереднього уроку ви, мабуть, бачили, що середня ціна за різні місяці виглядає так:
Як ви, мабуть, помітили у попередньому уроці, середня ціна за місяцями виглядає так:
<imgalt="Середня ціна за місяцями"src="../../../../translated_images/uk/barchart.a833ea9194346d76.webp"width="50%"/>
Це свідчить про те, що має бути певна кореляція, і ми можемо спробувати навчити модель лінійної регресії, щоб передбачити взаємозв'язок між `Місяць`і`Ціна`, або між `ДеньРоку`і`Ціна`. Ось діаграма розсіювання, яка показує останній взаємозв'язок:
Це свідчить про те, що повинен бути певний зв’язок, і ми можемо спробувати навчити модель лінійної регресії, щоб спрогнозувати відношення між `Month`і`Price`, або між `DayOfYear`і`Price`. Ось графік розсіювання, який показує останній зв’язок:
<imgalt="Діаграма розсіювання Ціна vs День року" src="../../../../translated_images/uk/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
<imgalt="Графік розсіювання Ціни проти Дня року" src="../../../../translated_images/uk/scatter-dayofyear.bc171c189c9fd553.webp"width="50%"/>
Давайте перевіримо, чи є кореляція, використовуючи функцію `corr`:
Перевіримо, чи існує кореляція, використовуючи функцію `corr`:
Схоже, що кореляція досить мала, -0.15 за `Місяць`і -0.17 за `ДеньРоку`, але може бути інший важливий взаємозв'язок. Схоже, що є різні кластери цін, які відповідають різним сортам гарбузів. Щоб підтвердити цю гіпотезу, давайте побудуємо кожну категорію гарбузів, використовуючи різний колір. Передаючи параметр `ax` до функції побудови діаграми розсіювання, ми можемо побудувати всі точки на одному графіку:
Виглядає, що кореляція досить мала: -0.15 за `Month`і -0.17 за `DayOfMonth`, але може існувати ще один важливий зв’язок. Виглядає, що існують різні кластери цін, які відповідають різним сортам гарбузів. Щоб підтвердити цю гіпотезу, побудуємо графік розсіювання кожної категорії гарбузів різним кольором. Передаючи параметр `ax` функції `scatter`, ми можемо відобразити всі точки на одному графіку:
```python
ax=None
@ -128,42 +140,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<imgalt="Діаграма розсіювання Ціна vs День року" src="../../../../translated_images/uk/scatter-dayofyear-color.65790faefbb9d54f.webp"width="50%"/>
<imgalt="Графік розсіювання Ціни проти Дня року з кольоровим позначенням" src="../../../../translated_images/uk/scatter-dayofyear-color.65790faefbb9d54f.webp"width="50%"/>
Наше дослідження свідчить про те, що сорт має більший вплив на загальну ціну, ніж фактична дата продажу. Ми можемо побачити це за допомогою стовпчастої діаграми:
Наше дослідження свідчить, що сорт має більший вплив на загальну ціну, ніж фактична дата продажу. Ми можемо підкріпити це стовпчиковою діаграмою:
<imgalt="Діаграма розсіювання Ціна vs День року" src="../../../../translated_images/uk/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
<imgalt="Графік розсіювання Ціни проти Дня року для pie type" src="../../../../translated_images/uk/pie-pumpkins-scatter.d14f9804a53f927e.webp"width="50%"/>
Якщо ми тепер обчислимо кореляцію між `Ціна`і`ДеньРоку`, використовуючи функцію `corr`, ми отримаємо щось близько `-0.27` - що означає, що навчання моделі прогнозування має сенс.
Якщо тепер обчислити кореляцію між `Price`і`DayOfYear` за допомогою функції `corr`, отримаємо близько `-0.27` — це означає, що навчання прогнозної моделі має сенс.
> Перед навчанням моделі лінійної регресії важливо переконатися, що наші дані очищені. Лінійна регресія не працює добре з відсутніми значеннями, тому має сенс позбутися всіх порожніх клітинок:
> Перед навчанням моделі лінійної регресії важливо впевнитися, що наші дані чисті. Лінійна регресія погано працює з відсутніми значеннями, тому варто видалити всі порожні клітинки:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Інший підхід полягатиме в заповненні цих порожніх значень середніми значеннями з відповідного стовпця.
Іншим підходом може бути заповнення порожніх значень середніми значеннями відповідного стовпця.
## Проста лінійна регресія
[](https://youtu.be/e4c_UP2fSjg "ML для початківців - Лінійна та поліноміальна регресія за допомогою Scikit-learn")
[](https://youtu.be/e4c_UP2fSjg "ML для початківців - Лінійна і поліноміальна регресія за допомогою Scikit-learn")
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд лінійної та поліноміальної регресії.
Для навчання нашої моделі лінійної регресії ми будемо використовувати бібліотеку **Scikit-learn**.
Для навчання моделі лінійної регресії ми використаємо бібліотеку **Scikit-learn**.
```python
from sklearn.linear_model import LinearRegression
@ -171,61 +183,69 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Ми починаємо з розділення вхідних значень (особливостей) і очікуваного результату (мітки) на окремі масиви numpy:
Почнемо з розділення вхідних значень (ознаки) і очікуваного результату (мітки) у окремі масиви numpy:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Зверніть увагу, що нам довелося виконати `reshape` для вхідних даних, щоб пакет лінійної регресії правильно їх зрозумів. Лінійна регресія очікує 2D-масив як вхідні дані, де кожен рядок масиву відповідає вектору вхідних особливостей. У нашому випадку, оскільки у нас є лише один вхід, нам потрібен масив із формою N×1, де N — це розмір набору даних.
> Зверніть увагу, що нам довелося виконати `reshape` для вхідних даних, щоб пакет лінійної регресії правильно їх зрозумів. Лінійна регресія очікує 2D-масив на вході, де кожен рядок — це вектор вхідних ознак. У нашому випадку, оскільки є лише одна ознака, нам потрібен масив розміром N×1, де N — розмір набору даних.
Потім нам потрібно розділити дані на навчальний і тестовий набори, щоб ми могли перевірити нашу модель після навчання:
Далі потрібно розділити дані на навчальний і тестовий набори, щоб можна було перевірити модель після навчання:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Нарешті, навчання фактичної моделі лінійної регресії займає лише два рядки коду. Ми визначаємо об'єкт `LinearRegression`і підганяємо його до наших даних, використовуючи метод`fit`:
Нарешті, навчання власне моделі лінійної регресії займає лише два рядки коду. Спочатку створюємо об’єкт `LinearRegression`, а потім підганяємо його до наших даних за допомогою методу`fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Об'єкт `LinearRegression` після підгонки містить усі коефіцієнти регресії, до яких можна отримати доступ за допомогою властивості `.coef_`. У нашому випадку є лише один коефіцієнт, який має бути близько `-0.017`. Це означає, що ціни, здається, трохи падають з часом, але не надто сильно, приблизно на 2 центи на день. Ми також можемо отримати точку перетину регресії з віссю Y, використовуючи `lin_reg.intercept_` - вона буде близько `21`у нашому випадку, що вказує на ціну на початку року.
Об’єкт `LinearRegression` після виконання `fit` містить усі коефіцієнти регресії, до яких можна отримати доступ за допомогою властивості `.coef_`. У нашому випадку є лише один коефіцієнт, який має бути близько `-0.017`. Це означає, що ціни, схоже, трохи знижуються з часом, але не дуже сильно, приблизно на 2 центи за день. Ми також можемо отримати точку перетину регресії з віссю Y за допомогою `lin_reg.intercept_` — вона буде близько `21`у нашому випадку, що вказує на ціну на початку року.
Щоб побачити, наскільки точна наша модель, ми можемо передбачити ціни на тестовому наборі даних, а потім виміряти, наскільки близькі наші передбачення до очікуваних значень. Це можна зробити, використовуючи метрику середньоквадратичної помилки (MSE), яка є середнім усіх квадратів різниць між очікуваним і передбаченим значенням.
Щоб побачити, наскільки точна наша модель, ми можемо прогнозувати ціни на тестовому набор
Наша помилка, здається, зосереджена на 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, що досить низько.
Ми також можемо побудувати графік тестових даних разом із лінією регресії, щоб краще побачити, як регресія працюєу нашому випадку:
Ми також можемо побудувати графік тестових даних разом із лінією регресії, щоб краще побачити, як працює регресія у нашому випадку:
Іншим типом лінійної регресії є поліноміальна регресія. Хоча іноді існує лінійна залежність між змінними — чим більший об’єм гарбуза, тим вища ціна — іноді ці залежності не можна зобразити у вигляді площини або прямої лінії.
Інший тип лінійної регресії — це поліноміальна регресія. Хоча іноді між змінними існує лінійний зв’язок — чим більша гарбуз за обсягом, тим вища ціна — іноді ці зв’язки не можна зобразити у вигляді площини або прямої лінії.
✅ Ось [кілька прикладів](https://online.stat.psu.edu/stat501/lesson/9/9.8) даних, які можуть використовувати поліноміальну регресію.
✅ Ось [ще кілька прикладів](https://online.stat.psu.edu/stat501/lesson/9/9.8) даних, для яких можна використати поліноміальну регресію
Подивіться ще раз на залежність між датою та ціною. Чи здається цей розкид точок таким, що його обов’язково слід аналізувати прямою лінією? Хіба ціни не можуть коливатися? У цьому випадку можна спробувати поліноміальну регресію.
Знову погляньте на зв’язок між Датою та Ціною. Чи здається цей розкиданий графік такого, що його обов’язково треба аналізувати за допомогою прямої лінії? Чи не можуть ціни коливатися? У цьому випадку ви можете спробувати поліноміальну регресію.
✅ Поліноми — це математичні вирази, які можуть складатися з однієї або кількох змінних і коефіцієнтів.
Поліноміальна регресія створює криву, яка краще підходить для нелінійних даних. У нашому випадку, якщо ми включимо квадратну змінну `DayOfYear`у вхідні дані, ми зможемо підігнати наші дані під параболічну криву, яка матиме мінімум у певний момент протягом року.
Поліноміальна регресія створює криву лінію, щоб краще підходити для нелінійних даних. У нашому випадку, якщо ми додамо змінну `DayOfYear`у квадраті до вхідних даних, ми зможемо наблизити наші дані параболічною кривою, яка матиме мінімум у певній точці протягом року.
Scikit-learn включає зручний [API для конвеєра](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), щоб об’єднати різні етапи обробки даних. **Конвеєр** — це ланцюжок **оцінювачів**. У нашому випадку ми створимо конвеєр, який спочатку додає поліноміальні ознаки до нашої моделі, а потім навчає регресію:
Scikit-learn включає корисний [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), щоб поєднати різні кроки обробки даних. **Pipeline** — це ланцюжок **оцінювачів**. У нашому випадку ми створимо pipeline, який спочатку додає поліноміальні ознаки до нашої моделі, а потім навчає регресію:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -234,62 +254,62 @@ from sklearn.pipeline import make_pipeline
Використання `PolynomialFeatures(2)` означає, що ми включимо всі поліноми другого ступеня з вхідних даних. У нашому випадку це просто означатиме `DayOfYear`<sup>2</sup>, але якщо є дві вхідні змінні X і Y, це додасть X<sup>2</sup>, XY і Y<sup>2</sup>. Ми також можемо використовувати поліноми вищого ступеня, якщо це необхідно.
Використання `PolynomialFeatures(2)` означає, що ми включатимемо всі поліноми другого ступеня з вхідних даних. У нашому випадку це буде просто `DayOfYear`<sup>2</sup>, але за наявності двох вхідних змінних X і Y це додасть X<sup>2</sup>, XY та Y<sup>2</sup>. Ми також можемо використовувати поліноми вищих ступенів, якщо хочемо.
Конвеєри можна використовувати так само, як і оригінальний об’єкт `LinearRegression`, тобто ми можемо виконати `fit` для конвеєра, а потім використовувати `predict`, щоб отримати результати прогнозу. Ось графік, який показує тестові дані та криву апроксимації:
Pipeline можна використовувати так само, як і оригінальний об’єкт `LinearRegression`, тобто ми можемо викликати `fit` для pipeline, а потім використовувати `predict` для отримання результатів передбачення. Ось графік, що показує тестові дані та наближену криву:
Використовуючи поліноміальну регресію, ми можемо отримати трохи нижчий MSE і вищий коефіцієнт детермінації, але не значно. Нам потрібно врахувати інші ознаки!
З використанням поліноміальної регресії ми можемо отримати трохи нижче MSE та вищий коефіцієнт детермінації, але незначно. Нам варто врахувати інші ознаки!
> Ви можете побачити, що мінімальні ціни на гарбузи для пирогів спостерігаються десь навколо Хелловіну. Як ви можете це пояснити?
> Ви можете побачити, що мінімальні ціни на гарбузи спостерігаються десь близько Геловіну. Як ви це можете пояснити?
🎃 Вітаємо, ви щойно створили модель, яка може допомогти передбачити ціну гарбузів для пирогів. Ви, ймовірно, можете повторити ту саму процедуру для всіх типів гарбузів, але це було б виснажливо. Давайте тепер навчимося враховувати різновиди гарбузіву нашій моделі!
🎃 Вітаємо, ви щойно створили модель, яка може допомогти передбачити ціну гарбузів для пирогів. Ви, ймовірно, зможете повторити ту ж процедуру для всіх типів гарбузів, але це було б нудно. Навчімося зараз враховувати сорт гарбузау нашій моделі!
## Категоріальні ознаки
## Категоріальні ознаки
У ідеальному світі ми хочемо мати можливість передбачати ціни для різних різновидів гарбузів, використовуючи одну й ту саму модель. Однак стовпець `Variety` дещо відрізняється від таких стовпців, як `Month`, оскільки він містить нечислові значення. Такі стовпці називаються **категоріальними**.
В ідеальному світі ми хочемо мати можливість передбачати ціни для різних сортів гарбуза, використовуючи одну й ту ж модель. Однак стовпець `Variety` дещо відрізняється від таких стовпців, як `Month`, бо він містить нечислові значення. Такі стовпці називаються **категоріальними**.
[](https://youtu.be/DYGliioIAE0 "ML для початківців - Прогнозування категоріальних ознак за допомогою лінійної регресії")
[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 Натисніть на зображення вище, щоб переглянути короткий відеоогляд використання категоріальних ознак.
> 🎥 Натисніть на зображення вище для короткого відеоогляду використання категоріальних ознак.
Ось як середня ціна залежить від різновиду:
Тут ви можете побачити, як середня ціна залежить від сорту:
<imgalt="Середня ціна за різновидом" src="../../../../translated_images/uk/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
<imgalt="Average price by variety" src="../../../../translated_images/uk/price-by-variety.744a2f9925d9bcb4.webp"width="50%"/>
Щоб врахувати різновид, спочатку потрібно перетворити його у числову форму, або**закодувати**. Є кілька способів зробити це:
Щоб врахувати сорт, спочатку нам потрібно перетворити його у числову форму, або**закодувати** його. Є кілька способів зробити це:
* Просте **числове кодування** створить таблицю різних різновидів, а потім замінить назву різновиду на індекс у цій таблиці. Це не найкраща ідея для лінійної регресії, оскільки лінійна регресія бере фактичне числове значення індексу та додає його до результату, множачи на певний коефіцієнт. У нашому випадку залежність між номером індексу та ціною явно нелінійна, навіть якщо ми переконаємося, що індекси впорядковані певним чином.
* **One-hot кодування** замінить стовпець `Variety` на 4 різні стовпці, по одному для кожного різновиду. Кожен стовпець міститиме `1`, якщо відповідний рядок належить до даного різновиду, і`0` в іншому випадку. Це означає, що в лінійній регресії буде чотири коефіцієнти, по одному для кожного різновиду гарбуза, які відповідають за "початкову ціну" (або скоріше "додаткову ціну") для цього конкретного різновиду.
* Просте **числове кодування** побудує таблицю різних сортів, а потім замінить назву сорту на індекс у цій таблиці. Це не найкраща ідея для лінійної регресії, бо лінійна регресія бере фактичне числове значення індексу і додає його до результату, множачи на якийсь коефіцієнт. У нашому випадку залежність між номером індексу та ціною явно нелінійна, навіть якщо ми впевнемося, що індекси впорядковані в певний спосіб.
* **One-hot кодування** замінить стовпець `Variety` на 4 різні стовпці, по одному для кожного сорту. Кожен стовпець міститиме `1`, якщо відповідний рядок належить до певного сорту, і`0` в інших випадках. Це означає, що в лінійній регресії буде чотири коефіцієнти — по одному для кожного сорту гарбузів, відповідальних за «початкову ціну» (а точніше «додаткову ціну») для цього конкретного сорту.
Код нижче показує, як ми можемо виконати one-hot кодування для різновиду:
Код нижче показує, як можна виконати one-hot кодування сорту:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
Щоб навчити лінійну регресію, використовуючи one-hot закодований різновид як вхідні дані, нам просто потрібно правильно ініціалізувати дані`X`і`y`:
Щоб навчити лінійну регресію за допомогою one-hot закодованого сорту як вхідних даних, потрібно просто правильно ініціалізувати `X`і`y`:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
```
Решта коду така ж, як і той, що ми використовували вище для навчання лінійної регресії. Якщо ви спробуєте це, то побачите, що середньоквадратична помилка приблизно така ж, але ми отримуємо набагато вищий коефіцієнт детермінації (~77%). Щоб отримати ще точніші прогнози, ми можемо врахувати більше категоріальних ознак, а також числові ознаки, такі як `Month`або`DayOfYear`. Щоб отримати один великий масив ознак, ми можемо використати `join`:
Решта коду така сама, як і вище, для навчання лінійної регресії. Якщо ви спробуєте це, то побачите, що середньоквадратична помилка приблизно така сама, але коефіцієнт детермінації набагато вищий (~77%). Щоб отримати ще більш точні передбачення, ми можемо врахувати більше категоріальних ознак, а також числові ознаки, такі як `Month`або`DayOfYear`. Щоб отримати один великий масив ознак, ми можемо використати `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -297,69 +317,70 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
```
Тут ми також враховуємо `City`і тип `Package`, що дає нам MSE 2.84 (10%) ідетермінацію 0.94!
Тут ми також враховуємо `City`і тип `Package`, що дає нам MSE 2.84 (10%) ікоефіцієнт детермінації 0.94!
## Об’єднання всього разом
## Об’єднуємо все разом
Щоб створити найкращу модель, ми можемо використовувати комбіновані (one-hot закодовані категоріальні + числові) дані з наведеного вище прикладу разом із поліноміальною регресією. Ось повний код для вашої зручності:
Щоб отримати найкращу модель, ми можемо використати комбіновані (one-hot закодовані категоріальні + числові) дані з наведеного вище прикладу разом з поліноміальною регресією. Ось повний код для вашої зручності:
```python
# set up training data
# налаштувати навчальні дані
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# make train-test split
# зробити розподіл на тренувальні та тестові дані
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
| Усі ознаки Поліноміальна | 2.23 (8.25%) | 0.97 |
| Модель | MSE | Детермінація |
|-------|-----|---------------|
| Лінійна по `DayOfYear` | 2.77 (17.2%) | 0.07 |
| Поліноміальна по `DayOfYear` | 2.73 (17.0%) | 0.08 |
| Лінійна по `Variety` | 5.24 (19.7%) | 0.77 |
| Лінійна по всіх ознаках | 2.84 (10.5%) | 0.94 |
| Поліноміальна по всіх ознаках | 2.23 (8.25%) | 0.97 |
🏆 Чудова робота! Ви створили чотири моделі регресії за один урокі покращили якість моделі до 97%. У фінальному розділі про регресію ви дізнаєтеся про логістичну регресію для визначення категорій.
🏆 Молодець! Ви створили чотири регресійні моделі в одному уроціі покращили якість моделі до 97%. У фінальному розділі про регресію ви дізнаєтесь про логістичну регресію для визначення категорій.
---
## 🚀Виклик
## 🚀Завдання
Перевірте кілька різних змінних у цьому ноутбуці, щоб побачити, як кореляція відповідає точності моделі.
Перевірте декілька різних змінних у цій нотатці, щоб побачити, як кореляція відповідає точності моделі.
## [Тест після лекції](https://ff-quizzes.netlify.app/en/ml/)
## [Квіз після лекції](https://ff-quizzes.netlify.app/en/ml/)
## Огляд і самостійне навчання
## Огляд та самостійне вивчення
У цьому уроці ми дізналися про лінійну регресію. Існують інші важливі типи регресії. Прочитайте про методи Stepwise, Ridge, Lasso і Elasticnet. Хороший курс для вивчення — [курс статистичного навчання Стенфорда](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
У цьому уроці ми дізнались про лінійну регресію. Існують також інші важливі типи регресії. Прочитайте про покрокові, Ridge, Lasso та Elasticnet методи. Хорошим курсом для подальшого вивчення є [курс Стенфордського університету зі статистичного навчання](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Завдання
## Завдання
[Створіть модель](assignment.md)
[Побудуйте модель](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Відмова від відповідальності**:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.
Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, просимо враховувати, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.
У цьому другому уроці класифікації ви дослідите більше способів класифікації числових даних. Ви також дізнаєтеся про наслідки вибору одного класифікатора над іншим.
У цьому другому уроці з класифікації ви вивчите більше способів класифікації числових даних. Ви також дізнаєтеся про наслідки вибору одного класифікатора над іншим.
## [Тест перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
## [Попередній тест перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
### Попередні знання
### Передумови
Ми припускаємо, що ви завершили попередні уроки та маєте очищений набір даних у папці `data`, який називається _cleaned_cuisines.csv_ у кореневій папці цього 4-урочного блоку.
Ми припускаємо, що ви пройшли попередні уроки та маєте очищений набір даних у вашій папці `data` під назвою _cleaned_cuisines.csv_ у кореневій папці з цими 4 уроками.
### Підготовка
Ми завантажили ваш файл _notebook.ipynb_ з очищеним набором даних і розділили його на X та y датафрейми, готові до процесу побудови моделі.
Ми завантажили ваш файл _notebook.ipynb_ з очищеним набором даних та розділили його на датафрейми X та y, готові до процесу побудови моделі.
## Карта класифікації
Раніше ви дізналися про різні варіанти класифікації даних, використовуючи шпаргалку Microsoft. Scikit-learn пропонує схожу, але більш детальну шпаргалку, яка може допомогти ще більше звузити вибір оцінювачів (інша назва класифікаторів):
Раніше ви дізналися про різні варіанти, які маєте при класифікації даних за допомогою шпаргалки Microsoft. Scikit-learn пропонує подібну, але більш детальну шпаргалку, яка може ще більше допомогти звузити ваш вибір оцінювачів (інший термін для класифікаторів):

> Порада: [відвідайте цю карту онлайн](https://scikit-learn.org/stable/tutorial/machine_learning_map/) і натискайте на шляхи, щоб прочитати документацію.

> Підказка: [відвідайте цю карту онлайн](https://scikit-learn.org/stable/tutorial/machine_learning_map/) та клацайте по шляху, щоб читати документацію.
### План
Ця карта дуже корисна, коли ви добре розумієте свої дані, оскільки ви можете "пройти" її шляхами до рішення:
Ця карта дуже корисна, як тільки ви ясно розумієте ваші дані, оскільки ви можете «йти» її шляхами до рішення:
- У нас є >50 зразків
- У нас >50 зразків
- Ми хочемо передбачити категорію
- У нас є мічені дані
- У нас менше ніж 100К зразків
- ✨ Ми можемо вибрати Linear SVC
- У нас менше ніж 100 тис. зразків
- ✨ Ми можемо обрати Linear SVC
- Якщо це не спрацює, оскільки у нас числові дані
- Ми можемо спробувати ✨ KNeighbors Classifier
- Якщо це не спрацює, спробуйте ✨ SVC та ✨ Ensemble Classifiers
- Ми можемо спробувати ✨ KNeighbors Classifier
- Якщо це не спрацює, спробуйте ✨ SVC і ✨ Ensemble Classifiers
Це дуже корисний шлях для слідування.
Цей маршрут дуже корисно наслідувати.
## Вправа - розділіть дані
## Вправа - розділити дані
Слідуючи цьому шляху, ми повинні почати з імпорту деяких бібліотек для використання.
Слідуючи цьому шляху, ми маємо почати з імпорту потрібних бібліотек.
1. Імпортуйте необхідні бібліотеки:
1. Імпортуйте потрібні бібліотеки:
```python
from sklearn.neighbors import KNeighborsClassifier
Support-Vector clustering (SVC) є частиною сімейства методів машинного навчання Support-Vector machines (докладніше про них нижче). У цьому методі ви можете вибрати "ядро", щоб вирішити, як кластеризувати мітки. Параметр 'C' стосується "регуляризації", яка регулює вплив параметрів. Ядро може бути одним із [кількох](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); тут ми встановлюємо його як 'linear', щоб використовувати Linear SVC. За замовчуванням ймовірність встановлена як 'false'; тут ми встановлюємо її як 'true', щоб отримати оцінки ймовірності. Ми встановлюємо random state як '0', щоб перемішати дані для отримання ймовірностей.
Підтримка векторного кластерування (SVC) належить до сімейства методів машинного навчання Support-Vector machines (навчайтеся більше про них нижче). У цьому методі ви можете вибрати «ядро», яке визначає, як розподіляти мітки. Параметр «C» означає «регуляризацію», яка регулює вплив параметрів. Ядро може бути одним із [кількох](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); тут ми встановлюємо його 'linear', щоб використати лінійний SVC. Параметр probability за замовчуванням 'false'; тут ми встановлюємо його 'true', щоб отримати оцінки ймовірності. Ми встановили random_state у '0', щоб перемішати дані для отримання ймовірностей.
### Вправа - застосуйте Linear SVC
### Вправа - застосувати лінійний SVC
Почніть із створення масиву класифікаторів. Ви будете поступово додавати до цього масиву, тестуючи.
Почніть зі створення масиву класифікаторів. Ви поступово додаватимете до цього масиву по мірі тестування.
2. Навчіть вашу модель, використовуючи Linear SVC, і виведіть звіт:
2. Навчіть свою модель за допомогою Linear SVC та виведіть звіт:
```python
n_classifiers = len(classifiers)
@ -107,13 +107,13 @@ Support-Vector clustering (SVC) є частиною сімейства мето
## Класифікатор K-Neighbors
K-Neighbors є частиною сімейства методів ML "neighbors", які можуть використовуватися як для контрольованого, так і для неконтрольованого навчання. У цьому методі створюється задана кількість точок, і дані збираються навколо цих точок таким чином, щоб можна було передбачити узагальнені мітки для даних.
K-Neighbors належить до сімейства методів "neighbors", які можна використовувати для керованого та некерованого навчання. У цьому методі створюється заздалегідь визначена кількість точок, і дані збираються навколо цих точок так, щоб можна було передбачити узагальнені мітки для даних.
### Вправа - застосуйте класифікатор K-Neighbors
### Вправа - застосувати класифікатор K-Neighbors
Попередній класифікатор був хорошим і добре працював із даними, але, можливо, ми можемо отримати кращу точність. Спробуйте класифікатор K-Neighbors.
Попередній класифікатор був добрим і добре працював з даними, але, можливо, ми отримаємо кращу точність. Спробуйте класифікатор K-Neighbors.
1. Додайте рядок до вашого масиву класифікаторів (додайте кому після елемента Linear SVC):
1. Додайте рядок у свій масив класифікаторів (додайте кому після елемента Linear SVC):
```python
'KNN classifier': KNeighborsClassifier(C),
@ -136,15 +136,15 @@ K-Neighbors є частиною сімейства методів ML "neighbors"
weighted avg 0.76 0.74 0.74 1199
```
✅ Дізнайтеся більше про [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
✅ Дізнайтеся про [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors)
## Класифікатор Support Vector
Класифікатори Support-Vector є частиною сімейства методів ML [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine), які використовуються для задач класифікації та регресії. SVM "відображають навчальні приклади в точки в просторі", щоб максимізувати відстань між двома категоріями. Наступні дані відображаються в цьому просторі, щоб можна було передбачити їхню категорію.
Класифікатори Support-Vector належать до сімейства методів машинного навчання [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine), які використовуються для задач класифікації та регресії. SVM «відображає приклади тренування у точки в просторі», щоб максимізувати відстань між двома категоріями. Пізніші дані відображаються в цьому просторі, щоб передбачити їх категорію.
### Вправа - застосуйте класифікатор Support Vector
### Вправа - застосувати Support Vector Classifier
Спробуємо отримати трохи кращу точність за допомогою класифікатора Support Vector.
Спробуємо отримати трохи кращу точність, використовуючи Support Vector Classifier.
1. Додайте кому після елемента K-Neighbors, а потім додайте цей рядок:
@ -169,11 +169,11 @@ K-Neighbors є частиною сімейства методів ML "neighbors"
weighted avg 0.84 0.83 0.83 1199
```
✅ Дізнайтеся більше про [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
✅ Дізнайтеся про [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm)
## Ensemble Classifiers
## Ансамблеві класифікатори
Давайте пройдемо шлях до самого кінця, навіть якщо попередній тест був досить хорошим. Спробуємо деякі класифікатори 'Ensemble', зокрема Random Forest та AdaBoost:
Давайте підемо до самого кінця шляху, навіть якщо попередній тест був досить хорошим. Спробуємо деякі «Ансамблеві класифікатори», зокрема Random Forest та AdaBoost:
```python
'RFST': RandomForestClassifier(n_estimators=100),
@ -210,31 +210,33 @@ Accuracy (train) for ADA: 72.4%
weighted avg 0.73 0.72 0.72 1199
```
✅ Дізнайтеся більше про [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html)
✅ Дізнайтеся про [Ансамблеві класифікатори](https://scikit-learn.org/stable/modules/ensemble.html)
Цей метод машинного навчання "об'єднує прогнози кількох базових оцінювачів", щоб покращити якість моделі. У нашому прикладі ми використовували Random Trees та AdaBoost.
Цей метод машинного навчання «поєднує передбачення кількох базових оцінювачів», щоб покращити якість моделі. У нашому прикладі ми використали випадкові дерева та AdaBoost.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), метод усереднення, будує "ліс" із "дерев рішень", наповнених випадковістю, щоб уникнути перенавчання. Параметр n_estimators встановлюється як кількість дерев.
- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), метод усереднення, створює «ліс» із «дерев рішень», насичений випадковістю для уникнення перенавчання. Параметр n_estimators встановлює кількість дерев.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) підбирає класифікатор до набору даних, а потім підбирає копії цього класифікатора до того ж набору даних. Він зосереджується на вагах неправильно класифікованих елементів і коригує підбір для наступного класифікатора, щоб виправити помилки.
- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) підганяє класифікатор під набір даних, а потім підганяє копії цього класифікатора під той самий набір даних. Зосереджується на ваги неправильно класифікованих елементів та налаштовує підгонку для наступного класифікатора, щоб виправити це.
---
## 🚀Виклик
Кожен із цих методів має велику кількість параметрів, які ви можете налаштувати. Дослідіть параметри за замовчуванням кожного методу та подумайте, що означатиме їхнє налаштування для якості моделі.
Кожен із цих методів має велику кількість параметрів, які ви можете змінювати. Вивчіть значення параметрів за замовчуванням для кожного та подумайте, що означатиме їх змінення для якості моделі.
## [Тест після лекції](https://ff-quizzes.netlify.app/en/ml/)
У цих уроках багато термінології, тому приділіть хвилинку, щоб переглянути [цей список](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) корисних термінів!
У цих уроках багато спеціалізованої термінології, тому приділіть хвилину, щоб переглянути [цей список](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) корисних термінів!
## Завдання
## Завдання
[Гра з параметрами](assignment.md)
---
**Відмова від відповідальності**:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, звертаємо вашу увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ мовою оригіналу слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний переклад людиною. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Відмова від відповідальності**:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний переклад людиною. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, які виникли внаслідок використання цього перекладу.
"\n---\n\n**Відмова від відповідальності**: \nЦей документ був перекладений за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникають внаслідок використання цього перекладу.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Застереження**:\nЦей документ був перекладений за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми намагаємося забезпечити точність, просимо враховувати, що автоматичні переклади можуть містити помилки чи неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критичної інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, які можуть виникнути внаслідок використання цього перекладу.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
"\n---\n\n**Відмова від відповідальності**: \nЦей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, зверніть увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ мовою оригіналу слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.\n"
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Відмова від відповідальності**:\nЦей документ був перекладений за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
> Цей репозиторій містить понад 50 перекладів мов, що значно збільшує розмір завантаження. Щоб клонувати без перекладів, використовуйте sparse checkout:
> **Віддаєте перевагу клонуванню локально?**
>
> Цей репозиторій містить понад 50 перекладів, що значно збільшує розмір завантаження. Щоб клонувати без перекладів, використовуйте sparse checkout:
У нас проходить серія в Discord "Вчимося з AI", дізнайтеся більше та приєднуйтесь за посиланням [Learn with AI Series](https://aka.ms/learnwithai/discord) з 18 по 30 вересня 2025 року. Ви отримаєте поради та трюки з використання GitHub Copilot для Data Science.
У нас триває серія Discord "Вчимося з AI", дізнайтеся більше та приєднуйтесь до нас на [Learn with AI Series](https://aka.ms/learnwithai/discord) з 18 по 30 вересня 2025 року. Ви отримаєте поради та хитрощі використання GitHub Copilot для Data Science.

# Машинне навчання для початківців - навчальна програма
# Машинне навчання для початківців — навчальна програма
> 🌍 Подорожуйте світом, досліджуючи машинне навчання через призму світових культур 🌍
> 🌍 Подорожуйте світом, вивчаючи машинне навчання через призму світових культур 🌍
Фахівці Cloud Advocates у Microsoft раді запропонувати 12-тижневу навчальну програму з 26 уроків, присвячену **машинному навчанню**. У цій програмі ви дізнаєтеся про те, що іноді називають **класичним машинним навчанням**, використовуючи переважно бібліотеку Scikit-learn, уникаючи глибинного навчання, яке викладається у нашій програмі [AI для початківців](https://aka.ms/ai4beginners). Поєднуйте ці уроки з нашою програмою ['Data Science для початківців'](https://aka.ms/ds4beginners).
Команда Cloud Advocates у Microsoft рада запропонувати 12-тижневу навчальну програму з 26 уроків, повністю присвячених **Машинному навчанню**. У цій програмі ви дізнаєтеся про так зване **класичне машинне навчання**, використовуючи насамперед бібліотеку Scikit-learn і уникаючи глибокого навчання, яке охоплюється в нашій навчальній програмі [AI для початківців](https://aka.ms/ai4beginners). Також поєднуйте ці уроки з нашою програмою ['Data Science для початківців'](https://aka.ms/ds4beginners).
Подорожуйте з нами навколо світу, застосовуючи ці класичні методи до даних з багатьох регіонів. Кожен урок містить опитування до і після уроку, письмові інструкції для виконання, розв’язок, завдання та інше. Наша проєктно-орієнтована педагогіка дозволяє вчитися через створення, що є перевіреним способом закріплення нових навичок.
Подорожуйте з нами навколо світу, застосовуючи класичні техніки до даних з різних регіонів світу. Кожен урок включає тести перед та після уроку, письмові інструкції для виконання уроку, розв’язок, завдання і багато іншого. Наш проектно-орієнтований підхід дозволяє вчитися під час створення проектів — перевірений спосіб краще засвоювати нові навички.
> [знайдіть усі додаткові ресурси для цього курсу в колекції Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [знайдіть усі додаткові ресурси для цього курсу в нашій колекції Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Потрібна допомога?** Перевірте наш [Посібник з усунення несправностей](TROUBLESHOOTING.md) для розв’язання поширених проблем із встановленням, налаштуванням та запуском уроків.
> 🔧 **Потрібна допомога?** Перегляньте наш [Посібник з усунення неполадок](TROUBLESHOOTING.md) для вирішення поширених проблем із встановленням, налаштуванням і запуском уроків.
**[Студенти](https://aka.ms/student-page)**, щоб користуватися цією програмою, форкніть увесь репозиторій на свій обліковий запис GitHub і виконуйте вправи самостійно або в групі:
**[Студенти](https://aka.ms/student-page)**, щоб використовувати цю навчальну програму, створіть форк у власному обліковому записі GitHub і виконуйте вправи індивідуально чи в групі:
- Почніть з опитування перед лекцією.
- Прочитайте лекцію та виконайте завдання, зупиняючись і осмислюючи кожну перевірку знань.
- Намагайтеся створювати проєкти, розуміючи уроки, а не просто запускаючи код розв’язку; однак цей код доступний у папках `/solution`у кожному проєктно-орієнтованому уроці.
- Пройдіть опитування після лекції.
- Почніть з тесту перед лекцією.
- Прочитайте лекцію та виконайте завдання, роблячи паузи та розмірковуючи на кожному етапі перевірки знань.
- Намагайтеся створювати проекти, розуміючи уроки, а не просто запускаючи код розв’язку; хоча цей код доступний у папках `/solution` кожного проектно-орієнтованого уроку.
- Пройдіть тест після лекції.
- Виконайте виклик.
- Виконайте домашнє завдання.
- Після завершення групи уроків відвідайте [Дискусійну дошку](https://github.com/microsoft/ML-For-Beginners/discussions) та "вчіться голосно", заповнюючи відповідний рубрикатор PAT. PAT — це інструмент оцінки прогресу, який ви заповнюєте для поглиблення навчання. Ви також можете реагувати на інші PAT, щоб ми могли вчитися разом.
- Виконайте завдання.
- Після завершення групи уроків відвідайте [дошку обговорень](https://github.com/microsoft/ML-For-Beginners/discussions) і "вчися вголос", заповнивши відповідну оцінювальну рубрику PAT. 'PAT' — це інструмент оцінювання прогресу, рубрика, яку ви заповнюєте для поглиблення навчання. Також ви можете реагувати на інші PAT, щоб навчатись разом.
> Для подальшого навчання рекомендуємо слідувати цим [модулям та навчальним шляхам Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
> Для подальшого вивчення рекомендуємо пройти ці модулі та навчальні траєкторії на [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
**Викладачі**, у нас є [деякі пропозиції](for-teachers.md) щодо використання цієї навчальної програми.
**Вчителі**, ми включили [деякі рекомендації](for-teachers.md) щодо використання цієї навчальної програми.
---
## Відеоогляди
## Відео-огляди
Деякі уроки доступні у форматі коротких відео. Ви можете знайти їх вбудованими у уроки або на [плейлисті ML for Beginners на каналі Microsoft Developer на YouTube](https://aka.ms/ml-beginners-videos), натиснувши на зображення нижче.
Деякі уроки доступні у форматі коротких відео. Ви можете знайти їх вбудованими в уроках або на [плейлисті ML для початківців на YouTube-каналі Microsoft Developer](https://aka.ms/ml-beginners-videos), натиснувши на зображення нижче.
[](https://aka.ms/ml-beginners-videos)
> 🎥 Натисніть на зображення вище, щоб переглянути відео про проєкт і людей, які його створили!
> 🎥 Натисніть на зображення вище, щоб подивитися відео про проект та людей, які його створили!
---
## Педагогіка
Під час створення цієї програми ми спиралися на два педагогічні принципи: забезпечення практичності через **проєктно-орієнтоване навчання** та включення **частих опитувань**. Крім того, у програмі є спільна **тема**, що надає їй цілісності.
Під час розробки цієї навчальної програми ми обрали два основних педагогічних принципи: забезпечити практичну **проектно-орієнтовану** роботу і включити **часті тести**. Крім того, ця програма має спільну **тему**, що надає їй цілісності.
Забезпечуючи відповідність контенту проєктам, процес стає більш захопливим для студентів, а засвоєння понять покращується. Крім того, опитування з низьким ступенем ризику перед заняттям задає намір студента вивчити теми, а друге опитування після заняття забезпечує подальше закріплення матеріалу. Ця програма розроблена як гнучка і цікава, її можна проходити повністю або частково. Проєкти починаються з простих і стають все складнішими до кінця 12-тижневого циклу. Програма також містить постскриптум про реальні застосування машинного навчання, який можна використовувати як додаткові бали або як основу для обговорення.
Забезпечуючи відповідність змісту проектам, процес стає більш захопливим для студентів, а засвоєння понять покращується. Крім того, тест з низькою складністю перед заняттям налаштовує студента на вивчення теми, а другий тест після заняття забезпечує подальше закріплення матеріалу. Ця навчальна програма була розроблена так, щоб бути гнучкою та цікавою, її можна проходити повністю або частково. Проекти починаються з простих і стають поступово складнішими до кінця 12-тижневого циклу. Програма також включає післямову про застосування машинного навчання у реальному світі, яку можна використовувати як додаткові завдання або як основу для обговорень.
> Ознайомтеся з нашим [Кодексом поведінки](CODE_OF_CONDUCT.md), [Правилами участі](CONTRIBUTING.md), [Перекладом](TRANSLATIONS.md) і [Посібником з усунення несправностей](TROUBLESHOOTING.md). Ми відкриті до ваших конструктивних відгуків!
> Ознайомтесь із нашим [Кодексом поведінки](CODE_OF_CONDUCT.md), [внеском до проєкту](CONTRIBUTING.md), [Перекладами](TRANSLATIONS.md) та [Посібником з усунення неполадок](TROUBLESHOOTING.md). Ми вітаємо ваші конструктивні відгуки!
## Кожен урок включає
- необов’язковий скетчноут
- необов’язкову нотатка-ескіз
- необов’язкове додаткове відео
- відеоогляд (тільки деякі уроки)
- [опитування для розігріву перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
- відео-огляд (тільки деякі уроки)
- [тест-розминка перед лекцією](https://ff-quizzes.netlify.app/en/ml/)
- письмовий урок
- для проєктно-орієнтованих уроків — покрокові інструкції зі створення проєкту
- для проектно-орієнтованих уроків — покрокові інструкції зі створення проекту
- перевірки знань
- виклик
- додаткові матеріали для читання
- додаткове читання
- завдання
- [опитування після лекції](https://ff-quizzes.netlify.app/en/ml/)
> **Примітка про мови:** ці уроки головним чином написані на Python, але багато з них також доступні на R. Щоб пройти урок на R, зайдіть у папку `/solution`і знайдіть уроки на R. Вони мають розширення .rmd, що означає **R Markdown** файл — це, по суті, документ Markdown, який містить `фрагменти коду` (на R або інших мовах) і`YAML-заголовок` (який визначає формат вихідного файлу, наприклад PDF). Він слугує взірцевим середовищем для створення матеріалів з науки про дані, оскільки дозволяє поєднувати код, результати виконання та власні думки, записані у форматі Markdown. R Markdown документи можна згенерувати у формати PDF, HTML або Word.
> **Примітка щодо вікторин**: Всі вікторини знаходяться в папці [Quiz App folder](../../quiz-app), загалом 52 вікторини по три запитання кожна. Вони пов’язані з уроками, але додаток вікторини можна запускати локально; дотримуйтесь інструкцій у папці `quiz-app` для локального розгортання абопублікації в Azure.
| Lesson Number | Тема | Група уроків | Навчальні цілі | Посилання на урок | Автор |
| 01 | Вступ до машинного навчання | [Вступ](1-Introduction/README.md) | Вивчити основні концепції машинного навчання | [Урок](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Історія машинного навчання | [Вступ](1-Introduction/README.md) | Ознайомитися з історією цієї галузі | [Урок](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | Справедливість і машинне навчання | [Вступ](1-Introduction/README.md) | Які важливі філософські питання щодо справедливості слід враховувати при створенні та застосуванні моделей МН? | [Урок](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Техніки машинного навчання | [Вступ](1-Introduction/README.md) | Якими методами користуються дослідники МН для побудови моделей? | [Урок](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | Вступ до регресії | [Регресія](2-Regression/README.md) | Почати роботу з Python та Scikit-learn для регресійних моделей | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Ціни гарбузів у Північній Америці 🎃 | [Регресія](2-Regression/README.md) | Візуалізувати та очистити дані для підготовки до МН | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Ціни гарбузів у Північній Америці 🎃 | [Регресія](2-Regression/README.md) | Побудувати лінійні та поліноміальні регресійні моделі | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | Ціни гарбузів у Північній Америці 🎃 | [Регресія](2-Regression/README.md) | Побудувати модель логістичної регресії | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Веб-додаток 🔌 | [Веб-додаток](3-Web-App/README.md) | Побудувати веб-додаток для використання навченої моделі | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Вступ до класифікації | [Класифікація](4-Classification/README.md) | Очистити, підготувати та візуалізувати дані; вступ до класифікації | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | Смачні азіатські та індійські кухні 🍜 | [Класифікація](4-Classification/README.md) | Вступ до класифікаторів | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | Смачні азіатські та індійські кухні 🍜 | [Класифікація](4-Classification/README.md) | Більше класифікаторів | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | Смачні азіатські та індійські кухні 🍜 | [Класифікація](4-Classification/README.md) | Побудувати рекомендаційний веб-додаток із використанням моделі | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Вступ до кластеризації | [Кластеризація](5-Clustering/README.md) | Очистити, підготувати та візуалізувати дані; вступ до кластеризації | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Дослідження музичних вподобань Нігерії 🎧 | [Кластеризація](5-Clustering/README.md) | Дослідження методу кластеризації K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Вступ до обробки природної мови ☕️ | [Обробка природної мови](6-NLP/README.md) | Вивчити основи NLP, побудувавши простого бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Загальні завдання NLP ☕️ | [Обробка природної мови](6-NLP/README.md) | Поглибити знання NLP, зрозумівши поширені завдання, необхідні для роботи з мовними структурами | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Переклад і аналіз настроїв ♥️ | [Обробка природної мови](6-NLP/README.md) | Переклад і аналіз настроїв із Джейн Остін | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Романтичні готелі Європи ♥️ | [Обробка природної мови](6-NLP/README.md) | Аналіз настроїв на основі відгуків про готелі 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Романтичні готелі Європи ♥️ | [Обробка природної мови](6-NLP/README.md) | Аналіз настроїв на основі відгуків про готелі 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 22 | ⚡️ Світове споживання електроенергії ⚡️ - прогноз ARIMA | [Часові ряди](7-TimeSeries/README.md) | Прогноз часових рядів за допомогою ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Світове споживання електроенергії ⚡️ - прогноз SVR | [Часові ряди](7-TimeSeries/README.md) | Прогноз часових рядів з використанням підтримуючих векторних регресорів | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Вступ до підсиленого навчання | [Підсилене навчання](8-Reinforcement/README.md) | Вступ до підсиленого навчання з Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Допоможи Пітеру уникнути вовка! 🐺 | [Підсилене навчання](8-Reinforcement/README.md) | Gym для підсиленого навчання | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Постскрипт | Реальні сценарії та застосування МН | [МНу реальному житті](9-Real-World/README.md) | Цікаві та показові реальні застосування класичного машинного навчання | [Урок](9-Real-World/1-Applications/README.md) | Команда |
| Постскрипт | Налагодження моделей МН за допомогою RAI | [МНу реальному житті](9-Real-World/README.md) | Налагодження моделей машинного навчання за допомогою дашборду Responsible AI | [Урок](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [знайдіть усі додаткові ресурси для цього курсу у нашій колекції Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Офлайн доступ
Ви можете працювати з цією документацією офлайн, використовуючи [Docsify](https://docsify.js.org/#/). Форкніть цей репозиторій, [встановіть Docsify](https://docsify.js.org/#/quickstart) на своєму локальному комп’ютері, а потім у кореневій папці репозиторію введіть `docsify serve`. Вебсайт буде доступний на порту 3000 на вашому локальному хості: `localhost:3000`.
- [тест після лекції](https://ff-quizzes.netlify.app/en/ml/)
> **Примітка про мови**: Ці уроки в основному написані на Python, але багато з них також доступні на R. Щоб пройти уроки на R, перейдіть до папки `/solution`і знайдіть уроки на R. Вони мають розширення .rmd, що позначає файл **R Markdown**, який можна просто визначити як вбудовування `кодових блоків` (на R або інших мовах) і`YAML-заголовка` (який контролює форматування виводу, такого як PDF) у`Markdown-документі`. Таким чином він слугує зразковою платформою для написання матеріалів з науки про дані, оскільки дозволяє поєднувати код, його вивід та ваші думки, записуючи їх у Markdown. Крім того, документи R Markdown можна відтворювати у формати виводу, такі як PDF, HTML або Word.
> **Примітка про вікторини**: Усі вікторини містяться в папці [Quiz App folder](../../quiz-app), всього 52 вікторини по три питання в кожній. Вони посиланнями пов’язані з уроками, але додаток для вікторин можна запускати локально; дотримуйтесь інструкцій у папці `quiz-app` для локального розгортання абона Azure.
| 01 | Вступ до машинного навчання | [Introduction](1-Introduction/README.md) | Вивчити основні концепції машинного навчання | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Історія машинного навчання | [Introduction](1-Introduction/README.md) | Вивчити історію розвитку цієї галузі | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | Справедливість і машинне навчання | [Introduction](1-Introduction/README.md) | Які важливі філософські питання справедливості слід враховувати при побудові та застосуванні моделей МН?| [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Техніки машинного навчання | [Introduction](1-Introduction/README.md) | Які методи використовують дослідники машинного навчання для побудови моделей? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | Вступ до регресії | [Regression](2-Regression/README.md) | Почати роботу з Python і Scikit-learn для моделей регресії | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Ціни на гарбузи в Північній Америці 🎃 | [Regression](2-Regression/README.md) | Візуалізувати та очистити дані для підготовки до машинного навчання | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Ціни на гарбузи в Північній Америці 🎃 | [Regression](2-Regression/README.md) | Побудувати лінійні та поліноміальні моделі регресії | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | Ціни на гарбузи в Північній Америці 🎃 | [Regression](2-Regression/README.md) | Побудувати модель логістичної регресії | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Веб-додаток 🔌 | [Web App](3-Web-App/README.md) | Побудувати веб-додаток для використання вашої навченої моделі | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Вступ до класифікації | [Classification](4-Classification/README.md) | Очистити, підготувати та візуалізувати дані; вступ до класифікації | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | Смачні азійські та індійські кухні 🍜 | [Classification](4-Classification/README.md) | Вступ до класифікаторів | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau |
| 12 | Смачні азійські та індійські кухні 🍜 | [Classification](4-Classification/README.md) | Більше класифікаторів | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau |
| 13 | Смачні азійські та індійські кухні 🍜 | [Classification](4-Classification/README.md) | Побудувати веб-додаток для рекомендацій за допомогою вашої моделі | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Вступ до кластеризації | [Clustering](5-Clustering/README.md) | Очистити, підготувати та візуалізувати дані; вступ до кластеризації | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Дослідження музичних смаків у Нігерії 🎧 | [Clustering](5-Clustering/README.md) | Вивчити метод кластеризації K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Вступ до обробки природної мови ☕️ | [Natural language processing](6-NLP/README.md) | Вивчити основи NLP, створивши простого бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Поширені задачі NLP ☕️ | [Natural language processing](6-NLP/README.md) | Поглибити знання про NLP, розглядаючи поширені задачі при роботі з мовними структурами | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Переклад та аналіз настроїв ♥️ | [Natural language processing](6-NLP/README.md) | Переклад і аналіз настроїв на матеріалах Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Романтичні готелі Європи ♥️ | [Natural language processing](6-NLP/README.md) | Аналіз настроїв на відгуках про готелі 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Романтичні готелі Європи ♥️ | [Natural language processing](6-NLP/README.md) | Аналіз настроїв на відгуках про готелі 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 22 | ⚡️ Використання енергії у світі ⚡️ - прогнозування з ARIMA | [Time series](7-TimeSeries/README.md) | Прогнозування часових рядів за допомогою ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Використання енергії у світі ⚡️ - прогнозування з SVR | [Time series](7-TimeSeries/README.md) | Прогнозування часових рядів за допомогою Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Вступ до підкріплювального навчання | [Reinforcement learning](8-Reinforcement/README.md) | Вступ до підкріплювального навчання з Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Допоможіть Пітеру уникнути вовка! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Підкріплювальне навчання в середовищі Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Реальні сценарії та застосування МН | [ML in the Wild](9-Real-World/README.md) | Цікаві та повчальні приклади застосування класичного машинного навчання | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| Postscript | Відлагодження моделей МН за допомогою RAI панелі | [ML in the Wild](9-Real-World/README.md) | Відлагодження моделей машинного навчання за допомогою компонетів Responsible AI dashboard | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [знайдіть усі додаткові матеріали до цього курсу в нашій колекції Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Доступ офлайн
Ви можете переглядати цю документацію офлайн, використовуючи [Docsify](https://docsify.js.org/#/). Форкніть цей репозиторій, [встановіть Docsify](https://docsify.js.org/#/quickstart) на свій локальний комп’ютер, а потім у кореневій папці репозиторію введіть `docsify serve`. Вебсайт буде доступний на порту 3000 на вашому локальному хості: `localhost:3000`.
## PDFs
Знайдіть PDF версію навчальної програми з посиланнями [тут](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
Знайдіть pdf навчальної програми з посиланнями [тут](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Інші курси
## 🎒 Інші курси
Наша команда також створює інші курси! Перегляньте:
Наша команда створює й інші курси! Ознайомтесь:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -175,23 +185,23 @@
### Azure / Edge / MCP / Agents
[](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Generative AI Series
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### Основне навчання
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
@ -200,24 +210,29 @@
---
### Серія Copilot
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
Якщо ви застрягли або маєте питання щодо створення ШІ-додатків. Приєднуйтесь до інших учнів та досвідчених розробників у обговореннях про MCP. Це підтримуюча спільнота, де питання вітаються,а знання вільно діляться.
Якщо ви застрягли або маєте запитання щодо створення AI-додатків. Приєднуйтесь до інших учнів і досвідчених розробників у обговореннях MCP. Це підтримуюча спільнота, де вітаються запитання і знання вільно діляться.
- Переглядайте нотатки після кожного уроку для кращого розуміння.
- Практикуйте власну реалізацію алгоритмів.
- Досліджуйте реальні набори даних, використовуючи вивчені концепції.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Відмова від відповідальності**:
Цей документ був перекладений за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, просимо враховувати, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ мовою оригіналу слід вважати офіційним джерелом. Для критично важливої інформації рекомендується звертатись до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.
**Відмова від відповідальності**:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критичної інформації рекомендується звертатися до професійного людського перекладу. Ми не несемо відповідальності за будь-які непорозуміння або неправильне тлумачення, що виникли внаслідок використання цього перекладу.