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

pull/966/head
localizeflow[bot] 3 months ago
parent f46c8576d7
commit aae58eccf0

@ -90,8 +90,8 @@
"language_code": "et"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T11:14:48+00:00",
"original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
"translation_date": "2026-04-20T17:13:13+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "et"
},
@ -168,8 +168,8 @@
"language_code": "et"
},
"4-Classification/2-Classifiers-1/README.md": {
"original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b",
"translation_date": "2025-10-11T11:54:05+00:00",
"original_hash": "cb761595e5b6c42b99bb81bd13683311",
"translation_date": "2026-04-20T17:14:07+00:00",
"source_file": "4-Classification/2-Classifiers-1/README.md",
"language_code": "et"
},
@ -552,8 +552,8 @@
"language_code": "et"
},
"README.md": {
"original_hash": "7fb48097f57e680b380cd9aae988d317",
"translation_date": "2026-04-06T17:42:10+00:00",
"original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0",
"translation_date": "2026-04-20T17:11:56+00:00",
"source_file": "README.md",
"language_code": "et"
},

@ -1,136 +1,136 @@
# Ehita regressioonimudel, kasutades Scikit-learn'i: regressioon neli erinevat viisi
# Ehita regressioonimudel kasutades Scikit-learn'i: regressioon neljal moel
## Algaja märkus
Lineaarset regressiooni kasutatakse, kui tahame prognoosida **numbrilist väärtust** (näiteks maja hind, temperatuur või müük).
See töötab leidmisega sirgjoont, mis kõige paremini esindab seost sisendfunktsioonide ja väljundi vahel.
Lineaarset regressiooni kasutatakse siis, kui soovime ennustada **numbrilist väärtust** (näiteks maja hind, temperatuur või müük).
See toimib, leides sirgjoone, mis kõige paremini esindab seost sisendomaduste ja väljundi vahel.
Selles õppetükis keskendume mõiste mõistmisele enne keerukamate regressioonitehnikate uurimist.
![Lineaarne ja polünoomne regressioon infograafik](../../../../translated_images/et/linear-polynomial.5523c7cb6576ccab.webp)
Selles õppetükis keskendume mõiste mõistmisele enne kui uurime keerukamaid regressioonitehnikaid.
![Lineaarne vs polünoomne regressioon infograafik](../../../../translated_images/et/linear-polynomial.5523c7cb6576ccab.webp)
> Infograafik autorilt [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Eelnev loengu visuaaltest](https://ff-quizzes.netlify.app/en/ml/)
## [Loengu-eelne viktoriin](https://ff-quizzes.netlify.app/en/ml/)
> ### [See õppetükk on saadaval ka R keeles!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [See õppetükk on saadaval R keeles!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Sissejuhatus
Senini oled uurinud, mis on regressioon, kasutades näidisandmeid kõrvitsahinnast, mida kasutame kogu õppetüki vältel. Oled seda ka visualiseerinud Matplotlib'i abil.
Nii kaugele oled uurinud, mis on regressioon, kasutades proovidataid kõrvitsahindade andmestikust, mida kasutame kogu selle õppetüki vältel. Sa oled ka visualiseerinud andmeid Matplotlibi abil.
Nüüd oled valmis süvenema regressioonisse masinõppes. Kuigi visualiseerimine aitab andmeid mõista, tuleb masinõppe tõeline jõud _mudelite koolitamisest_. Mudelid koolitatakse ajalooliste andmete põhjal, et automaatselt jäädvustada andmete sõltuvused, võimaldades ennustada tulemusi uutele andmetele, mida mudel varem näinud ei ole.
Nüüd oled valmis süvenema sügavamalt regressioonisse masinõppes. Kuigi visualiseerimine aitab andmeid mõista, tuleb masinõppe tõeline jõud mudelite koolitamisest. Mudelid koolitatakse ajalooliste andmetega, et automaatselt tabada andmete seoseid, ja need võimaldavad prognoosida uusi tulemusi, mida mudel pole varem näinud.
Selles õppetükis õpid tundma kahte regressioonitüüpi: _lihtsat lineaarset regressiooni_ ja _polünoomset regressiooni_, koos mõningate matemaatiliste aluste selgitustega. Need mudelid võimaldavad meil ennustada kõrvitsahindu erinevate sisendandmete põhjal.
Selles õppetükis õpid rohkem kahe regressioonitüübi kohta: _põhiline lineaarne regressioon_ ja _polünoomne regressioon_, koos mõne nende tehnika matemaatikaga. Need mudelid võimaldavad meil ennustada kõrvitsahindu sõltuvalt erinevatest sisendandmetest.
[![Masinõpe algajatele - Lineaarse regressiooni mõistmine](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "Masinõpe algajatele - Lineaarse regressiooni mõistmine")
> 🎥 Klõpsa ülalolevale pildile, et vaadata lühikest ülevaadet lineaarse regressiooni kohta.
> 🎥 Kliki pildil ülalpool, et vaadata lühike video ülevaade lineaarse regressiooni kohta.
> Selle õppekava jooksul eeldame vähest matemaatikateadmiste hulka ja püüame muuta selle teiste valdkondade üliõpilastele arusaadavaks, nii et jälgi märkusi, 🧮 selgitusi, diagramme ja teisi õppematerjale, mis hõlbustavad mõistmist.
> Kogu selle õppekava jooksul eeldame minimaalseid teadmisi matemaatikast ja püüame teha selle ligipääsetavaks teiste valdkondade tudengitele, seega pööra tähelepanu märkmetele, 🧮 kõrvalinfole, diagrammidele ja teistele õppimisvahenditele mõistmise hõlbustamiseks.
### Eelteadmised
Sul peaks nüüd olema tuttav kõrvitsaandmete struktuur, mida me uurime. Need on eelnevalt laetud ja puhastatud antud õppetüki _notebook.ipynb_ failis. Failis kuvatakse kõrvitsahind busheli kohta uues andmeraamis. Veendu, et suudad need märkmikud Visual Studio Code'is tuumades jooksutada.
Peaksid olema nüüd tuttav kõrvitsate andmete struktuuriga, mida me uurime. Selle leiad eellaadituna ja puhastatuna selle õppetüki _notebook.ipynb_ failist. Failis on kõrvitsahind kuvatud korvi kohta uues andmeraamis. Veendu, et suudaksid neid sülearvutieeskirju Visual Studio Code kernelites käivitada.
### Ettevalmistus
Meenutuseks: sa laadid neid andmeid, et esitada neile küsimusi.
Meenutuseks, laadid neid andmeid, et esitada neile küsimusi.
- Millal on parim aeg kõrvitsaid osta?
- Millist hinda võib oodata minikõrvitsate paki eest?
- Kas peaksin ostma neid poolbusheli korvides või 1 1/9 busheli karbis?
Jätkame andmete uurimist.
- Millist hinda võin oodata väikeste kõrvitsakastide eest?
- Kas peaksin ostma neid poolkorvi kaupa või 1 1/9-korviku hulka?
Jätkame selle andmestiku uurimist.
Eelmisel õppetunnil lõid Pandase andmeraami ja täitsid selle osa algsest andmestikust, standardiseerides hinnad busheli alusel. Selle tegemisega kogusid siiski ainult umbes 400 andmepunkti ja ainult sügisekuude kohta.
Eelmises õppetükis lõid Pandase andmeraami ja täitsid selle osa originaalandmestikust, standardiseerides hinnad korvi kohta. Sellega suutsid koguda umbes 400 andmepunkti ja ainult sügiskuude kohta.
Vaata andmeid, mida me eelnevalt laadsime selle õppetüki kaasasolevasse märkmikku. Andmed on eelnevalt laetud ja tehtud algne hajuvusdiagramm, mis näitab kuupõhiseid andmeid. Võib-olla saame andmete olemuse kohta veidi detailsemalt teada, tehes veel puhastust.
Vaata andmeid, mis on eellaaditud selle õppetüki kaasnevas sülearvutis. Andmed on eellaaditud ja esimene hajuvdiagramm joonistatud näitamaks kuuandmeid. Võime saada rohkem üksikasju andmete olemuse kohta, neid rohkem puhastades.
## Lineaarse regressioonijoon
## Lineaarne regressioonijoon
Nagu õppetükis 1 õppisid, on lineaarse regressiooni eesmärk joonistada joon, mis:
Nagu õppisid õppetükis 1, on lineaarse regressiooni eesmärk joonistada joon, mis:
- **Näitab muutujate seoseid**. Näitab seost muutujate vahel
- **Teeb ennustusi**. Teeb täpseid prognoose, kuhu uus andmepunkt joone suhtes langeb.
Tavaliselt joonistatakse sellist joont meetodi **Vähimate ruutude regressioon** abil. Mõiste "Vähimate ruutude" viitab meie mudeli koguviga minimeerimise protsessile. Iga andmepunkti puhul mõõdame vertikaalkauguse (nimetatakse jääkveaks) tegeliku punkti ja regressioonijoone vahel.
- **Näitab muutujate seoseid**. Näitab muutujate omavahelist seost
- **Teeb ennustusi**. Teeb täpseid ennustusi, kus uus andmepunkt joonel paikneb.
Me ruudutame need kaugused kahe peamise põhjuse tõttu:
Tavaline on kasutada **väikseimruutude regressiooni**, et seda tüüpi joon joonistada. Mõiste "väikseim ruut" viitab protsessile, mille käigus minimeeritakse kogu vea summa mudelis. Iga andmepunkti jaoks mõõdame vertikaalse kauguse (nn residuaal) tegeliku punkti ja meie regressioonijoone vahel.
1. **Suurema tähtsus kui suuna puhul:** Tahame, et -5 vea suurus oleks sama kui +5 viga. Ruudutamine teeb kõik väärtused positiivseks.
Me ruudutame need kaugused kahest põhjusest:
2. **Ebatavaliste väärtuste karistamine:** Ruudutamine annab suurematele vigadele suurema kaalu, sundides joont olema lähemal kaugel olevatele punktidele.
1. **Suurus, mitte suund:** Soovime käsitleda viga -5 samaväärsena veaga +5. Ruudutamine muudab kõik väärtused positiivseks.
Seejärel liidame need ruudutatud väärtused kokku. Meie eesmärk on leida see konkreetne joon, millel see summa on minimaalne (võimalikult väike väärtus) — seega nimi "Vähimate ruutude".
2. **Outlierite karistamine:** Ruudutamine annab suurematele vigadele suurema kaalu, sundides joont jääma kaugel olevate punktide lähedusse.
> **🧮 Näita mulle matemaatikat**
>
> Seda joont, mida nimetatakse _parima sobivusega joon_, saab väljendada [valemi abil](https://en.wikipedia.org/wiki/Simple_linear_regression):
Seejärel liidame kõik need ruudutatud väärtused kokku. Meie eesmärk on leida see konkreetne joon, kus see summa on minimaalne seega nimi "väikseim ruut".
> **🧮 Näita matemaatikat**
>
> Seda joont, mida nimetatakse _parima sobivuse jooneks_, saab väljendada [valemiga](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` on 'selgitav muutuja'. `Y` on 'sõltuv muutuja'. Joonte kalle on `b` ja `a` on y-lõikepunkt, mis tähistab `Y` väärtust, kui `X = 0`.
> `X` on "selgitav muutuja". `Y` on "sõltuv muutuja". Joonise tõus on `b` ja `a` on y-telgi lõikepunkt, mis tähendab väärtust `Y`, kui `X = 0`.
>
>![kallet arvutada](../../../../translated_images/et/slope.f3c9d5910ddbfcf9.webp)
>![tõusu arvutus](../../../../translated_images/et/slope.f3c9d5910ddbfcf9.webp)
>
> Esiteks arvuta kalle `b`. Infograafik autorilt [Jen Looper](https://twitter.com/jenlooper)
> Esiteks arvuta tõus `b`. Infograafik autorilt [Jen Looper](https://twitter.com/jenlooper)
>
> Teisisõnu, viidates meie kõrvitsaandmete algsele küsimusele: "prognoosi kõrvitsa hind busheli kohta kuu järgi", viitab `X` hinnale ja `Y` müügikuule.
> Teisisõnu ja viidates meie kõrvitsate andmete algsele küsimusele: "prognoosi kõrvitsa hind korvi kohta kuude kaupa", võib `X` tähistada hinda ja `Y` müügikuud.
>
>![valemi lõpetamine](../../../../translated_images/et/calculation.a209813050a1ddb1.webp)
>![täienda valemit](../../../../translated_images/et/calculation.a209813050a1ddb1.webp)
>
> Arvuta `Y` väärtus. Kui maksad umbes 4 dollarit, peab see olema aprill! Infograafik autorilt [Jen Looper](https://twitter.com/jenlooper)
> Arvuta Y väärtus. Kui maksad umbes 4 dollarit, peab olema aprill! Infograafik autorilt [Jen Looper](https://twitter.com/jenlooper)
>
> Matemaatika, mis arvutab joone, peab demonstreerima joone kalde, mis sõltub ka lõikepunktist, ehk kus `Y` asub, kui `X = 0`.
> Matemaatika, mis arvutab joone, peab näitama joone tõusu, mis sõltub ka lõikepunktist ehk kus `Y` paikneb kui `X = 0`.
>
> Saad vaadata nende väärtuste arvutusmeetodit veebisaidil [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Samuti külasta [kasutades vähimate ruutude kalkulaatorit](https://www.mathsisfun.com/data/least-squares-calculator.html), et näha, kuidas numbrite väärtused mõjutavad joont.
> Selle väärtuse arvutusmeetodi võid vaadata veebisaidil [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Samuti külasta [Väikseima ruudu kalkulaatorit](https://www.mathsisfun.com/data/least-squares-calculator.html), et näha, kuidas arvude väärtused joont mõjutavad.
## Korrelatsioon
Veel üks mõiste, mida mõista, on **Korrelatsioonikordaja** antud X ja Y muutujate vahel. Hajuvusdiagrammiga saab seda kordajat kiiresti visualiseerida. Kui andmepunktid paiknevad korrapärases reas, on kõrge korrelatsioon; kui punktid on hajutatud kõikjale X ja Y vahel, on korrelatsioon madal.
Veel üks mõiste, mida mõista, on **korrelatsioonikordaja** antud X ja Y muutujate vahel. Hajuvdiagrammi abil saad seda kiiresti visualiseerida. Diagramm, kus andmepunktid on ilusti joonel, näitab kõrget korrelatsiooni, aga hajuv diagramm, kus andmepunktid on kõikjal X ja Y vahel, näitab madalat korrelatsiooni.
Hea lineaarne regressioonimudel omab kõrget (lähemal 1-le kui 0-le) korrelatsioonikordajat, kasutades Vähimate ruutude regressiooni meetodit koos regressioonijoonega.
Hea lineaarne regressioonimudel on selline, millel on kõrge (lähemal 1 kui 0) korrelatsioonikordaja, kasutades väikseimruutude regressioonimeetodit koos regressioonijoonega.
✅ Käivita selle õppetüki märkmik ja vaata kuupõhist hinna hajuvusdiagrammi. Kas andmed, mis seovad kuupäeva ja kõrvitsate hinna, näivad omavat suurt või väikest korrelatsiooni vastavalt sinu visuaalsele tõlgendusele hajuvusdiagrammil? Kas see muutub, kui kasutad peenemat mõõdikut kui `Kuu`, nt *aasta päev* (st päevade arv aasta algusest)?
✅ Käivita selle õppetüki kaasas olev sülearvuti ja vaata kuhjumist kuu ja hinna vahel. Kas andmed, mis seovad kuu ja kõrvitsahinna müüki, tunduvad visuaalse hinnangu põhjal kõrge või madala korrelatsiooniga? Kas see muutub, kui kasutad üksikasjalikumat mõõdet kui `Month`, nt *aasta päeva* (st päevade arv aasta algusest)?
Järgmises koodis eeldame, et andmed on puhastatud ja meil on andmeraamistik nimega `new_pumpkins`, mis on sarnane järgmisele:
Alljärgnevas koodis eeldame, et oleme andmed puhastanud ja saame andmeraami nimega `new_pumpkins`, mis sarnaneb järgmisele:
ID | Kuu | AastaPäev | Tüüp | Linn | Pakk | Madal hind | Kõrge hind | Hind
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | KÕRVITSA TIPP | BALTIMORE | 1 1/9 busheli kastid | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | KÕRVITSA TIPP | BALTIMORE | 1 1/9 busheli kastid | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | KÕRVITSA TIPP | BALTIMORE | 1 1/9 busheli kastid | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | KÕRVITSA TIPP | BALTIMORE | 1 1/9 busheli kastid | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | KÕRVITSA TIPP | BALTIMORE | 1 1/9 busheli kastid | 15.0 | 15.0 | 13.636364
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> Andmete puhastamise kood on saadaval failis [`notebook.ipynb`](notebook.ipynb). Oleme teinud samad puhastamise sammud nagu eelnevas õppetükis ning arvutanud `AastaPäev` veeru järgmiselt:
> Andmete puhastamise kood on saadaval [`notebook.ipynb`](notebook.ipynb) failis. Oleme teinud samad puhastusetapid nagu eelnevas õppetükis ja arvutanud `DayOfYear` veeru järgmise avaldisega:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Nüüd, kui sul on arusaam lineaarse regressiooni matemaatikast, loome regressioonimudeli, et näha, kas võime ennustada, milline kõrvitsapakend annab parimad hinnad. Keegi, kes ostab kõrvitsaid püha-kõrvitsapeenrale, võib vajada seda infot, et osta parima hinnaga kõrvitsapakette.
Nüüd kui sul on arusaam lineaarse regressiooni matemaatikast, loome regressioonimudeli, et näha, kas suudame ennustada, millisel kõrvitsapakendil on parim hind. Keegi, kes ostab kõrvitsaid püha kõrvitsapeenra jaoks, võib seda infot vajada, et oma ostusid optimeerida.
## Korrelatsiooni otsimine
[![Masinõpe algajatele - korrelatsiooni otsimine: lineaarse regressiooni võti](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Masinõpe algajatele - korrelatsiooni otsimine: lineaarse regressiooni võti")
[![Masinõpe algajatele - korrelatsiooni otsimine: võti lineaarse regressiooni jaoks](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Masinõpe algajatele - korrelatsiooni otsimine: võti lineaarse regressiooni jaoks")
> 🎥 Klõpsa ülalolevale pildile, et vaadata lühikest ülevaadet korrelatsioonist.
> 🎥 Kliki pildil ülalpool, et vaadata lühike video ülevaade korrelatsioonist.
Eelmisest õppetükist oled ilmselt näinud, et kuu keskmine hind näeb välja selline:
Eelmises õppetükis nägid ilmselt, et keskmine hind kuude lõikes näeb välja selline:
<img alt="Keskmine hind kuu kaupa" src="../../../../translated_images/et/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="Keskmine hind kuude lõikes" src="../../../../translated_images/et/barchart.a833ea9194346d76.webp" width="50%"/>
See viitab võimalusele, et korrelatsioon võiks eksisteerida, ja võime proovida treenida lineaarset regressioonimudelit, mis ennustab seost `Kuu` ja `Hind` vahel või `AastaPäev` ja `Hind` vahel. Siin on hajuvusdiagramm, mis näitab viimast seost:
See viitab sellele, et peaks olema mingi korrelatsioon ja saame proovida koolitada lineaarse regressiooni mudelit, et prognoosida seost `Month` ja `Price` vahel või `DayOfYear` ja `Price` vahel. Järgnevalt on hajuvdiagramm, mis näitab viimast seost:
<img alt="Hajuvusdiagramm hinna ja aasta päeva vahel" src="../../../../translated_images/et/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Hajuvdiagramm: hind versus aasta päev" src="../../../../translated_images/et/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Vaatame, kas korrelatsiooni on, kasutades funktsiooni `corr`:
Vaatame, kas korrelatsioon olemas on, kasutades `corr` funktsiooni:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Tundub, et korrelatsioon on suhteliselt väike, -0.15 `Kuu` järgi ja -0.17 `AastaPäeva` järgi, kuid võib olla mõni teine tähtis seos. Näib, et hinnad jagunevad erinevatesse gruppidesse vastavalt kõrvitsatüübile. Selle kinnitamiseks joonistame iga kõrvitsaliigi erinevas värvitoonis. Andmepunktide samaaegseks joonistamiseks peame `scatter` joonistamismetoodil kasutama parameetrit `ax`:
Tundub, et korrelatsioon on üsna väike, -0.15 kuu järgi ja -0.17 kuupäeva järgi, aga võib olla teine oluline seos. Näib, et on erinevad hinnaklastrid eri kõrvitsatüüpide jaoks. Selle hüpoteesi kinnitamiseks joonistame iga kategooria erinevas värvis. Edastades `scatter` funktsioonile `ax` parameetri, saame joonistada kõik punktid samale graafikule:
```python
ax=None
@ -140,42 +140,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Hajuvusdiagramm hinna ja aasta päeva vahel värviliselt" src="../../../../translated_images/et/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Hajuvdiagramm: hind versus aasta päev värvilinea" src="../../../../translated_images/et/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Meie uurimine viitab, et liigiga on suurem mõju üldisele hinnale kui müügikuupäeval. Seda näeme ka tulpdiagrammilt:
Uuring viitab, et sort mõjutab hinda rohkem kui müügi kuupäev. Seda näeme ka tulpdiagrammil:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Tulpdiagramm hindade kohta liigiti" src="../../../../translated_images/et/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Tulpdiagramm hinna ja sorti kohta" src="../../../../translated_images/et/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Keskendume hetkel ainult ühele kõrvitsaliigile, 'pirukaliigile', ja vaatame, kuidas hind sõltub kuupäevast:
Jätkame esialgu ainult ühe kõrvitsatüübi, 'pie type', uurimisega ja vaatame, kuidas müügikuupäev hindadele mõjub:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Hajuvusdiagramm hinna ja aasta päeva vahel 'pirukaliigile'" src="../../../../translated_images/et/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Hajuvdiagramm hind versus aasta päev" src="../../../../translated_images/et/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Kui nüüd arvutada korrelatsioon `Price` ja `DayOfYear` vahel funktsiooniga `corr`, saame ligikaudu `-0.27` - mis tähendab, et prognoosimudeli koolitamine on mõistlik.
Kui nüüd arvutada korrelatsioon `Price` ja `DayOfYear` vahel `corr` funktsiooniga, saame midagi sellist nagu `-0.27` - mis tähendab, et prognoosimudeliga koolitamine on mõistlik.
> Enne lineaarse regressioonimudeli koolitamist on oluline veenduda, et andmed on puhtad. Lineaarne regressioon ei tööta hästi puuduvate väärtustega, seega on mõistlik tühjad lahtrid eemaldada:
> Enne lineaarse regressioonimudeli koolitamist on oluline veenduda, et andmed on puhastatud. Lineaarne regressioon ei tööta hästi puuduvate väärtustega, seega on mõistlik need tühjad lahtrid eemaldada:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Teine võimalus oleks need tühjad väärtused asendada vastava veeru keskmisega.
Teine lähenemine oleks need puuduolevad väärtused täita vastava veeru keskmiste väärtustega.
## Lihtne lineaarne regressioon
[![Masinõpe algajatele - lineaarne ja polünoomne regressioon Scikit-learniga](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "Masinõpe algajatele - lineaarne ja polünoomne regressioon Scikit-learniga")
> 🎥 Klõpsa ülalolevale pildile, et vaadata lühikest ülevaadet lineaarse ja polünoomse regressiooni kohta.
> 🎥 Kliki pildil ülalpool, et vaadata lühike video ülevaade lineaarse ja polünoomse regressiooni kohta.
Me koolitame oma lineaarse regressioonimudeli, kasutades **Scikit-learn'i** teeki.
Lineaarse regressioonimudeli koolitamiseks kasutame **Scikit-learn**i teeki.
```python
from sklearn.linear_model import LinearRegression
@ -183,69 +183,69 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Alustame sisendväärtuste (tunnuste) ja oodatud väljundi (sildi) eraldamisest eraldi numpy massiivideks:
Alustame sisendväärtuste (omaduste) ja ootuspärase väljundi (sildi) eraldamisest eraldi numpy massiividesse:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Märka, et pidime sisendandmeid töötlema `reshape` abil, et LinearRepression pakett saaks neid õigesti mõista. Lineaarne regressioon eeldab 2D massiivi sisendina, kus iga rea vastab sisendfunktsioonide vektorile. Meie puhul, kui meil on ainult üks sisend, vajame massiivi kuju N &times; 1, kus N on andmestiku suurus.
> Märka, et pidime kasutama `reshape` meetodit sisendandmetel, et Linear Regression pakett mõistaks seda õigesti. Lineaarne regressioon ootab 2-maatriksit sisendina, kus iga rida on vektor sisendomadustest. Kuna meil on ainult üks sisend, vajame N×1 kujuga massiivi, kus N on andmestiku suurus.
Seejärel peame andmed jagama koolitus- ja testandmeteks, et saaksime mudelit pärast koolitust valideerida:
Seejärel tuleb andmestik jagada treening- ja testandmestikeks, et saaksime mudelit pärast koolitamist valideerida:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Lõpuks võtab lineaarse regressioonimudeli koolitus vaid kaks koodirida. Defineerime `LinearRegression` objekti ja sobitame selle meie andmetega meetodiga `fit`:
Lõpuks võtab lineaarse regressioonimudeli treenimine vaid kaks koodirida. Määratleme `LinearRegression` objekti ning sobitame selle meie andmetega `fit` meetodi abil:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` objekt sisaldab pärast `fit`-imist regressiooni kõiki koefitsiente, millele pääseb ligi `.coef_` omaduse kaudu. Meie puhul on vaid üks koefitsient, mis peaks olema umbes `-0.017`. See tähendab, et hinnad paistavad aja jooksul veidi langemas, aga mitte liiga palju, umbes 2 senti päevas. Samuti saame regressiooni lõikepunkti Y-teljel kätte `lin_reg.intercept_` abil - see on meie puhul umbes `21`, mis näitab hinna väärtust aasta alguses.
`LinearRegression` objekt pärast `fit`-imist sisaldab regressiooni kõiki koefitsiente, millele saab ligi `.coef_` omaduse kaudu. Meie puhul on ainult üks koefitsient, mis peaks olema umbes `-0.017`. See tähendab, et hinnad näivad aja jooksul veidi langevat, kuid mitte väga palju, umbes 2 senti päevas. Meile on ka võimalik juurdepääs regressiooni lõikepunktile Y-teljel, kasutades `lin_reg.intercept_` - see on meie puhul umbes `21`, mis näitab hinna alguses aasta alguses.
Selleks, et näha, kui täpne meie mudel on, saame prognoosida hindu testandmestikul ja seejärel mõõta, kui lähedal on meie prognoosid oodatud väärtustele. Seda saab teha ruutkeskmise vea (MSE) mõõdikuga, mis on kõigi ruutude keskmine erinevus oodatud ja prognoositud väärtuste vahel.
Selleks, et näha, kui täpne meie mudel on, võime prognoosida hindu testiandmestikul ja siis mõõta, kui lähedal meie ennustused on oodatud väärtustele. Seda saab teha ruutkeskmise vea (RMSE) mõõdiku abil, mis on kõigi ruutude erinevuste keskmise ruutjuur oodatud ja ennustatud väärtuste vahel.
```python
pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
```
Meie viga paistab olevat umbes 2 punkti, mis on umbes 17%. Mitte kuigi hea. Teine mudeli kvaliteedi näitaja on **determinisatsioonikordaja**, mida saab saada järgmise koodiga:
Meie viga paistab olevat umbes 2 punkti, mis on ~17%. Mitte väga hea. Mudeli kvaliteedi teine näitaja on **määramise koefitsient**, mida saab saada järgmiselt:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Kui väärtus on 0, tähendab see, et mudel ei võta sisendandmeid arvesse ja toimib nagu *kõige halvem lineaarne prognoosija*, mis on lihtsalt tulemuse keskmine väärtus. Väärtus 1 tähendab, et suudame kõiki oodatud väljundeid täiuslikult prognoosida. Meie puhul on kordaja umbes 0.06, mis on üsna madal.
Kui väärtus on 0, tähendab see, et mudel ei arvesta sisendiandmeid ja käitub kui *kõige halvem lineaarne ennustaja*, mis on lihtsalt tulemuse keskmine väärtus. Väärtus 1 tähendab, et me suudame täiuslikult ennustada kõiki oodatud väljundeid. Meie puhul on koefitsient umbes 0.06, mis on üsna madal.
Testandmeid võime koos regressioonijoonisega joonistada, et paremini näha, kuidas regressioon meie puhul töötab:
Võime ka joonistada testandmed koos regressioonijoonega, et paremini näha, kuidas regressioon meie juhul töötab:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
<img alt="Lineaarne regressioon" src="../../../../translated_images/et/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Linear regression" src="../../../../translated_images/et/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Polünoomne regressioon
Teine lineaarse regressiooni tüüp on polünoomne regressioon. Kuigi mõnikord on muutujate vahel lineaarne seos - näiteks suurem kõrvits mahult tähendab kõrgemat hinda -, siis mõnikord neid seoseid ei saa joonistada tasandina ega sirgjoonena.
Teine lineaarse regressiooni tüüp on polünoomne regressioon. Kuigi mõnikord on muutujate vahel lineaarne seos - kui kõrvitsa maht suureneb, tõuseb hind - vahel ei saa neid seoseid joonistada tasapinnana või sirgjoonena.
✅ Siin on [veel mõned näited](https://online.stat.psu.edu/stat501/lesson/9/9.8) andmetest, mille puhul võiks kasutada polünoomset regressiooni
✅ Siin on [veel mõned näited](https://online.stat.psu.edu/stat501/lesson/9/9.8) andmetest, mille jaoks võiks sobida polünoomne regressioon
Võta veelkord pilk peale seosele kuupäeva ja hinna vahel. Kas see hajuvusdiagramm tundub kindlasti nii, et seda peaks tingimata analüüsima sirgjoonega? Kas hinnad ei kõigu? Sellisel juhul võid proovida polünoomset regressiooni.
Vaadake uuesti suhet kuupäeva ja hinna vahel. Kas see hajuvusdiagramm peaks tingimata olema analüüsitud sirgjoonena? Kas hinnad ei saa kõikuda? Sellisel juhul võite proovida polünoomset regressiooni.
✅ Polünoomid on matemaatilised avaldised, mis võivad koosneda ühest või mitmest muutujast ja koefitsiendist
Polünoomne regressioon loob kõverjoone, mis paremini sobib mittelineaarsete andmetega. Meie puhul, kui lisame sisendandmetesse ruutfunktsiooni `DayOfYear` muutujast, peaksime suutma sobitada andmeid paraboolkuvaga, millel on aasta jooksul mingi miinimumtipp.
Polünoomne regressioon loob kõverjoone, mis sobib paremini mitte-lineaarsete andmetega. Meie puhul, kui lisame sisendandmetesse ruudus oleva `DayOfYear` muutuja, peaksime suutma sobitada andmed paraboolkõveraga, millel on teatud aasta jooksul minimaalne punkt.
Scikit-learn sisaldab kasulikku [pipeline API-d](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), et kombineerida erinevad andmetöötluse sammud. **Pipelines** on **estimatsioonide** kett. Meie puhul loome väärtusahelas esimese sammuna polünoomsed tunnused ja seejärel treenime regressiooni:
Scikit-learn sisaldab kasulikku [torujuhtme (pipeline) API-t](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), et ühendada erinevad andmetöötlusetapid. **Torujuhtme** moodustab **estimatsioonide** ahel. Meie puhul loome torujuhtme, mis esmalt lisab polünoomsed tunnused mudelile ja siis treenib regressiooni:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -256,43 +256,43 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
`PolynomialFeatures(2)` kasutamine tähendab, et kaasame kõik teise astme polünoomid sisendandmetest. Meie puhul tähendab see ainult `DayOfYear`<sup>2</sup>, aga kui on kaks sisendmuutujat X ja Y, lisab see X<sup>2</sup>, XY ja Y<sup>2</sup>. Saame kasutada ka kõrgema astme polünoome, kui soovime.
`PolynomialFeatures(2)` kasutamine tähendab, et kaasame kõik teise astme polünoomid sisendandmetest. Meie puhul tähendab see vaid `DayOfYear`<sup>2</sup>, aga kahe sisendmuutuja X ja Y korral lisab see X<sup>2</sup>, XY ja Y<sup>2</sup>. Võime ka kasutada kõrgema astme polünoome, kui soovime.
Pipeline'idega saab tööd teha samamoodi nagu algse `LinearRegression` objektiga, s.t. saame `fit` väärtusahela ja seejärel `predict` meetodit kasutades saada prognoosid. Järgneval graafikul on testandmed ja ligikaudne kõver:
Torujuhtmeid võib kasutada samamoodi nagu algset `LinearRegression` objekti, st võime `fit` torujuhtme ja seejärel kasutada `predict`, et saada ennustustulemused. Siin on graafik, mis näitab testiandmeid ja ligikaudset kõverat:
<img alt="Polünoomne regressioon" src="../../../../translated_images/et/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomial regression" src="../../../../translated_images/et/poly-results.ee587348f0f1f60b.webp" width="50%" />
Polünoomse regressiooni kasutamisel saame kergelt madalama MSE ja kõrgema determinatsiooni, kuid mitte märkimisväärselt. Peame arvesse võtma ka teisi tunnuseid!
Polünoomse regressiooni kasutades saame veidi madalama MSE ja kõrgema määramise, kuid mitte oluliselt. Peame arvesse võtma ka muid tunnuseid!
> Näed, et kõrvitsate hinnad on minimaalsed kusagil õuduspeo (Halloween) ajal. Kuidas seda seletada?
> Näete, et madalaimad kõrvitsahinnad esinevad kuskil Halloweeni ajal. Kuidas seda seletate?
🎃 Palju õnne, sa just lõid mudeli, mis aitab prognoosida kookkõrvitsate hinda. Saame tõenäoliselt sama protseduuri korrata kõigi kõrvitsaliikide jaoks, aga see oleks tüütu. Õpime nüüd, kuidas mudelis arvestada kõrvitsa sorti!
🎃 Palju õnne, just lõite mudeli, mis aitab prognoosida pirukakõrvitsate hinda. Tõenäoliselt saate sama protseduuri korrata kõigi kõrvitsatüüpide puhul, kuid see oleks tüütu. Õpime nüüd, kuidas mudelis arvesse võtta kõrvitsatüüpi!
## Kategoorilised tunnused
Ideaalis tahame suuta prognoosida erinevate kõrvitsaliikide hindu sama mudeli abil. Kuid `Variety` (sort) veerg erineb sellistest veergudest nagu `Month` (kuu), sest see sisaldab mitte-arvulisi väärtusi. Selliseid veerge nimetatakse **kategoorilisteks**.
Ideaalis tahame suuta erinevate kõrvitsatüüpide hindu ennustada sama mudeli abil. Kuid `Variety` veerg on mõnevõrra erinev veergudest nagu `Month`, sest see sisaldab mittenumerilisi väärtusi. Selliseid veerge nimetatakse **kategoorilisteks**.
[![ML algajatele - kategooriliste tunnuste prognoosimine lineaarse regressiooniga](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML algajatele - kategooriliste tunnuste prognoosimine lineaarse regressiooniga")
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 Klõpsa ülaloleval pildil, et näha lühikest videot kategooriliste tunnuste kasutamisest.
> 🎥 Klõpsake ülaloleval pildil, et vaadata lühivideot kategooriliste tunnuste kasutamisest.
Siin näed, kuidas keskmine hind sõltub sordist:
Siin näete, kuidas keskmine hind sõltub sordist:
<img alt="Keskmine hind sortide kaupa" src="../../../../translated_images/et/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Average price by variety" src="../../../../translated_images/et/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Sordi arvesse võtmiseks peame esmalt selle numbriliseks muutma ehk **kodeerima**. Selleks on mitmeid võimalusi:
Sordi arvestamiseks peame esmalt selle teisendama numbriliseks, ehk **kodeerima**. Selleks on mitu võimalust:
* Lihtne **numbriline kodeerimine** loob nimekirja erinevatest sortidest ja asendab seejärel sordinime selle nimekirja indeksi vastu. See pole lineaarse regressiooni jaoks parim idee, sest lineaarne regressioon kasutab indeksi tegelikku numbrilist väärtust ja lisab seda tulemusele teatud koefitsiendiga. Meie puhul on seos indeksi numbri ja hinna vahel selgelt mittelineaarne, isegi kui indekseid järjestada kindlal viisil.
* **One-hot kodeerimine** asendab `Variety` veeru nelja eraldi veeruga, ühe iga sordi jaoks. Igas veerus on väärtuseks `1`, kui vastav rida on antud sorti, ja `0` muul juhul. See tähendab, et lineaarse regressiooni jaoks on neli koefitsienti, üks iga kõrvitsaliigi jaoks, mis vastutab antud sordi "algusehinna" (või pigem "täiendava hinna") eest.
* Lihtne **numbriline kodeerimine** loob tabeli erinevatest sortidest ja seejärel asendab sordinime indeksiga selles tabelis. See pole lineaarse regressiooni puhul parim mõte, sest lineaarne regressioon võtab indeksinumbri tegeliku numbrilise väärtuse ja lisab selle tulemile, korrutades selle mõne koefitsiendiga. Meie puhul on seos indeksinumbri ja hinna vahel selgelt mittelineaarne, isegi kui tagada indeksite spetsiifiline järjekord.
* **Ühe-kuuma kodeerimine (one-hot encoding)** asendab `Variety` veeru nelja erineva veeruga, iga kõrvitsasordi jaoks eraldi. Igas veerus on `1`, kui vastaval real on see sort, ja muidu `0`. See tähendab, et lineaarse regressiooni puhul on neli koefitsienti, üks iga kõrvitsatüübi kohta, mis vastutab selle sordi "algushinna" (või pigem "lisahinna") eest.
Alljärgnev kood näitab, kuidas sorti one-hot kodeerida:
Allolev kood näitab, kuidas sort ühekoodina kodeerida:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
ID | FAIRYTALE | MINIATURE | SEGASED PÄRANDLIIGID | KOOKKÕRVITS
----|-----------|-----------|---------------------|------------
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
@ -302,14 +302,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
Et kasutada lineaarset regressiooni one-hot kodeeritud sortide põhjal, peame lihtsalt õigesti algatama andmed `X` ja `y`:
Lineaarse regressiooni treenimiseks, kasutades ühe-kuuma kodeeritud sorti sisendina, peame lihtsalt õigesti initsialiseerima `X` ja `y` andmed:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
Ülejäänud kood on sama, mida kasutati eelnevalt lineaarse regressiooni treenimiseks. Kui proovida, näeme, et ruutkeskmine viga on umbes sama, kuid determinatsioonikordaja on palju kõrgem (~77%). Veelgi täpsemate prognooside saamiseks võime arvesse võtta rohkem kategoorilisi tunnuseid ning ka numbrilisi tunnuseid nagu `Month` või `DayOfYear`. Kõigi tunnuste ühtseks massiiviks saamiseks võime kasutada `join`:
Ülejäänud kood on sama, mida kasutasime ees lineaarse regressiooni treenimiseks. Kui proovite, näete, et ruutkeskmine viga on umbes sama, kuid saame palju kõrgema määramise koefitsiendi (~77%). Veelgi täpsemate ennustuste saamiseks võime lisada ka teisi kategoorilisi tunnuseid ja numbrilisi tunnuseid nagu `Month` või `DayOfYear`. Et saada üks suur tunnuste massiiv, võime kasutada `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -319,11 +319,11 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Siin võtame arvesse ka `City` ja `Package` tüüpi, mis annab meile MSE väärtuse 2.84 (10%) ja determinatsiooni 0.94!
Siin arvestame ka `City` ja `Package` tüüpi, mis annab meile MSE 2.84 (10%) ja määramise 0.94!
## Kõik kokku
## Kõige kokku panek
Parima mudeli koostamiseks võime kasutada ülaltoodud näite kombineeritud (one-hot kodeeritud kategoorilised + numbrilised) andmed koos polünoomse regressiooniga. Siin on mugavaks kasutamiseks täielik kood:
Parima mudeli tegemiseks võime kasutada kombineeritud (ühe-kuuma kodeeritud kategoorilised + numbrilised) andmeid eelmisest näitest koos polünoomse regressiooniga. Siin on mugavaks kasutamiseks kogu kood:
```python
# seadista treeningandmed
@ -333,17 +333,17 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# tee koolitus- ja testandmete jagamine
# tee treening- ja testandmete jagamine
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# seadista ja treeni andmetöötluskanal
# seadista ja treeni andmevoog
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# ennusta tulemused testandmete jaoks
pred = pipeline.predict(X_test)
# arvuta keskmine ruutviga ja määramisaste
# arvuta keskmine ruutviga ja määramise koefitsient
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
@ -351,36 +351,36 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
See peaks andma parima determinatsioonikordaja, mis on peaaegu 97%, ning MSE=2.23 (~8% ennustuse viga).
See peaks andma peaaegu 97% määramise koefitsiendi ja MSE=2.23 (~8% prognoosiviga).
| Mudel | MSE | Determinatsioon |
|-------|-----|-----------------|
| Mudel | MSE | Määramine |
|-------|-----|-----------|
| `DayOfYear` lineaarne | 2.77 (17.2%) | 0.07 |
| `DayOfYear` polünoomne | 2.73 (17.0%) | 0.08 |
| `Variety` lineaarne | 5.24 (19.7%) | 0.77 |
| Kõik tunnused lineaarne | 2.84 (10.5%) | 0.94 |
| Kõik tunnused polünoomne | 2.23 (8.25%) | 0.97 |
🏆 Väga hästi! Sa lõid nelja mudelit ühes õppetükis ja parandasid mudeli kvaliteedi 97% peale. Regressiooni viimases osas õpid logistilisest regressioonist, mida kasutatakse kategooriate määramiseks.
🏆 Väga tubli! Sa lõid ühe õppetunni jooksul neli regressioonimudelit ja parandasid mudeli kvaliteeti 97%-ni. Regressiooni lõpus peatükis õpid ka logistilise regressiooni kategooriate määramiseks.
---
## 🚀Väljakutse
Proovi selles märkmes mitu erinevat muutujat, et näha, kuidas korrelatsioon vastab mudeli täpsusele.
Testeeri selles märkmikus mitut erinevat muutujat ja vaata, kuidas korrelatsioon mõjutab mudeli täpsust.
## [Loengu järgse test](https://ff-quizzes.netlify.app/en/ml/)
## [Loengu järel test](https://ff-quizzes.netlify.app/en/ml/)
## Kordamine & iseseisev õppimine
## Ülevaade ja iseseisev õppimine
Selles õppetükis õppisime lineaarset regressiooni. On ka teisi olulisi regressioonitüüpe. Loe Stepwise-, Ridge-, Lasso- ja Elasticnet-meetodite kohta. Heaks õppeallikaks on [Stanfordi statistilise õppe kursus](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
Selles õppetükis õppisime lineaarse regressiooni kohta. On ka teisi olulisi regressiooniliike. Loe stepwise, ridge, lasso ja elasticnet tehnikate kohta. Hea kursus õppimiseks on [Stanfordi statistikõppe kursus](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
## Kodutöö
## Kodune ülesanne
[Ehita mudel](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vastutusest loobumine**:
See dokument on tõlgitud kasutades tehisintellekti tõlkimisteenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame tagada täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algset dokumenti selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlkega seotud arusaamatuste või valesti mõistmiste eest.
**Vastutusest loobumine**:
See dokument on tõlgitud kasutades AI tõlketeenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Kriitilise informatsiooni puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlkega seotud võimalike arusaamatuste või valesti tõlgenduste eest.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,17 +1,17 @@
# Köögi klassifikaatorid 1
# Köökide klassifikaatorid 1
Selles tunnis kasutad eelmises tunnis salvestatud andmestikku, mis sisaldab tasakaalustatud ja puhastatud andmeid erinevate köökide kohta.
Selles õppetükis kasutad andmekogumit, mille salvestasid eelmisest õppetükist, täis tasakaalustatud, puhast infot kõikide köökide kohta.
Seda andmestikku kasutatakse mitmesuguste klassifikaatoritega, et _ennustada rahvuslikku kööki, lähtudes koostisosade grupist_. Samal ajal õpid rohkem algoritmide kasutamise kohta klassifitseerimisülesannetes.
Sa kasutad seda andmekogumit mitmesuguste klassifikaatoritega, et _ennustada kindlat rahvuskööki koostisosade grupi põhjal_. Selle käigus õpid rohkem meetodite kohta, kuidas algoritme saab kasutada klassifitseerimisülesannetes.
## [Eelloengu viktoriin](https://ff-quizzes.netlify.app/en/ml/)
## [Loengu eelne viktoriin](https://ff-quizzes.netlify.app/en/ml/)
# Ettevalmistus
Eeldades, et oled lõpetanud [1. tunni](../1-Introduction/README.md), veendu, et _cleaned_cuisines.csv_ fail asub juurkataloogi `/data` kaustas, mis on mõeldud nende nelja tunni jaoks.
Eeldades, et oled lõpetanud [Õppetüki 1](../1-Introduction/README.md), veendu, et puhastatud fail _cleaned_cuisines.csv_ on olemas juurkaustas `/data` selleks neljaks õppetükiks.
## Harjutus - rahvusliku köögi ennustamine
## Harjutus - rahvusköögi ennustamine
1. Töötades selle tunni _notebook.ipynb_ kaustas, impordi fail koos Pandas teegiga:
1. Töötades selle õppetüki kaustas _notebook.ipynb_, impordi see fail koos Pandas teegiga:
```python
import pandas as pd
@ -21,16 +21,15 @@ Eeldades, et oled lõpetanud [1. tunni](../1-Introduction/README.md), veendu, et
Andmed näevad välja sellised:
| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
| 0 | 0 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| | Unnamed: 0 | köök | mandel | angelika | aniis | aniisi_seeme | õun | õunabrandy | aprikoos | armagnac | ... | viski | valge_leib | valge_vein | täistera_nisu_jahu | vein | puit | bataat | pärm | jogurt | suvikõrvits |
| --- | ---------- | ------ | ------ | -------- | ----- | ------------ | ----- | ------------ | -------- | -------- | --- | ------ | ---------- | ---------- | ------------------ | ---- | ---- | ------ | ----- | ------ | ----------- |
| 0 | 0 | india | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | india | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 2 | 2 | india | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 3 | 3 | india | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 4 | india | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1. Nüüd impordi veel mõned teegid:
1. Nüüd impordi veel mõningaid teeke:
```python
from sklearn.linear_model import LogisticRegression
@ -40,7 +39,7 @@ Eeldades, et oled lõpetanud [1. tunni](../1-Introduction/README.md), veendu, et
import numpy as np
```
1. Jaga X ja y koordinaadid kaheks andmeraamiks treenimiseks. `cuisine` võib olla siltide andmeraam:
1. Jaga X ja y koordinaadid kaheks DataFrameiks treenimiseks. `küök` võib olla sildi DataFrame:
```python
cuisines_label_df = cuisines_df['cuisine']
@ -58,92 +57,92 @@ Eeldades, et oled lõpetanud [1. tunni](../1-Introduction/README.md), veendu, et
Name: cuisine, dtype: object
```
1. Eemalda `Unnamed: 0` ja `cuisine` veerud, kasutades `drop()` funktsiooni. Salvesta ülejäänud andmed treenitavate omadustena:
1. Eemalda sarjad `Unnamed: 0` ja `küök` `drop()` abil. Salvestage ülejäänud andmed treenimiseks sobivate tunnustena:
```python
cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
cuisines_feature_df.head()
```
Sinu omadused näevad välja sellised:
Sinu tunnused näevad välja sellised:
| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| | mandel | angelika | aniis | aniisi_seeme | õun | õunabrandy | aprikoos | armagnac | artemisia | artišokk | ... | viski | valge_leib | valge_vein | täistera_nisu_jahu | vein | puit | bataat | pärm | jogurt | suvikõrvits |
| ---: | ------: | -------: | -----: | -----------: | ---: | ----------: | --------: | -------: | ---------: | ---------: | ---: | -----: | ---------: | ---------: | -----------------: | ----: | ----: | ------: | ----: | ------: | ----------: |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Nüüd oled valmis oma mudelit treenima!
## Klassifikaatori valimine
Nüüd, kui andmed on puhastatud ja treenimiseks valmis, pead otsustama, millist algoritmi kasutada.
Nüüd, kui sinu andmed on puhtad ja treenimiseks valmis, pead otsustama, millist algoritmi kasutada.
Scikit-learn liigitab klassifitseerimise juhendatud õppimise alla, ja selles kategoorias on palju erinevaid viise klassifitseerimiseks. [Valik](https://scikit-learn.org/stable/supervised_learning.html) võib esmapilgul tunduda üsna segadusttekitav. Järgnevad meetodid sisaldavad kõik klassifitseerimistehnikaid:
Scikit-learn ühendab klassifikatsioonid Juhendatud Õppimise alla ning selles kategoorias leiad palju võimalusi klassifikatsiooniks. [Valik](https://scikit-learn.org/stable/supervised_learning.html) on esmapilgul üsna segadusttekitav. Järgmised meetodid sisaldavad kõik klassifikatsioonitehnikaid:
- Lineaarsed mudelid
- Toetavate vektorite masinad
- Stohhastiline gradientide langus
- Lähimate naabrite meetod
- Tugivektormasinad
- Stohhastiline gradientlangus
- Lähimad naabrid
- Gaussi protsessid
- Otsustuspuud
- Ansamblimeetodid (hääletav klassifikaator)
- Mitmeklassi ja mitme väljundi algoritmid (mitmeklassi ja mitmesildi klassifikatsioon, mitmeklassi-mitmeväljundi klassifikatsioon)
- Ansamblimeetodid (hääletuskassifikaator)
- Multiklasse ja multiväljundiga algoritmid (multiklasse ja multilabel klassifikatsioon, multiklasse-multiväljundiga klassifikatsioon)
> Võid kasutada ka [närvivõrke andmete klassifitseerimiseks](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), kuid see jääb selle tunni teemast välja.
> Võid kasutada ka [neurvõrke andmete klassifitseerimiseks](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), kuid see jääb selle õppetüki teemast väljapoole.
### Millist klassifikaatorit valida?
### Millise klassifikaatori valida?
Millist klassifikaatorit valida? Sageli on hea katsetada mitmeid ja otsida parimat tulemust. Scikit-learn pakub [kõrvutavat võrdlust](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) loodud andmestikul, võrreldes KNeighbors, SVC kahte viisi, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB ja QuadraticDiscriminationAnalysis, näidates tulemusi visualiseeritult:
Millise klassifikaatori valida? Sageli testitakse ennast läbi erinevate variantide ja otsitakse head tulemust. Scikit-learn pakub [kõrvuti võrdlust](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) loodud andmestikul, võrdeldes KNeighbors, kahte SVC võimalust, GaussianProcessClassifierit, DecisionTreeClassifierit, RandomForestClassifierit, MLPClassifierit, AdaBoostClassifierit, GaussianNB ja QuadraticDiscrinationAnalysist ning kuvades tulemused visuaalselt:
![klassifikaatorite võrdlus](../../../../translated_images/et/comparison.edfab56193a85e7f.webp)
> Graafikud on genereeritud Scikit-learn'i dokumentatsioonis
> Graafikud on genereeritud Scikit-learn dokumentatsioonis
> AutoML lahendab selle probleemi elegantselt, tehes need võrdlused pilves ja võimaldades valida parima algoritmi sinu andmete jaoks. Proovi seda [siin](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML lahendab selle probleemi kenasti, käivitades need võrdlused pilves, võimaldades valida parima algoritmi oma andmete jaoks. Proovi seda [siin](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
### Parem lähenemine
Parem viis kui lihtsalt juhuslikult arvata, on järgida ideid selle allalaaditava [ML Cheat Sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) abil. Siin avastame, et meie mitmeklassi probleemi jaoks on mõned valikud:
Parem kui lihtsalt meelevaldselt arvata, on järgida mõtteid selle allalaaditava [ML petulehe](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) põhjal. Siin saame teada, et meie mitmeklassilise probleemi puhul on mitmeid valikuid:
![spikker mitmeklassi probleemide jaoks](../../../../translated_images/et/cheatsheet.07a475ea444d2223.webp)
> Microsofti algoritmi spikri osa, mis kirjeldab mitmeklassi klassifikatsiooni valikuid
![mitmeklassilise probleemi petuleht](../../../../translated_images/et/cheatsheet.07a475ea444d2223.webp)
> Microsofti algoritmipetulehe osa, mis kirjeldab mitmeklassilise klassifikatsiooni võimalusi
✅ Laadi see spikker alla, prindi see välja ja riputa seinale!
✅ Laadi see petuleht alla, prindi välja ja kleebi seinale!
### Põhjendamine
### Loogika
Vaatame, kas suudame erinevaid lähenemisi põhjendada, arvestades meie piiranguid:
Vaatame, kas suudame loogiliselt läbi mõelda erinevad lähenemised antud piirangute valguses:
- **Närvivõrgud on liiga rasked**. Arvestades meie puhast, kuid minimaalset andmestikku ja asjaolu, et treenime kohapeal märkmike kaudu, on närvivõrgud selle ülesande jaoks liiga rasked.
- **Kaheklassi klassifikaator ei sobi**. Me ei kasuta kaheklassi klassifikaatorit, seega välistame one-vs-all meetodi.
- **Otsustuspuu või logistiline regressioon võiks sobida**. Otsustuspuu võiks sobida, või logistiline regressioon mitmeklassi andmete jaoks.
- **Mitmeklassi tõhustatud otsustuspuud lahendavad teistsuguse probleemi**. Mitmeklassi tõhustatud otsustuspuu sobib kõige paremini mitteparametriliste ülesannete jaoks, näiteks ülesannete jaoks, mis on mõeldud järjestuste loomiseks, seega ei ole see meile kasulik.
- **Neurvõrgud on liiga mahukad**. Arvestades meie puhast, kuid minimaalseid andmeid ning asjaolu, et me treenime lokaalselt notebookide kaudu, on neurvõrgud selleks ülesandeks liiga rasked.
- **Ühe- või kahekordse klassifikaatori puudumine**. Me ei kasuta kaheklassi klassifikaatorit, seega välistatakse one-vs-all.
- **Otsustuspuu või logistiline regressioon võiks töötada**. Otsustuspuu võiks töötada või logistiline regressioon mitmeklassiliste andmete jaoks.
- **Mitmeklassilised tugevdussõelad lahendavad teistsuguse probleemi**. Mitmeklassiline tugevdusotsustuspuu sobib rohkem mitteparametrilisteks ülesanneteks, näiteks järjestuse loomiseks, seega see ei ole meile kasulik.
### Scikit-learn'i kasutamine
### Scikit-learn kasutamine
Kasutame Scikit-learn'i, et analüüsida oma andmeid. Siiski on palju viise, kuidas kasutada logistilist regressiooni Scikit-learn'is. Vaata [parameetreid, mida saab määrata](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Analüüsime andmeid Scikit-learniga. Siiski on logistilise regressiooni kasutamiseks Scikit-learnis palju viise. Vaata [parameetrite dokumentatsiooni](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Sisuliselt on kaks olulist parameetrit - `multi_class` ja `solver` -, mida peame määrama, kui palume Scikit-learn'il teha logistilist regressiooni. `multi_class` väärtus rakendab teatud käitumist. Solveri väärtus määrab, millist algoritmi kasutada. Mitte kõik solverid ei sobi kõigi `multi_class` väärtustega.
Põhimõtteliselt on kaks olulist parameetrit - `multi_class` ja `solver` -, mida pead määrama, kui palud Scikit-learnil logistilist regressiooni kasutada. `multi_class` määrab teatud käitumise, `solver` määrab algoritmi. Kõik lahendajad ei sobi kõigi `multi_class` väärtustega.
Dokumentatsiooni järgi mitmeklassi puhul treeningalgoritm:
Dokumentatsiooni järgi, mitmeklassilises juhul kasutab treening:
- **Kasutab one-vs-rest (OvR) skeemi**, kui `multi_class` valik on määratud `ovr`
- **Kasutab ristentropia kaotust**, kui `multi_class` valik on määratud `multinomial`. (Praegu toetavad `multinomial` valikut ainult solverid lbfgs, sag, saga ja newton-cg.)
- **one-vs-rest (OvR) skeemi**, kui `multi_class` on `ovr`
- **ristentropia kaotust**, kui `multi_class` on `multinomial`. (Praegu toetavad `multinomial` võimalust ainult lbfgs, sag, saga ja newton-cg lahendajad.)"
> 🎓 'Skeem' võib olla kas 'ovr' (one-vs-rest) või 'multinomial'. Kuna logistiline regressioon on tegelikult mõeldud binaarse klassifikatsiooni toetamiseks, võimaldavad need skeemid paremini käsitleda mitmeklassi klassifikatsiooni ülesandeid. [allikas](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 "Skeem" võib olla 'ovr' (üks-võrdne-kõigiga) või 'multinomial'. Kuna logistiline regressioon on mõeldud peamiselt binaarklassifikatsiooniks, võimaldavad need skeemid paremini käsitleda mitmeklassilisi klassifikatsioone. [allikas](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'Solver' on defineeritud kui "algoritm, mida kasutatakse optimeerimisprobleemi lahendamiseks". [allikas](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 'Solver' on määratletud kui "optimeerimisprobleemis kasutatav algoritm". [allikas](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Scikit-learn pakub seda tabelit, et selgitada, kuidas solverid käsitlevad erinevaid väljakutseid, mida esitavad erinevat tüüpi andmestruktuurid:
Scikit-learn pakub selle tabeli, mis selgitab, kuidas erinevad lahendajad käitlevad erinevat tüüpi andmete omadusi:
![solverid](../../../../translated_images/et/solvers.5fc648618529e627.webp)
![lahendajad](../../../../translated_images/et/solvers.5fc648618529e627.webp)
## Harjutus - andmete jagamine
Keskendume logistilisele regressioonile meie esimese treeningkatse jaoks, kuna sa õppisid seda hiljuti eelmises tunnis.
Jaga oma andmed treening- ja testimisgruppideks, kutsudes `train_test_split()`:
Võime keskenduda logistilisele regressioonile oma esimeses treeningukatsetuses, sest sa just õppisid seda eelnevas õppetükis.
Jaga andmed treening- ja testkomplektideks, kasutades `train_test_split()`:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
@ -151,9 +150,9 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
## Harjutus - logistilise regressiooni rakendamine
Kuna kasutad mitmeklassi juhtumit, pead valima, millist _skeemi_ kasutada ja millist _solverit_ määrata. Kasuta LogisticRegression'i mitmeklassi seadistusega ja **liblinear** solverit treenimiseks.
Kuna kasutad mitmeklassilist juhtumit, pead valima, millist _skeemi_ kasutada ja millise _lahendaja_ seada. Kasuta LogisticRegressioni mitmeklassilise seade ja lahendajaga **liblinear** treenimiseks.
1. Loo logistiline regressioon, kus multi_class on määratud `ovr` ja solver määratud `liblinear`:
1. Loo logistiline regressioon seadistusega multi_class = `ovr` ja lahendajaga `liblinear`:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
@ -163,29 +162,28 @@ Kuna kasutad mitmeklassi juhtumit, pead valima, millist _skeemi_ kasutada ja mil
print ("Accuracy is {}".format(accuracy))
```
✅ Proovi teist solverit, näiteks `lbfgs`, mis on sageli määratud vaikimisi.
✅ Proovi ka teist lahendajat nagu `lbfgs`, mis on sageli vaikimisi seatud
> Märkus: kasuta Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) funktsiooni, et vajadusel oma andmeid tasandada.
> Märkus, kasuta Pandas `ravel` funktsiooni andmete tasandamiseks, kui vaja.
Täpsus on hea, üle **80%**!
1. Näed seda mudelit tegevuses, testides ühte andmerida (#50):
1. Sa saad seda mudelit toimimas näha, testides ühe rea (#50) andmeid:
```python
print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
print(f'cuisine: {y_test.iloc[50]}')
```
Tulemus trükitakse:
Tulemus trükitakse välja:
```output
ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
cuisine: indian
```
✅ Proovi teist rea numbrit ja kontrolli tulemusi
1. Süvenedes, saad kontrollida selle ennustuse täpsust:
✅ Proovi teist rea numbrit ja vaata tulemusi
1. Süvenedes võite kontrollida selle prognoosi täpsust:
```python
test= X_test.iloc[50].values.reshape(-1, 1).T
@ -197,7 +195,7 @@ Kuna kasutad mitmeklassi juhtumit, pead valima, millist _skeemi_ kasutada ja mil
topPrediction.head()
```
Tulemus trükitakse välja - India köök on parim oletus, üsna suure tõenäosusega:
Tulemused prinditakse välja - India köök on selle parim aimdus, hea tõenäosusega:
| | 0 |
| -------: | -------: |
@ -207,40 +205,42 @@ Kuna kasutad mitmeklassi juhtumit, pead valima, millist _skeemi_ kasutada ja mil
| korean | 0.017277 |
| thai | 0.007634 |
✅ Kas oskad selgitada, miks mudel on üsna kindel, et tegemist on India köögiga?
✅ Kas saate seletada, miks mudel on üsna kindel, et tegemist on India köögiga?
1. Saad rohkem detaile, trükkides välja klassifikatsiooni aruande, nagu tegid regressiooni tundides:
1. Saage täpsemat teavet, trükkides välja klassifikatsiooniraporti, nagu tegite regressioonitundides:
```python
y_pred = model.predict(X_test)
print(classification_report(y_test,y_pred))
```
| | täpsus | tagasikutsumine | f1-skoor | tugi |
| ------------ | -------- | --------------- | -------- | -------- |
| chinese | 0.73 | 0.71 | 0.72 | 229 |
| indian | 0.91 | 0.93 | 0.92 | 254 |
| japanese | 0.70 | 0.75 | 0.72 | 220 |
| korean | 0.86 | 0.76 | 0.81 | 242 |
| thai | 0.79 | 0.85 | 0.82 | 254 |
| täpsus | 0.80 | 1199 | | |
| makro keskm. | 0.80 | 0.80 | 0.80 | 1199 |
| kaalutud keskm.| 0.80 | 0.80 | 0.80 | 1199 |
| | precision | recall | f1-score | support |
| ------------ | --------- | ------ | -------- | ------- |
| chinese | 0.73 | 0.71 | 0.72 | 229 |
| indian | 0.91 | 0.93 | 0.92 | 254 |
| japanese | 0.70 | 0.75 | 0.72 | 220 |
| korean | 0.86 | 0.76 | 0.81 | 242 |
| thai | 0.79 | 0.85 | 0.82 | 254 |
| accuracy | | | 0.80 | 1199 |
| macro avg | 0.80 | 0.80 | 0.80 | 1199 |
| weighted avg | 0.80 | 0.80 | 0.80 | 1199 |
## 🚀Väljakutse
Selles tunnis kasutasid puhastatud andmeid, et luua masinõppe mudel, mis suudab ennustada rahvuskööki koostisosade põhjal. Võta aega, et tutvuda Scikit-learn'i paljude võimalustega andmete klassifitseerimiseks. Süvene 'lahendaja' (solver) kontseptsiooni, et mõista, mis toimub kulisside taga.
Selles õppetükis kasutasite oma puhastatud andmeid masinaõppemudeli loomiseks, mis suudab prognoosida riiklikku kööki koostisosade põhjal. Võtke aega, et lugeda läbi Scikit-learni pakutavad arvukad võimalused andmete klassifitseerimiseks. Süvenege rohkem 'lahendaja' (solver) mõistetesse, et mõista, mis toimub kaadri taga.
## [Loengu järgne viktoriin](https://ff-quizzes.netlify.app/en/ml/)
## [Loengu järel võistlus](https://ff-quizzes.netlify.app/en/ml/)
## Ülevaade ja iseseisev õppimine
## Kordamine & Iseteadmine
Süvene veidi rohkem logistilise regressiooni matemaatikasse [selles tunnis](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Ülesanne
Süvenege natuke rohkem logistilise regressiooni matemaatikasse [selles õppetükis](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Kodutöö
[Uuri lahendajaid](assignment.md)
[Õppige lahendajaid](assignment.md)
---
**Lahtiütlus**:
See dokument on tõlgitud AI tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame tagada täpsust, palume arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle algses keeles tuleks pidada autoriteetseks allikaks. Olulise teabe puhul soovitame kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti tõlgenduste eest.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vastutusest loobumine**:
See dokument on tõlgitud kasutades tehisintellekti tõlkimisteenust [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame tagada täpsust, palun pidage meeles, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument oma algkeeles tuleks pidada autoriteetseks allikaks. Kriitilise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei võta vastutust selle tõlke kasutamisest tingitud arusaamatuste ega valesti mõistmiste eest.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -10,14 +10,14 @@
### 🌐 Mitmekeelne tugi
#### Toetatuna GitHub Actioni kaudu (automatiseeritud ja alati ajakohane)
#### Toetatud GitHub Actioni kaudu (automaatne ja alati värske)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](./README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
[araabia](../ar/README.md) | [bengali](../bn/README.md) | [bulgaaria](../bg/README.md) | [burma (Myanmar)](../my/README.md) | [hiina (lihtsustatud)](../zh-CN/README.md) | [hiina (traditsiooniline, Hongkong)](../zh-HK/README.md) | [hiina (traditsiooniline, Macau)](../zh-MO/README.md) | [hiina (traditsiooniline, Taiwan)](../zh-TW/README.md) | [horvaadi](../hr/README.md) | [tšehhi](../cs/README.md) | [taani](../da/README.md) | [hollandi](../nl/README.md) | [eesti](./README.md) | [soome](../fi/README.md) | [prantsuse](../fr/README.md) | [saksa](../de/README.md) | [kreeka](../el/README.md) | [heebrea](../he/README.md) | [hindi](../hi/README.md) | [ungari](../hu/README.md) | [indoneesia](../id/README.md) | [itaalia](../it/README.md) | [jaapani](../ja/README.md) | [kannada](../kn/README.md) | [khmeeri](../km/README.md) | [korea](../ko/README.md) | [leedu](../lt/README.md) | [malai](../ms/README.md) | [malayalam](../ml/README.md) | [marathi](../mr/README.md) | [nepali](../ne/README.md) | [nigeeria pidžin](../pcm/README.md) | [norra](../no/README.md) | [pärsia (farsi)](../fa/README.md) | [poola](../pl/README.md) | [portugali (Brasiilia)](../pt-BR/README.md) | [portugali (Portugal)](../pt-PT/README.md) | [pandžabi (Gurmukhi)](../pa/README.md) | [rumeenia](../ro/README.md) | [vene](../ru/README.md) | [serbia (kirilitsa)](../sr/README.md) | [slovaki](../sk/README.md) | [sloveeni](../sl/README.md) | [hispaania](../es/README.md) | [suahiili](../sw/README.md) | [rootsi](../sv/README.md) | [tagalogi (filipiino)](../tl/README.md) | [tamiili](../ta/README.md) | [telugu](../te/README.md) | [tai](../th/README.md) | [türgi](../tr/README.md) | [ukraina](../uk/README.md) | [urdu](../ur/README.md) | [vietnami](../vi/README.md)
> **Eelistate kloonida lokaalselt?**
> **Eelistad kloonida lokaalselt?**
>
> Käesolevas hoidlas on üle 50 keele tõlked, mis suurendavad oluliselt allalaadimise mahtu. Tõlketeta kloonimiseks kasutage altvalikut (sparse checkout):
> See hoidla sisaldab 50+ keele tõlkeid, mis suurendavad märgatavalt allalaadimise mahtu. Tõlgeteta kloonimiseks kasuta sparsi checkouti:
>
> **Bash / macOS / Linux:**
> ```bash
@ -33,164 +33,163 @@
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> See annab teile kõik vajaliku kursuse läbimiseks palju kiirema allalaadimisega.
> See annab sulle kõik vajaliku kursuse läbimiseks palju kiirema allalaadimisega.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Liitu meie kogukonnaga
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Meil on käimas Discordi õppesari tehisintellekti teemadel, lisateabe ja liitumise leiad aadressilt [Learn with AI Series](https://aka.ms/learnwithai/discord) perioodil 18.30. september 2025. Saad nõuandeid ja nippe GitHub Copiloti kasutamiseks andmeteaduses.
Meil toimub Discordis AI-ga õppimise seeria, leia lisainfot ja liitu meiega aadressil [Learn with AI Series](https://aka.ms/learnwithai/discord) ajavahemikus 18. 30. september 2025. Saad näpunäiteid ja trikke GitHub Copilot'i kasutamiseks andmeteaduses.
![Learn with AI series](../../translated_images/et/3.9b58fd8d6c373c20.webp)
![Õpi AI-ga seeria](../../translated_images/et/3.9b58fd8d6c373c20.webp)
# Masinõpe algajatele õppekava
> 🌍 Rändame ümber maailma, uurides masinõpet maailma kultuuride kaudu 🌍
> 🌍 Rända kogu maailma ringi, uurides masinõpet läbi erinevate maailmakultuuride 🌍
Microsofti Cloud Advocates on meeldiv pakkuda 12-nädalast, 26-õppetunnist koosnevat õppekava, mis käsitleb põhjalikult **masinõpet**. Selles õppekavas õpid nn **klassikalist masinõpet**, kasutades peamiselt Scikit-learn raamatukogu ja vältides süvaõpet, mida käsitletakse meie [AI algajatele õppekava](https://aka.ms/ai4beginners) raames. Ühenda need õppetunnid koos meie ['Andmeteaduse algajatele' õppekavaga](https://aka.ms/ds4beginners)!
Microsofti pilveesindajad pakuvad 12-nädalast, 26-õppetunnist koosnevat õppekava, mis räägib kõik masinõppest. Selles õppekavas õpid nn klassikalisest masinõppest, kasutades peamiselt Scikit-learn teeki ja vältides süvaõpet, mida käsitletakse meie [AI algajatele õppekavas](https://aka.ms/ai4beginners). Ühenda need õppetunnid ka meie ['Andmeteaduse algajatele' õppekavaga](https://aka.ms/ds4beginners)!
Rända meiega ümber maailma, rakendades neid klassikalisi tehnikaid andmetele paljudelt maailma aladelt. Iga õppetunni juurde kuuluvad eel- ja järeltestid, kirjalikud juhised ülesande täitmiseks, lahendus, kodutöö ja muud. Meie projektipõhine pedagoogika võimaldab õppida praktiliselt, mis on tõestatud viis uute oskuste kinnistumiseks.
Rända koos meiega üle maailma, rakendades neid klassikalisi meetodeid eri piirkondadest pärit andmetele. Iga õppetund sisaldab enne ja pärast õppetundi teste, kirjalikke juhiseid, lahendusi, ülesandeid ja muud. Meie projektipõhine õpetus võimaldab õppida ehitamise kaudu, mis on tõestatud efektne viis uute oskuste kinnistamiseks.
**✍️ Südamlik tänu autoritele** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ja Amy Boyd
**✍️ Südamlik tänu meie autoritele** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ja Amy Boyd
**🎨 Tänu ka illustratsioonide tegijatele** Tomomi Imura, Dasani Madipalli ja Jen Looper
**🎨 Tänud ka meie illustraatoritele** Tomomi Imura, Dasani Madipalli ja Jen Looper
**🙏 Eritänu meie Microsofti tudengisaadikute autoritele, arvustajatele ja sisuloojatele**, eriti Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ja Snigdha Agarwal
**🙏 Eriline tänu 🙏 Microsofti tudengisaadikutele autoritele, ülevaatajatele ja sisuloojatele**, eriti Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ja Snigdha Agarwal
**🤩 Täiendav tänu Microsofti tudengisaadikutele Eric Wanjau, Jasleen Sondhi ja Vidushi Gupta meie R-õppetundide eest!**
**🤩 Lisatänu Microsofti tudengisaadikutele Eric Wanjau, Jasleen Sondhi ja Vidushi Gupta meie R õppetundide eest!**
# Alustamine
Järgne neid samme:
1. **Harusta hoidla:** Klõpsa selle lehe paremas ülanurgas nuppu "Fork".
2. **Klooni hoidla:** `git clone https://github.com/microsoft/ML-For-Beginners.git`
Järgi neid samme:
1. **Tee hoidlast oma haru (fork)**: Klõpsa selle lehe paremas ülanurgas oleval "Fork" nupul.
2. **Klooni hoidla**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [leiad kõik selle kursuse lisamaterjalid meie Microsoft Learn kogust](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [Leia kõik selle kursuse täiendavad ressursid meie Microsoft Learn kogumikus](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Vajate abi?** Vaadake meie [Probleemide lahendamise juhendit](TROUBLESHOOTING.md), mis aitab paigaldamise, seadistamise ja õppetundide läbiviimisega seotud tavaküsimustes.
> 🔧 **Vajad abi?** Vaata meie [tõrkeotsingu juhendit](TROUBLESHOOTING.md) levinumate probleemide kohta installimise, seadistuse ja õppetundide käivitamisega.
**Õpilased**, selle õppekava kasutamiseks tee kogu hoidlast fork oma GitHubi kontole ja tee harjutused ise või grupis:
**[Õpilased](https://aka.ms/student-page)**, selle õppekava kasutamiseks palume kopeerida kogu hoidla oma GitHubi kontole ja lahendada harjutused individuaalselt või grupiga:
- Alustage eel-loengu testiga.
- Loe loeng läbi ja täida harjutused, tehke paus ning mõtisklege iga teadmistekontrolli juures.
- Püüa projektid luua, mõistes õppetunde, mitte lihtsalt lahenduskoodi jooksutades; lahenduskood on siiski saadaval mõlemas vastavas `/solution` kaustas projektipõhistes õppetundides.
- Tee järel-loengu test.
- Alusta sissejuhatava eelhindamise testiga.
- Loe õppetund läbi ja täida ülesanded, peatudes ja mõeldes igal teadmistestil.
- Püüa projektid luua õppeülesandeid mõistes, mitte ainult lahenduse koodi jooksutades; see kood on olemas iga projektipõhise õppetunni `/solution` kaustas.
- Tee järelhindamise test.
- Tee väljakutse.
- Täida kodutöö.
- Pärast õppegrupi lõpetamist külasta [Arutelufoorumit](https://github.com/microsoft/ML-For-Beginners/discussions) ja "õpi valjult" vastava PAT hindamislehekülje täitmisega. PAT (Progress Assessment Tool) on hinnangutabel, mida täites edendad oma õppimist. Samuti saad teiste PAT-e kommenteerida, et üheskoos õppida.
- Peale õppetundide rühma lõpetamist külasta [arutelufoorumit](https://github.com/microsoft/ML-For-Beginners/discussions) ja "õpi valjusti" sobiva PAT-võtme abil. PAT on edenemise hindamise tööriist, mille abil saad oma õppimist edasi arendada. Samuti saad reageerida teiste PAT-idele, et koos õppida.
> Täiendavaks õppimiseks soovitame neid [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) mooduleid ja õpperadasid.
> Edasisteks õpinguteks soovitame järgida neid [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) mooduleid ja õpperadasid.
**Õpetajad**, oleme lisanud [soovitusi](for-teachers.md) selle õppekava kasutamiseks.
**Õpetajad**, oleme lisanud [mõned soovitused](for-teachers.md) õppekava kasutamiseks.
---
## Videojuhendid
## Video juhendid
Mõned õppetunnid on saadaval lühivideotena. Need leiad kõik õppetundide seest või Microsofti arendajate YouTubei kanali [ML for Beginners playlistist](https://aka.ms/ml-beginners-videos) pildi pealt klõpsates.
Mõned õppetunnid on saadaval lühivideotena. Leidke need kõigist õppetundidest või Microsoft Developer'i YouTube'i kanali [ML algajate esitusloendist](https://aka.ms/ml-beginners-videos) klõpsates allolevale pildile.
[![ML for beginners banner](../../translated_images/et/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
[![ML algajatele bänner](../../translated_images/et/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## Tutvu meeskonnaga
## Meeskonnaga kohtumine
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif autor:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**GIF autor** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Klõpsa ülalolevat pilti, et vaadata videot projektist ja selle loojatest!
> 🎥 Vajuta ülalolevale pildile, et vaadata videot projektist ja inimestest, kes selle lõid!
---
## Pedagoogika
Selle õppekava loomisel oleme valinud kaks pedagoogilist põhimõtet: tagada praktiline, **projektipõhine** õppimine ja kaasata **sagedased testid**. Lisaks on õppekaval ühine **teema**, mis annab terviklikkuse.
Tagades sisule vastavuse projektidele, muutub protsess õppijate jaoks kaasahaaravamaks ja kontseptsioonide meeldejätmine paraneb. Madala panusega test enne tundi seab õppija jaoks õppimiseesmärgi, teine test pärast tundi kindlustab materjali parema kinnistumise. See õppekava on paindlik ja lõbus ning seda saab võtta nii tervikuna kui ka osadena. Projektid algavad lihtsatest ja muutuvad 12-nädalase tsükli lõpuks üha keerukamaks. Õppekava lõpus on ka lisateave masinõppe reaalse maailma rakenduste kohta, mida saab kasutada lisatööna või arutelude alustamiseks.
> Leia meie [käitumisjuhend](CODE_OF_CONDUCT.md), [panustamise juhised](CONTRIBUTING.md), [tõlketöö juhendid](..) ja [probleemide lahendamise materjalid](TROUBLESHOOTING.md). Ootame konstruktiivset tagasisidet!
## Iga õppetund sisaldab
- vabatahtlikku visandit
- vabatahtlikku lisavideot
- videojuhendit (ainult osa õppetundidest)
- [eel-loengu soojendustesti](https://ff-quizzes.netlify.app/en/ml/)
- kirjalikku õppetundi
- projektipõhistes õppetundides samm-sammult juhiseid projekti koostamiseks
- teadmistekontrolle
- väljakutset
- lisalugemist
- kodutööd
- [järel-loengu testi](https://ff-quizzes.netlify.app/en/ml/)
> **Märkus keeltest**: Need õppetunnid on peamiselt kirjutatud Pythonis, kuid paljud on saadaval ka R-is. R-õppetunni lõpetamiseks minge `/solution` kausta ja otsige R-õppetunde. Nende failinime laiend on .rmd, mis tähistab **R Markdowni** faili, mida võib lihtsalt määratleda kui `koodiplokkide` (R või teiste keelte) ja `YAML päise` (mis juhendab, kuidas vormindada väljundit nagu PDF) manustamist `Markdown dokumendis`. Sellisena toimib see näidismodellina andmeteaduse jaoks, kuna võimaldab teil kombineerida oma koodi, selle väljundi ja oma mõtted, lubades teil neid Markdownis kirja panna. Veelgi enam, R Markdowni dokumente saab renderdada väljundvormingutes nagu PDF, HTML või Word.
> **Märkus viktoriinide kohta**: Kõik viktoriinid asuvad [Quiz App kaustas](../../quiz-app), kokku 52 viktoriini, igaühes kolm küsimust. Nendele on viidatud õppetundides, kuid viktoriinirakendust saab käivitada ka lokaalselt; järgige juhiseid `quiz-app` kaustas lokaalseks majutamiseks või Azurei kasutuselevõtuks.
| Õppetunni number | Teema | Õppetunni rühm | Õpitulemused | Seotud õppetund | Autor |
| :---------------: | :------------------------------------------------------------: | :-------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |
| 01 | Sissejuhatus masinõppesse | [Sissejuhatus](1-Introduction/README.md) | Õppige masinõppe põhikontseptsioone | [Õppetund](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Masinõppe ajalugu | [Sissejuhatus](1-Introduction/README.md) | Õppige selle valdkonna ajalugu | [Õppetund](1-Introduction/2-history-of-ML/README.md) | Jen ja Amy |
| 03 | Õiglus ja masinõpe | [Sissejuhatus](1-Introduction/README.md) | Millised on õiglust puudutavad olulised filosoofilised küsimused, mida õpilased peaksid arvestama masinõppemudelite loomisel ja rakendamisel? | [Õppetund](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Masinõppe tehnikad | [Sissejuhatus](1-Introduction/README.md) | Milliseid tehnikaid kasutavad masinõppe uurijad masinõppemudelite ehitamiseks? | [Õppetund](1-Introduction/4-techniques-of-ML/README.md) | Chris ja Jen |
| 05 | Sissejuhatus regressiooni | [Regressioon](2-Regression/README.md) | Alustage Pythoni ja Scikit-learniga regressioonimudelite jaoks | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Põhja-Ameerika kõrvitsahinnad 🎃 | [Regressioon](2-Regression/README.md) | Andmete visualiseerimine ja puhastamine masinõppeks valmistumiseks | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Põhja-Ameerika kõrvitsahinnad 🎃 | [Regressioon](2-Regression/README.md) | Looge lineaarsed ja polünoomsed regressioonimudelid | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ja Dmitry • Eric Wanjau |
| 08 | Põhja-Ameerika kõrvitsahinnad 🎃 | [Regressioon](2-Regression/README.md) | Looge logistilise regressiooni mudel | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Veebirakendus 🔌 | [Veebirakendus](3-Web-App/README.md) | Looge veebirakendus koolitatud mudeli kasutamiseks | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Sissejuhatus klassifitseerimisse | [Klassifitseerimine](4-Classification/README.md) | Puhastage, valmistage ette ja visualiseerige oma andmeid; sissejuhatus klassifitseerimisse | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ja Cassie • Eric Wanjau |
| 11 | Maitsvad Aasia ja India köögid 🍜 | [Klassifitseerimine](4-Classification/README.md) | Sissejuhatus klassifikaatoritesse | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ja Cassie • Eric Wanjau |
| 12 | Maitsvad Aasia ja India köögid 🍜 | [Klassifitseerimine](4-Classification/README.md) | Rohkem klassifikaatoreid | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ja Cassie • Eric Wanjau |
| 13 | Maitsvad Aasia ja India köögid 🍜 | [Klassifitseerimine](4-Classification/README.md) | Ehitage oma mudelit kasutav soovitusrakendus | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Sissejuhatus klasterdamisse | [Klasterdamine](5-Clustering/README.md) | Puhastage, valmistage ette ja visualiseerige andmeid; sissejuhatus klasterdamisse | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Uuringus Nigeriast pärit muusikamaitse 🎧 | [Klasterdamine](5-Clustering/README.md) | Uurige K-Means klasterdamismeetodit | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Sissejuhatus loomuliku keele töötlemisse ☕️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Õppige NLP aluseid, luues lihtsa boti | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Levinumad NLP ülesanded ☕️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Süvendage NLP teadmisi, mõistes keelestruktuuridega tegelemisel vajalikke tavapäraseid ülesandeid | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Tõlkimine ja sentimentide analüüs ♥️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Tõlkimine ja sentimentide analüüs Jane Austeni tekstide alusel | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Euroopas asuvad romantilised hotellid ♥️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Sentimentide analüüs hotellikriitikatest 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Euroopas asuvad romantilised hotellid ♥️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Sentimentide analüüs hotellikriitikatest 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Sissejuhatus ajasarja prognoosimisse | [Ajasari](7-TimeSeries/README.md) | Sissejuhatus ajasarja prognoosimisse | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Maailma elektritarbimine ⚡️ - ARIMA ajasarja prognoosimine | [Ajasari](7-TimeSeries/README.md) | Ajasarja prognoosimine ARIMA meetodiga | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Maailma elektritarbimine ⚡️ - SVR ajasarja prognoosimine | [Ajasari](7-TimeSeries/README.md) | Ajasarja prognoosimine tugivektorregressori abil | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Sissejuhatus tugevdusõppesse | [Tugevdusõpe](8-Reinforcement/README.md) | Sissejuhatus tugevdusõppesse Q-Learningu abil | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Aita Peteril hundi eest pääseda! 🐺 | [Tugevdusõpe](8-Reinforcement/README.md) | Tugevdusõppe Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Järelkiri | Masinõppe reaalse maailma stsenaariumid ja rakendused | [Masinõpe looduses](9-Real-World/README.md) | Huvitavad ja paljastavad masinõppe klassikalised rakendused reaalses maailmas | [Õppetund](9-Real-World/1-Applications/README.md) | Meeskond |
| Järelkiri | Masinõppemudelite silumine RAI juhtpaneeli abil | [Masinõpe looduses](9-Real-World/README.md) | Masinõppemudelite silumine vastutustundliku tehisintellekti juhtpaneeli komponentide abil | [Õppetund](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [leidke selle kursuse lisamaterjale meie Microsoft Learn kollektsioonist](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Võimalus kasutada võrguühenduseta
Selle dokumentatsiooni saate võrguühenduseta käivitada, kasutades [Docsify](https://docsify.js.org/#/). Forkige see hoidla, [installige Docsify](https://docsify.js.org/#/quickstart) oma kohalikule arvutile ja siis tippige selle hoidla juurkaustas käsk `docsify serve`. Veebisait serveeritakse pordil 3000 teie lokaalarvutis: `localhost:3000`.
## Õpetamismetoodika
Selle õppekava loomisel valisime kaks pedagoogilist põhimõtet: tagada käed-külge **projektipõhine** õpe ja hõlmata **sagedased viktoriinid**. Lisaks on õppekaval ühine **teema**, mis annab sellele sidususe.
Sisuga projektide sidumine muudab õppetöö õppijate jaoks kaasahaaravamaks ning suurendab teadmiste kinnistumist. Madala panusega viktoriin enne loengut seab õppija fookuse teema omandamisele, teine viktoriin pärast loengut kinnistab materjali. Õppekava on loodud olema paindlik ja lõbus ning seda saab läbida tervikuna või osade kaupa. Projektid algavad väikestest ja muutuvad järjest keerukamaks 12-nädalase tsükli lõpus. Õppekava sisaldab ka lõpus lisamärkusi masinõppe reaalse maailma rakenduste kohta, mida saab kasutada lisapunktide teenimiseks või arutelude aluseks.
> Leia meie [käitumisjuhend](CODE_OF_CONDUCT.md), [osalemisjuhend](CONTRIBUTING.md), [tõlked](..) ja [tõrkeotsingu](TROUBLESHOOTING.md) juhendid. Ootame sinu konstruktiivset tagasisidet!
## Igas õppetunnis on
- valikuline skeemijoonis
- valikuline täiendav video
- video juhend (ainult mõnes õppetunnis)
- [eelõppetunni soojendustest](https://ff-quizzes.netlify.app/en/ml/)
- kirjalik õppetund
- projektipõhistes õppetundides samm-sammult juhised projekti ehitamiseks
- teadmiste kontroll
- väljakutse
- täiendav lugemine
- kodutöö
- [järgõppetunni test](https://ff-quizzes.netlify.app/en/ml/)
> **Märkus keeltest**: Need õppetunnid on peamiselt kirjutatud Pythonis, kuid paljud on saadaval ka R-is. R-õppetunni tegemiseks minge kausta `/solution` ja otsige R-õppetunde. Nendel on .rmd laiendus, mis tähistab **R Markdowndi** faili, mida saab lihtsalt defineerida kui `koodilõikude` (R-i või teiste keelte) ja `YAML päise` (mis juhib näiteks PDF-väljundite vormindamist) manustamist `Markdown dokumendis`. Seetõttu on see eeskujulik autoriraamistik andmeteadusele, kuna võimaldab teil kombineerida oma koodi, selle väljundi ja mõtted, võimaldades neid Markdowni kirjutada. Lisaks saab R Markdowndi dokumente renderdada väljundvormingutesse nagu PDF, HTML või Word.
> **Märkus viktoriinide kohta**: Kõik viktoriinid asuvad [Quiz App kaustas](../../quiz-app), kokku 52 viktoriini, milles on kolm küsimust igaühes. Neile viidatakse õppetundide sees, kuid viktoriini rakendust saab käivitada lokaalselt; järgige `quiz-app` kausta juhiseid, et seda kohapeal hostida või Deploy Azure'i.
| Õppetunni Number | Teema | Õppetunni Grupp | Õpitulemused | Lingitud Õppetund | Autor |
| :---------------: | :------------------------------------------------------------: | :-------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | Sissejuhatus masinõppesse | [Sissejuhatus](1-Introduction/README.md) | Õpi masinõppe põhikontseptsioone | [Õppetund](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Masinõppe ajalugu | [Sissejuhatus](1-Introduction/README.md) | Õpi selle valdkonna ajaloo kohta | [Õppetund](1-Introduction/2-history-of-ML/README.md) | Jen ja Amy |
| 03 | Õiglus ja masinõpe | [Sissejuhatus](1-Introduction/README.md) | Millised on olulised filosoofilised õiglusprobleemid, mida õpilased peaksid arvestama ML mudelite ehitamisel ja rakendamisel? | [Õppetund](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Masinõppe tehnikad | [Sissejuhatus](1-Introduction/README.md) | Milliseid tehnikaid masinõppe teadlased kasutavad mudelite ehitamiseks? | [Õppetund](1-Introduction/4-techniques-of-ML/README.md) | Chris ja Jen |
| 05 | Sissejuhatus regressiooni | [Regressioon](2-Regression/README.md) | Alusta Pythoniga ja Scikit-learniga regressioonimudelite jaoks | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Põhja-Ameerika kõrvitsa hinnad 🎃 | [Regressioon](2-Regression/README.md) | Andmete visualiseerimine ja puhastamine ML-ks ettevalmistamiseks | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Põhja-Ameerika kõrvitsa hinnad 🎃 | [Regressioon](2-Regression/README.md) | Ehita lineaarseid ja polünoomseid regressioonimudeleid | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ja Dmitry • Eric Wanjau |
| 08 | Põhja-Ameerika kõrvitsa hinnad 🎃 | [Regressioon](2-Regression/README.md) | Ehita logistilise regressiooni mudel | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Veebirakendus 🔌 | [Veebirakendus](3-Web-App/README.md) | Ehita veebirakendus oma treenitud mudeli kasutamiseks | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Sissejuhatus klassifikatsiooni | [Klassifikatsioon](4-Classification/README.md) | Puhasta, valmista ette ja visualiseeri andmeid; sissejuhatus klassifikatsiooni | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ja Cassie • Eric Wanjau |
| 11 | Maitsvad Aasia ja India köögid 🍜 | [Klassifikatsioon](4-Classification/README.md) | Sissejuhatus klassifikaatoritesse | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ja Cassie • Eric Wanjau |
| 12 | Maitsvad Aasia ja India köögid 🍜 | [Klassifikatsioon](4-Classification/README.md) | Veel klassifikaatoreid | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ja Cassie • Eric Wanjau |
| 13 | Maitsvad Aasia ja India köögid 🍜 | [Klassifikatsioon](4-Classification/README.md) | Ehita soovitusrakendus oma mudeli põhjal | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Sissejuhatus klasterdamisse | [Klasterdamine](5-Clustering/README.md) | Puhasta, valmista ette ja visualiseeri andmed; sissejuhatus klasterdamisse | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Nigeria muusikamaitsete avastamine 🎧 | [Klasterdamine](5-Clustering/README.md) | Uuri K-Means klasterdusmeetodit | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Sissejuhatus loodusliku keele töötlemisse ☕️ | [Loodusliku keele töötlemine](6-NLP/README.md) | Õpi NLP põhialuseid, luues lihtsa boti | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Levinumad NLP ülesanded ☕️ | [Loodusliku keele töötlemine](6-NLP/README.md) | Süvenda oma NLP teadmisi, mõistes keelestruktuuridega seotud tavapäraseid ülesandeid | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Tõlkimine ja emotsioonianalüüs ♥️ | [Loodusliku keele töötlemine](6-NLP/README.md) | Tõlketeenused ja sentimentide analüüs Jane Austeni tekstiga | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Euroopa romantilised hotellid ♥️ | [Loodusliku keele töötlemine](6-NLP/README.md) | Emotsioonianalüüs hotellide ülevaadetega 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Euroopa romantilised hotellid ♥️ | [Loodusliku keele töötlemine](6-NLP/README.md) | Emotsioonianalüüs hotellide ülevaadetega 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Sissejuhatus ajasarja prognoosimisse | [Ajaseeria](7-TimeSeries/README.md) | Sissejuhatus ajasarja prognoosimisse | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Maailma elektritarbimine ⚡️ - ajasari prognoosimine ARIMA-ga | [Ajaseeria](7-TimeSeries/README.md) | Ajasarja prognoosimine ARIMA meetodiga | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Maailma elektritarbimine ⚡️ - ajasari prognoosimine SVR-ga | [Ajaseeria](7-TimeSeries/README.md) | Ajasarja prognoosimine tugivektorregressiooni abil (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Sissejuhatus tugevdusõppesse | [Tugevdusõpe](8-Reinforcement/README.md) | Sissejuhatus tugevdusõppesse Q-Learningu näitel | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Aita Peteril hundi eest põgeneda! 🐺 | [Tugevdusõpe](8-Reinforcement/README.md) | Tugevdusõppe Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Järelsõna | Reaalsed ML stsenaariumid ja rakendused | [ML metsikus looduses](9-Real-World/README.md) | Huvitavad ja tähendusrikkad klassikalise ML reaalse maailma rakendused | [Õppetund](9-Real-World/1-Applications/README.md) | Meeskond |
| Järelsõna | Mudeli silumine ML-s RAI armatuurlaua abil | [ML metsikus looduses](9-Real-World/README.md) | Mudeli silumine masinõppes kasutades Responsible AI armatuurlaua komponente | [Õppetund](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [leia kõik selle kursuse lisamaterjalid meie Microsoft Learn kogust](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Offline ligipääs
Seda dokumentatsiooni saate kasutada ka võrguühenduseta, kasutades [Docsify](https://docsify.js.org/#/). Tõmba see repo oma arvutisse, [paigalda Docsify](https://docsify.js.org/#/quickstart) oma kohalikule masinale, ja siis selle repokoodikausta juurtes kirjuta `docsify serve`. Veebileht serveeritakse pordil 3000 teie lokaalses arvutis: `localhost:3000`.
## PDF-id
Leidke õppekava PDF koos linkidega [siit](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
Leia õppekava pdf koos linkidega [siin](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Teised kursused
Meie meeskond toodab ka teisi kursuseid! Vaadake:
Meie meeskond toodab ka teisi kursuseid! Vaata:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j algajatele](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js algajatele](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain algajatele](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agendid
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AZD algajatele](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI algajatele](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP algajatele](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI agendid algajatele](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Generatiivse tehisintellekti sari
### Generatiivse tehisintellekti seeria
[![Generatiivne tehisintellekt algajatele](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generatiivne tehisintellekt (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generatiivne tehisintellekt (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
@ -198,41 +197,52 @@ Meie meeskond toodab ka teisi kursuseid! Vaadake:
---
### Põhiline õppimine
### Põhiõpe
[![Masinõpe algajatele](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Andmeteadus algajatele](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![Tehisintellekt algajatele](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Küberjulgeolek algajatele](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Veebiarendus algajatele](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![Asjade internet (IoT) algajatele](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT algajatele](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR arendus algajatele](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### Copiloti sari
[![Copilot tehisintellekti paariarenduseks](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
### Copiloti seeria
[![Copilot AI paarisprogrammeerimiseks](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot C#/.NET jaoks](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copiloti seiklus](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## Abi saamine
Kui sa jään kinni või sul on küsimusi tehisintellekti rakenduste loomise kohta, liitu teiste õppurite ja kogenud arendajatega MCP teemalistes aruteludes. See on toetav kogukond, kus küsimused on teretulnud ja teadmisi jagatakse vabalt.
Kui satud takistusse või sul on küsimusi masinõppe õppimisel või tehisintellekti rakenduste loomisel, ära muretse — abi on saadaval.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Saad liituda aruteludega teiste õppijate ja arendajatega, esitada küsimusi ja jagada kogukonnaga oma ideid.
- Liitu kogukonnaga, et küsida küsimusi ja koos teistega õppida
- Aruta masinõppe mõisteid ja projektide ideid
- Saa kogenud arendajatelt juhiseid
Toetav kogukond on suurepärane võimalus oma oskusi arendada ja probleeme kiiremini lahendada.
[Microsoft Foundry Discordi kogukond](https://discord.gg/nTYy5BXMWG)
Kui kohtad vigu, tõrkeid või soovid teha parandusettepanekuid, võid ka avada selles hoidlas **Issue**, et probleemi raporteerida.
Toote tagasiside või olemasolevate kogukonna postituste otsimiseks külasta arendajate foorumit:
Kui sul on toodete kohta tagasisidet või ehitamise ajal esineb vigu, külasta:
[![Microsoft Foundry arendajate foorum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Lisanduvad õppimisnipid
## Täiendavad õppimisnipid
- Vaata õppetundide järel märkmeid parema arusaamise nimel.
- Harjuta algoritmide iseseisvat rakendamist.
- Uuri õpitud kontseptsioonide abil reaalseid andmekogumeid.
- Vaata pärast iga õppetundi märkmeid üle, et paremini mõista.
- Harjuta algoritmide ise rakendamist.
- Uuri õpitud põhimõtteid kasutades pärismaailma andmestikke.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Vastutusest loobumine**:
See dokument on tõlgitud tehisintellekti tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame täpsust, tuleb arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle emakeeles tuleks pidada usaldusväärseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti mõistmiste eest.
**Vastutusest loobumine**:
See dokument on tõlgitud tehisintellekti tõlke teenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame täpsust, palun arvestage, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument selle algkeeles tuleks pidada autoriteetseks allikaks. Olulise teabe korral soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlkega seotud arusaamatuste ega väärarusaamade eest.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -90,8 +90,8 @@
"language_code": "pcm"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T11:17:29+00:00",
"original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
"translation_date": "2026-04-20T17:18:55+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "pcm"
},
@ -168,8 +168,8 @@
"language_code": "pcm"
},
"4-Classification/2-Classifiers-1/README.md": {
"original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b",
"translation_date": "2025-11-18T18:50:19+00:00",
"original_hash": "cb761595e5b6c42b99bb81bd13683311",
"translation_date": "2026-04-20T17:19:55+00:00",
"source_file": "4-Classification/2-Classifiers-1/README.md",
"language_code": "pcm"
},
@ -552,8 +552,8 @@
"language_code": "pcm"
},
"README.md": {
"original_hash": "7fb48097f57e680b380cd9aae988d317",
"translation_date": "2026-04-06T17:43:41+00:00",
"original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0",
"translation_date": "2026-04-20T17:16:11+00:00",
"source_file": "README.md",
"language_code": "pcm"
},

@ -2,96 +2,96 @@
## Beginner Note
Linear regression dey used wen we want predict **numerical value** (like house price, temperature, or sales).
E dey work by finding straight line way best represent di relationship between input features and di output.
Linear regression na wen we wan predict **numerical value** (for example, house price, temperature, or sales).
E dey work by finding straight line wey go best show di relationship between input features and di output.
For dis lesson, we go focus on understanding di concept before we explore more advanced regression techniques.
For dis lesson, we go focus on understanding di concept before we go explore advance regression techniques.
![Linear vs polynomial regression infographic](../../../../translated_images/pcm/linear-polynomial.5523c7cb6576ccab.webp)
> Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
> ### [Dis lesson dey available for R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [This lesson dey R too!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Introduction
So far, you don explore wetin regression be with sample data wey we collect from di pumpkin pricing dataset wey we go use for dis lesson. You don also visualize am using Matplotlib.
So far, you don explore wetin regression mean with sample data we gather from di pumpkin pricing dataset wey we go dey use through dis lesson. You don also visualize am using Matplotlib.
Now you fit dive deeper into regression for ML. While visualization dey help you make sense of data, real power of Machine Learning na from _training models_. Models dey train on historic data to automatically catch data dependencies, and dem allow you predict outcomes for new data wey di model never see before.
Now, you ready to dive deeper into regression for ML. Visualizing dey help you understand data, but real power for Machine Learning come from _training models_. Models dem dey train on historic data to dey automatically capture data dependencies, and dem allow you predict outcomes for new data wey di model never see before.
For dis lesson, you go learn more about two types of regression: _basic linear regression_ and _polynomial regression_, plus some math way dey behind these techniques. Dem models go allow us predict pumpkin prices based on different input data.
For dis lesson, you go learn more about two types of regression: _basic linear regression_ and _polynomial regression_, plus some math wey dey under these techniques. Dem models go allow us predict pumpkin prices depending on different input data.
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 Click di image wey dey above for short video overview of linear regression.
> 🎥 Click di image up top for small video overview of linear regression.
> Throughout dis curriculum, we assume say person no get much knowledge for math before, and we dey try make am easy for students wey dey comot from other fields, so watch for notes, 🧮 callouts, diagrams, and other learning tools to help you understand.
> Throughout dis curriculum, we assume say you get little knowledge of math, and we wan make am easy for students wey come from other fields, so lookout for notes, 🧮 callouts, diagrams, and other learning tools wey go help you understand.
### Prerequisite
You suppose sabi di structure of di pumpkin data wey we dey check by now. You fit find am preloaded and pre-cleaned inside dis lesson's _notebook.ipynb_ file. Inside di file, di pumpkin price dey show per bushel for new dataframe. Make sure say you fit run these notebooks inside Visual Studio Code kernels.
By now, you suppose sabi di structure of di pumpkin data wey we dey look. You fit find am preloaded and pre-cleaned for dis lesson's _notebook.ipynb_ file. For di file, pumpkin price dey show per bushel for new data frame. Make sure say you fit run these notebooks for kernels for Visual Studio Code.
### Preparation
As reminder, you dey load dis data make you fit ask questions about am.
Just reminder, you dey load dis data so you fit ask questions about am.
- When na di best time to buy pumpkins?
- Wetin price fit be for one case of miniature pumpkins?
- I suppose buy dem for half-bushel baskets or buy by 1 1/9 bushel box?
Make we continue to look into dis data.
- When bae time to buy pumpkins?
- Wetin price I fit expect for one case of miniature pumpkins?
- Make I buy dem for half-bushel basket or for 1 1/9 bushel box?
Make we continue to dig into dis data.
For di previous lesson, you create Pandas dataframe and put small part of di original dataset for am, standardizing di pricing by di bushel. But by doing that, you only fit collect about 400 datapoints and na only for di fall months.
For di previous lesson, you create Pandas data frame and put part of di original dataset inside, standardize di pricing by di bushel. But by doing that one, you only fit gather about 400 datapoints and only for fall months.
Check di data way we preload for dis lesson notebook. Di data dey preloaded and initial scatterplot dey show month data. Maybe we fit get small better detail about di nature of di data if we clean am more.
Check di data wey we preload for dis lessons notebook. Di data dey preloaded and dem don chart initial scatterplot to show month data. Maybe we fit get small more detail about di nature of di data if we clean am more.
## A linear regression line
As you learn for Lesson 1, di aim of linear regression exercise na to fit plot one line to:
Like you learn for Lesson 1, di goal of linear regression exercise na to fit draw line to:
- **Show variable relationships**. Show di relationship between variables
- **Make predictions**. Make correct predictions on where new datapoint for fit fall inside relation to dat line.
- **Show variable relationships**. Show d relationship between variables
- **Make predictions**. Make correct predictions how where new datapoint go land for di relationship to dat line.
E common for **Least-Squares Regression** to draw dis kain line. Di term "Least-Squares" mean say you want minimize total error for our model. For every data point, we dey measure vertical distance (we call am residual) between di real point and our regression line.
Na normal for **Least-Squares Regression** to draw dis kain line. Di "Least-Squares" term mean say you dey minimize total error for our model. For every data point, we measure di vertical distance (wey dem dey call _residual_) between di actual point and di regression line.
We dey square these distances for two main reasons:
1. **Magnitude over Direction:** We wan make error of -5 equal to error of +5. Squaring go make all values positive.
1. **Magnitude over Direction:** We want treat -5 error same as +5 error. Squaring go make all values positive.
2. **Penalizing Outliers:** Squaring dey put more weight on bigger errors, e go make di line stay closer to points wey far away.
2. **Penalizing Outliers:** Squaring dey give more weight to big errors, e go make line stay close to points wey far away.
Then we add all these squared values together. Our goal na to find di line where dis total sum go minimum (smallest value)—na why dem call am "Least-Squares".
We go add all di squared values join. Our goal na to find di one exact line where di sum of dem less (smallest possible value)—na im cause di name "Least-Squares".
> **🧮 Show me di math**
>
> Dis line wey we call _line of best fit_ fit be expressed by [one equation](https://en.wikipedia.org/wiki/Simple_linear_regression):
> Dis line, wey dem dey call _line of best fit_ fit express by [an equation](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` na 'explanatory variable'. `Y` na 'dependent variable'. Di slope of di line na `b` and `a` na di y-intercept, way mean di value of `Y` when `X = 0`.
> `X` na di 'explanatory variable'. `Y` na di 'dependent variable'. Di slope of di line na `b` and `a` na di y-intercept, wey mean di value of `Y` when `X = 0`.
>
>![calculate di slope](../../../../translated_images/pcm/slope.f3c9d5910ddbfcf9.webp)
>![calculate the slope](../../../../translated_images/pcm/slope.f3c9d5910ddbfcf9.webp)
>
> First, calculate di slope `b`. Infographic by [Jen Looper](https://twitter.com/jenlooper)
> First, calculate slope `b`. Infographic by [Jen Looper](https://twitter.com/jenlooper)
>
> To talk am another way, and referring to di pumpkin data original question: "predict price of pumpkin per bushel by month", `X` na price and `Y` na month of sale.
> In oda words, and referring to di original question wey our pumpkin data get: "predict di price of pumpkin per bushel by month", `X` go mean di price and `Y` go mean di month of sale.
>
>![complete di equation](../../../../translated_images/pcm/calculation.a209813050a1ddb1.webp)
>![complete the equation](../../../../translated_images/pcm/calculation.a209813050a1ddb1.webp)
>
> Calculate di value of Y. If you dey pay around $4, e be say na April! Infographic by [Jen Looper](https://twitter.com/jenlooper)
> Calculate di value of Y. If you dey pay about $4, e suppose be April! Infographic by [Jen Looper](https://twitter.com/jenlooper)
>
> Di math wey calculate di line must show di slope of di line, way still depend on di intercept, or where `Y` dey when `X = 0`.
> Di math wey dey calculate di line gats show di slope of di line, wey also depend on di intercept, or where `Y` dey when `X = 0`.
>
> You fit check di way to calculate dis values on di [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) website. Also visit [dis Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) to see how di numbers value affect di line.
> You fit see how to calculate these values for [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) website. You fit also visit [dis Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) to see how numbers values fit affect di line.
## Correlation
Another term to sabi na di **Correlation Coefficient** between X and Y variables. Using scatterplot, you fit quickly visualize dis coefficient. If plot get datapoints scatter for neat line, e get high correlation, but if datapoints scatter everywhere between X and Y, e get low correlation.
One more term wey you gats sabi na **Correlation Coefficient** between given X and Y variables. With scatterplot, you fit quickly see dis coefficient. Scatterplot wey get points for neat line get high correlation, but scatterplot wey get points scatter everywah for X and Y get low correlation.
Good linear regression model na di one way get high (near 1 pass near 0) Correlation Coefficient using Least-Squares Regression method and regression line.
Good linear regression model go get high (near 1 pass 0) Correlation Coefficient using Least-Squares Regression with regression line.
✅ Run di notebook wey join dis lesson and check di Month to Price scatterplot. Di data way associate Month to Price for pumpkin sales get high or low correlation according to your visual interpretation? E go change if you use more detailed measure instead of `Month`, like *day of di year* (meaning number of days since year start)?
✅ Run di notebook for dis lesson and see di Month to Price scatterplot. Di data wey connect Month to Price for pumpkin sales get high or low correlation based on your visual check of di scatterplot? E fit change if you use fine-grained measure instead of `Month`, like *day of di year* (number of days since year start)?
For di code below, we go assume say we don clean di data, and get data frame named `new_pumpkins`, similar to dis:
For di code below, we go assume say we don clean di data, and dem get data frame wey dem call `new_pumpkins`, similar to dis one:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
@ -101,36 +101,36 @@ ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Pri
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> Di code wey clean di data dey inside [`notebook.ipynb`](notebook.ipynb). We do di same cleaning steps like before, and we calculate `DayOfYear` column with dis expression:
> Di code to clean di data dey for [`notebook.ipynb`](notebook.ipynb). We don do same cleaning steps like for previous lesson, and we calculate `DayOfYear` column using dis expression:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Now wey you understand di math behind linear regression, make we create Regression model to see if we fit predict which pumpkin package go get di best pumpkin prices. Anybody buying pumpkins for holiday pumpkin patch fit want dis info to optimize how dem go buy pumpkin packages for di patch.
Now wey you don understand di math behind linear regression, make we create Regression model to see if we fit predict which pumpkin package go get di best pumpkin prices. Anybody wey wan buy pumpkins for holiday pumpkin patch fit want this info to optimize dem pumpkin package purchases.
## Looking for Correlation
[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
> 🎥 Click di image above to watch short video overview about correlation.
> 🎥 Click di image up top for small video overview of correlation.
From di last lesson, you probably don see dat average price for different months look like dis:
From previous lesson, you don probably see say average price for different months look like dis:
<img alt="Average price by month" src="../../../../translated_images/pcm/barchart.a833ea9194346d76.webp" width="50%"/>
Dis show say should get some correlation, and we fit try train linear regression model to predict di relationship between `Month` and `Price`, or between `DayOfYear` and `Price`. Dis na di scatter plot wey show di latter one:
Dis one suggest say e get correlation, and we fit try train linear regression model to predict di relationship between `Month` and `Price`, or between `DayOfYear` and `Price`. Here na di scatter plot wey show dis latter relationship:
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/pcm/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Make we check if correlation dey using `corr` function:
Make we check if correlation dey using di `corr` function:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
E be like say correlation small, -0.15 by `Month` and -0.17 by `DayOfMonth`, but fit be say another important relationship dey. E be like say different clusters of prices dey waka with different pumpkin varieties. To confirm dis hypothesis, make we plot each pumpkin category with different color. By passing `ax` parameter to `scatter` plotting function, we fit plot all points for one graph:
E look like say di correlation small small, -0.15 by `Month` and -0.17 by `DayOfMonth`, but fit get another important relationship. E look like different price clusters dey correspond to different pumpkin varieties. To confirm dis guess, make we plot each pumpkin category with different color. By passing `ax` parameter to `scatter` plotting function, we fit plot all points for same graph:
```python
ax=None
@ -142,7 +142,7 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/pcm/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Our check show say variety get more effect on overall price pass di actual selling date. We fit see dis with bar graph:
Our investigation show say variety get more effect on price than di selling date. We fit see dis with bar graph:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
@ -150,7 +150,7 @@ new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
<img alt="Bar graph of price vs variety" src="../../../../translated_images/pcm/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Make we focus for now on one pumpkin variety, di 'pie type', and see wetin di date do to di price:
Make we focus for now on one pumpkin variety, 'pie type', and see wetin di date dey do to price:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
@ -158,22 +158,22 @@ pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/pcm/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
If we calculate correlation between `Price` and `DayOfYear` using `corr` function, we go get like `-0.27` - mean say e make sense to train predictive model.
If we calculate correlation between `Price` and `DayOfYear` with `corr` function, we go get something like `-0.27` - e mean say training predictive model make sense.
> Before train linear regression model, e important to make sure our data clean well. Linear regression no dey work well if values dey miss, so e make sense to clear all empty cells:
> Before you train linear regression model, e important say make sure say our data clean. Linear regression no dey work well if e get missing values, so e make sense to remove all empty cells:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Another way na to fill empty values with mean values from corresponding column.
Another way fit be to fill empty values with mean from di column wey get dem.
## Simple Linear Regression
[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 Click di image above for short video overview of linear and polynomial regression.
> 🎥 Click di image up top for short video overview of linear and polynomial regression.
To train our Linear Regression model, we go use **Scikit-learn** library.
@ -183,49 +183,48 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
We start by separating input values (features) and expected output (label) into separate numpy arrays:
We dey start by separating input values (features) and expected output (label) into separate numpy arrays:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Note say we gatz do `reshape` on input data so Linear Regression package go fit understand am well well. Linear Regression dey expect 2D-array as input, where each row of di array represent vector of input features. Our case, we get only one input - so we need array with shape N&times;1, where N na size of dataset.
> Note say we gats do `reshape` on input data make Linear Regression package fit understand am correct. Linear Regression dey expect 2D-array as input, wey each row get vector of input features inside. For our case, we get only one input, so we need array with shape N&times;1, where N na dataset size.
Then, we need to split data into train and test datasets so we fit validate our model after training:
Next, we need split data into train and test datasets, so that we fit validate our model after training:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Finally, training actual Linear Regression model na just two lines of code. We define `LinearRegression` object, and fit am to our data using `fit` method:
Finally, training di real Linear Regression model na just two lines code. We define `LinearRegression` object, then fit am to our data using `fit` method:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Di `LinearRegression` object afta `fit`-ting get all di coefficients of di regression, we fit fit access using `.coef_` property. For our case, na only one coefficient wey dey, wey suppose dey around `-0.017`. E mean sey prices fit dey drop small with time, but e no too much, around 2 cents per day. We fit access di intersection point of di regression with Y-axis using `lin_reg.intercept_` - e go dey around `21` for our case, wey mean di price for beginning of di year.
Di `LinearRegression` object afta `fit`-ting get all di coefficients of di regression, wey fit access wit `.coef_` property. For our case, e get only one coefficient, wey suppose be round `-0.017`. E mean say di prices dey drop small wit time, but no too much, around 2 cents per day. We fit still access di intersection point of di regression wit Y-axis wit `lin_reg.intercept_` - e go be around `21` for our case, wey mean di price for di beginning of di year.
To see how correct our model be, we fit predict prices for test dataset, then measure how close our predictions be to di expected values. Dis one fit use mean square error (MSE) metrics, wey be di mean of all squared differences between expected and predicted value.
To see how correct our model be, we fit predict prices for test dataset, then measure how near our predictions be to di expected values. Dis one fit do wit root mean square error (RMSE) metrics, wey be root of di mean of all squared differences between expected and predicted value.
```python
pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
```
Our error dey around 2 points, wey be ~17%. E no too good. Another indicator of model quality na di **coefficient of determination**, wey fit get like dis:
Our error look like around 2 points, wey be ~17%. No too good. Another indicator of model quality na di **coefficient of determination**, wey fit get like dis:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
If di value na 0, e mean say di model no dey use input data, e just act as di *worst linear predictor*, wey be just mean value of di result. If e be 1, e mean say we fit predict all expected outputs perfectly. For our case, di coefficient na around 0.06, wey low small.
If di value na 0, e mean sey di model no dey consider input data, e just dey act as di *worst linear predictor*, wey na mean value of di result. If di value na 1, e mean sey we fit perfectly predict all expected outputs. For our case, di coefficient na around 0.06, wey low shaa.
We fit also plot di test data join with di regression line so dat we go fit see correct how regression dey work for our case:
We fit still plot di test data with di regression line to betta see how di regression dey work for our case:
```python
plt.scatter(X_test,y_test)
@ -236,17 +235,17 @@ plt.plot(X_test,pred)
## Polynomial Regression
Another kin of Linear Regression na Polynomial Regression. Sometimes, e for be say the relationship between variables be straight line - like di bigger di pumpkin volume, di higher di price - but sometimes, dis kain relationship no fit plot as plane or straight line.
Another kind of Linear Regression na Polynomial Regression. Sometimes, e dey get linear relationship between variables - like di bigger pumpkin in volume, di higher di price - but sometimes dis relationship no fit plot as plane or straight line.
✅ Here na [some more examples](https://online.stat.psu.edu/stat501/lesson/9/9.8) of data wey polynomial regression fit work for
✅ Here be [some more examples](https://online.stat.psu.edu/stat501/lesson/9/9.8) of data we fit use Polynomial Regression
Look di relationship between Date and Price again. Dis scatterplot seem like e suppose analyze by straight line? Prices no dey fluctuate sef? For dis situation, you fit try polynomial regression.
Make you check di relationship between Date and Price again. Dis scatterplot look like e suppose necessarily analyze wit straight line? Prices no dey fluctuate abi? For dis kain case, you fit try polynomial regression.
✅ Polynomials na mathematical expressions wey fit get one or more variables and coefficients
✅ Polynomials na mathematical expressions wey fit get one or more variables plus coefficients
Polynomial regression dey create curved line to fit nonlinear data better. For our case, if we add squared `DayOfYear` variable enter input data, we suppose fit our data with parabolic curve, wey get minimum for one point inside di year.
Polynomial regression dey create curved line to betta fit nonlinear data. For our case, if we put squared `DayOfYear` variable for input data, e suppose fit our data wit parabolic curve wey go get minimum for some point inside di year.
Scikit-learn get beta [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) wey dey help combine different data processing steps together. **pipeline** na chain of **estimators**. For our case, we go create pipeline wey first add polynomial features to our model, then train di regression:
Scikit-learn get better [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) wey fit join different steps of data processing. **Pipeline** na chain of **estimators**. For our case, we go create pipeline wey first add polynomial features to our model, then go train di regression:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -257,36 +256,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
Use `PolynomialFeatures(2)` mean sey we go include all second-degree polynomials from di input data. For us, e mean say na just `DayOfYear`<sup>2</sup>, but if we get two input variables X and Y, e go add X<sup>2</sup>, XY and Y<sup>2</sup>. We fit also use higher degree polynomials if we want.
If we use `PolynomialFeatures(2)`, e mean say we go include all second-degree polynomials from di input data. For our case, e go be just `DayOfYear`<sup>2</sup>, but if e get two input variables X and Y, e go add X<sup>2</sup>, XY and Y<sup>2</sup>. We fit still use higher degree polynomials if we want.
Pipelines fit act like di original `LinearRegression` object, e.g. we fit `fit` di pipeline, then use `predict` to get prediction results. Dis na di graph wey show test data and approximation curve:
Pipelines fit use same way as di original `LinearRegression` object, we fit `fit` di pipeline, then use `predict` get prediction results. Dis na graph wey show test data with approximation curve:
<img alt="Polynomial regression" src="../../../../translated_images/pcm/poly-results.ee587348f0f1f60b.webp" width="50%" />
Using Polynomial Regression, we fit get small lower MSE and higher determination, but e no too much. We need consider other features!
If we use Polynomial Regression, we fit get small lower MSE and higher determination, but no too much. We need take other features join!
> You fit see sey minimal pumpkin prices dey around Halloween. How you fit explain dat?
> You fit see say minimum pumpkin prices dey happen around Halloween. How you fit explain dis?
🎃 Congrats, you just create model wey fit help predict pie pumpkins price. You fit fit repeat di same process for all pumpkin types, but dat one go dey tiring. Make we learn now how to take pumpkin variety enter our model!
🎃 Congrats, you don create model wey fit help predict price of pie pumpkins. You fit fit do di same for all pumpkin types, but dat one go be tedious. Make we learn now how take pumpkin variety join our model!
## Categorical Features
For correct world, we want fit predict prices for different pumpkin varieties using same model. But di `Variety` column differ from columns like `Month`, because e get non-numeric values. Dis kind columns na **categorical**.
For ideal world, we want fit predict prices for different pumpkin varieties wit one model. But di `Variety` column different small from `Month` column, because e get non-numeric values. Dis kin columns na **categorical**.
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 Click di image wey dey above for short video wey summarize how to use categorical features.
> 🎥 Click di image for short video wey show how to use categorical features.
Here you fit see how average price depend on variety:
Here you fit see how average price dey depend on variety:
<img alt="Average price by variety" src="../../../../translated_images/pcm/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
To take variety enter account, we first need to convert am to numeric form, or **encode** am. We get different ways to do am:
To take variety join, we first need convert am to numeric form, wey be **encode** am. Several ways dey we fit do am:
* Simple **numeric encoding** go build table of different varieties, then replace variety name with index for that table. Dis one no too good for linear regression, because linear regression go take di numeric value of di index, add am to result, multiply by some coefficient. For our case, di relationship between index number and price no linear, even if we arrange indices some specific way.
* **One-hot encoding** go replace `Variety` column with 4 different columns, one for each variety. Each column go get `1` if that row na dat variety, else `0`. Mean sey four coefficients go dey for linear regression, one for each pumpkin variety, wey dey responsible for "starting price" (or "additional price") for dat variety.
* Simple **numeric encoding** go create table of different varieties, then go replace variety name wit index for dat table. Dis no be di best idea for linear regression because linear regression go take di actual numeric value of dat index and add am to di result, multiply by some coefficient. For our case, di relationship between di index number and di price no linear, even if we arrange di indices somehow.
* **One-hot encoding** go replace `Variety` column wit 4 different columns, one for every variety. Each column go get `1` if di row na dat variety, else `0`. Dis mean say di linear regression go get four coefficients, one for each pumpkin variety, wey go control "starting price" (or "additional price") for dat variety.
Dis code below show how we fit one-hot encode variety:
Code below show how to do one-hot encode for variety:
```python
pd.get_dummies(new_pumpkins['Variety'])
@ -303,14 +302,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
To train linear regression using one-hot encoded variety as input, we just need to initialize `X` and `y` data well:
To train linear regression wit one-hot encoded variety as input, we just need initialize `X` and `y` data well:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
Di rest of di code na di same wey we use above for Linear Regression training. If you try am, you go see say mean squared error dey about di same, but coefficient of determination go much higher (~77%). To get better predictions, we fit take more categorical features enter account, plus numeric features, like `Month` or `DayOfYear`. To get one large features array, we fit use `join`:
Other code still be same wit how we train Linear Regression before. If you try am, you go see say mean squared error dey nearly di same, but coefficient of determination high pass (~77%). To get more correct predictions, we fit take more categorical features join, plus numeric features, like `Month` or `DayOfYear`. To get one big feature array, we fit use `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -320,31 +319,31 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Here we also take `City` and `Package` type enter account, wey give MSE 2.84 (10%), plus determination 0.94!
Here we still take `City` and `Package` type join, wey bring MSE 2.84 (10%) and determination 0.94!
## Putting it all together
To make di best model, we fit combine (one-hot encoded categorical + numeric) data from di example above join Polynomial Regression. Dis na di complete code for your ease:
To make di best model, we fit combine (one-hot encoded categorical + numeric) data from above example wit Polynomial Regression. Here be full code for you:
```python
# prepare training data
# arrange 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']
# divide train and test data
# make train-test divide
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# prepare and train di pipeline
# setup and train di pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# predict results for test data dem
# predict results for test data
pred = pipeline.predict(X_test)
# calculate MSE and determination score
# calculate MSE and determination
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
@ -352,7 +351,7 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
This one suppose give us best determination coefficient near 97%, and MSE=2.23 (~8% prediction error).
Dis one suppose give us di best determination coefficient nearly 97%, and MSE=2.23 (~8% prediction error).
| Model | MSE | Determination |
|-------|-----|---------------|
@ -362,18 +361,18 @@ This one suppose give us best determination coefficient near 97%, and MSE=2.23 (
| All features Linear | 2.84 (10.5%) | 0.94 |
| All features Polynomial | 2.23 (8.25%) | 0.97 |
🏆 Well done! You create four Regression models for one lesson, plus you improve model quality to 97%. For di last part of Regression, you go learn about Logistic Regression to determine categories.
🏆 Well done! You don create four Regression models for one lesson, and improve model quality to 97%. For final section on Regression, you go learn about Logistic Regression to know categories.
---
## 🚀Challenge
Test different variables for dis notebook to see how correlation link to model accuracy.
Try different variables for dis notebook to see how correlation dey relate to model accuracy.
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## Review & Self Study
For dis lesson, we learn about Linear Regression. Get other important Regression types too. Read about Stepwise, Ridge, Lasso and Elasticnet techniques. One good course to study be di [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
For dis lesson we learn about Linear Regression. Other important kinds of Regression dey. Read about Stepwise, Ridge, Lasso and Elasticnet techniques. Better course to learn more na [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Assignment
@ -383,5 +382,5 @@ For dis lesson, we learn about Linear Regression. Get other important Regression
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Disclaimer**:
Dis document don translate wit AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). Even though we dey try make am correct, abeg sabi say automated translation fit get errors or no too correct. Di original document wey dey dia in im own language na di correct one. If na serious matter, better make person wey sabi do proper human translation do am. We no go hold ourselves responsible if pesin misunderstand or misinterpret any tin wey come from dis translation.
Dis document don translate wit AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). Even tho we dey try make am correct, abeg make you sabi say automated translations fit get errors or wahala for accuracy. Di original document for im own language na di correct source wey you suppose trust pass. For important tori dem, better make professional human translation dey used. We no go gree for any misunderstanding or wrong meaning wey fit happen because of this translation.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,17 +1,17 @@
# Cuisine classifiers 1
For dis lesson, you go use di dataset wey you save from di last lesson wey get balanced, clean data about cuisines.
For dis lesson, you go use di dataset wey you save from di last lesson wey full wit balanced, clean data wey dey all about cuisines.
You go use dis dataset with different classifiers to _predict one national cuisine based on di group of ingredients_. As you dey do am, you go learn more about di ways wey algorithms fit help for classification tasks.
You go use dis dataset wit plenty classifiers dem to _predict one kain national cuisine based on one group of ingredients_. While you dey do am, you go learn more about some of di ways wey algorithms fit take help for classification tasks.
## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
# Preparation
If you don finish [Lesson 1](../1-Introduction/README.md), make sure say _cleaned_cuisines.csv_ file dey inside di root `/data` folder for dis four lessons.
Assuming say you don finish [Lesson 1](../1-Introduction/README.md), make sure say one _cleaned_cuisines.csv_ file dey for di root `/data` folder for dis four lessons.
## Exercise - predict one national cuisine
1. For dis lesson _notebook.ipynb_ folder, import di file plus di Pandas library:
1. For dis lesson's _notebook.ipynb_ folder, import dat file plus di Pandas library:
```python
import pandas as pd
@ -19,7 +19,7 @@ If you don finish [Lesson 1](../1-Introduction/README.md), make sure say _cleane
cuisines_df.head()
```
Di data go look like dis:
Di data look like dis:
| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
@ -40,7 +40,7 @@ If you don finish [Lesson 1](../1-Introduction/README.md), make sure say _cleane
import numpy as np
```
1. Divide di X and y coordinates into two dataframes for training. `cuisine` fit be di labels dataframe:
1. Divide X and y coordinates into two dataframes for training. `cuisine` fit be labels dataframe:
```python
cuisines_label_df = cuisines_df['cuisine']
@ -58,7 +58,7 @@ If you don finish [Lesson 1](../1-Introduction/README.md), make sure say _cleane
Name: cuisine, dtype: object
```
1. Drop di `Unnamed: 0` column plus di `cuisine` column, use `drop()`. Save di rest of di data as trainable features:
1. Drop dat `Unnamed: 0` column and di `cuisine` column by using `drop()`. Save di rest data as trainable features:
```python
cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
@ -75,13 +75,13 @@ If you don finish [Lesson 1](../1-Introduction/README.md), make sure say _cleane
| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Now you fit train your model!
Now you ready to train your model!
## Choosing your classifier
Now wey your data don clean and e dey ready for training, you go need decide which algorithm you go use for di work.
Now wey your data clean and don ready for training, you gats make decision which algorithm you go use for di work.
Scikit-learn dey group classification under Supervised Learning, and for dat category you go find plenty ways to classify. [Di variety](https://scikit-learn.org/stable/supervised_learning.html) fit dey confusing for first sight. Di methods wey dey include classification techniques na:
Scikit-learn put classification under Supervised Learning, and for dat category you go find plenty ways to classify. [Di variety](https://scikit-learn.org/stable/supervised_learning.html) dey confuse small for first look. Di methods wey follow dey include classification techniques:
- Linear Models
- Support Vector Machines
@ -92,68 +92,68 @@ Scikit-learn dey group classification under Supervised Learning, and for dat cat
- Ensemble methods (voting Classifier)
- Multiclass and multioutput algorithms (multiclass and multilabel classification, multiclass-multioutput classification)
> You fit also use [neural networks to classify data](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), but dat one no dey inside dis lesson.
> You fit also use [neural networks to classify data](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), but dat one no dey inside dis lesson scope.
### Which classifier you go choose?
### Which classifier to choose?
So, which classifier you go use? Sometimes, to try different ones and check di result na one way to test. Scikit-learn dey offer [side-by-side comparison](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) for one created dataset, wey compare KNeighbors, SVC two ways, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB and QuadraticDiscrinationAnalysis, wey show di results visualized:
So, which classifier you go choose? Most times, you fit run several classifiers and see wey one get better result. Scikit-learn get [side-by-side comparison](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) for one created dataset, wey compare KNeighbors, SVC two ways, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB and QuadraticDiscrinationAnalysis, and dem show di results as visual:
![comparison of classifiers](../../../../translated_images/pcm/comparison.edfab56193a85e7f.webp)
> Plots wey dem generate for Scikit-learn documentation
> Charts wey Scikit-learn documentation generate
> AutoML dey solve dis problem well by running dis comparisons for di cloud, e go allow you choose di best algorithm for your data. Try am [here](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML fit solve dis kind wahala well well by to run these comparisons for cloud, so dat you fit choose di best algorithm for your data. Try am [here](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
### Better way
### Better approach
Better way wey pass to dey guess anyhow na to follow di ideas wey dey dis downloadable [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Here, we go see say for our multiclass problem, we get some options:
Better pass just guess work na to follow di ideas wey dey inside dis downloadable [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). For here, we see sey for our multiclass problem, we get some choices:
![cheatsheet for multiclass problems](../../../../translated_images/pcm/cheatsheet.07a475ea444d2223.webp)
> Part of Microsoft's Algorithm Cheat Sheet, wey show multiclass classification options
> One part of Microsoft Algorithm Cheat Sheet, wey show multiclass classification options
✅ Download dis cheat sheet, print am, and hang am for your wall!
✅ Download dis cheat sheet, print am come hang am for wall!
### Reasoning
Make we try reason di different approaches wey we fit use based on di constraints wey we get:
Make we try reason our way through different approaches based on wetin we get:
- **Neural networks dey too heavy**. Based on our clean but small dataset, and di fact say we dey run training locally for notebooks, neural networks dey too much for dis task.
- **No two-class classifier**. We no go use two-class classifier, so dat one rule out one-vs-all.
- **Decision tree or logistic regression fit work**. Decision tree fit work, or logistic regression for multiclass data.
- **Multiclass Boosted Decision Trees dey solve different problem**. Di multiclass boosted decision tree dey best for nonparametric tasks, e.g. tasks wey dey build rankings, so e no go help us.
- **Neural networks too heavy**. Based on our clean but small dataset, plus the fact say we dey run training local for notebooks, neural networks too heavy for dis task.
- **No two-class classifier**. We no dey use two-class classifier, so we no go use one-vs-all.
- **Decision tree or logistic regression fit work**. Decision tree fit work, or logistic regression for multiclass data.
- **Multiclass Boosted Decision Trees solve other kinds problem**. Dis multiclass boosted decision tree best for nonparametric tasks, e.g. tasks wey dey build rankings, so e no concern us.
### Using Scikit-learn
We go use Scikit-learn to analyze our data. But, plenty ways dey to use logistic regression for Scikit-learn. Check di [parameters to pass](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
We go use Scikit-learn analyze our data. But, many ways dey to use logistic regression for Scikit-learn. Look di [parameters wey you fit pass](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Di two important parameters na `multi_class` and `solver` wey we need to set when we dey ask Scikit-learn to do logistic regression. Di `multi_class` value dey apply certain behavior. Di value of di solver na di algorithm wey e go use. No be all solvers fit pair with all `multi_class` values.
Basically, two parameters matter - `multi_class` and `solver` - we need to specify when we ask Scikit-learn to do logistic regression. Di value of `multi_class` determine how e go behave. Di solver na wetin algorithm to use be dat. No all solvers fit with all `multi_class` values.
According to di docs, for di multiclass case, di training algorithm:
According to docs, for multiclass case, di training algorithm:
- **Dey use di one-vs-rest (OvR) scheme**, if di `multi_class` option dey set to `ovr`
- **Dey use di cross-entropy loss**, if di `multi_class` option dey set to `multinomial`. (Currently di `multinomial` option dey supported only by di lbfgs, sag, saga and newton-cg solvers.)"
- **Use one-vs-rest (OvR) scheme**, if `multi_class` option set to `ovr`
- **Use cross-entropy loss**, if `multi_class` option set to `multinomial`. (Currently `multinomial` option dey supported only by lbfgs, sag, saga and newton-cg solvers.)"
> 🎓 Di 'scheme' here fit be 'ovr' (one-vs-rest) or 'multinomial'. Since logistic regression dey really designed to support binary classification, dis schemes dey help am handle multiclass classification tasks better. [source](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 Di 'scheme' fit be 'ovr' (one-vs-rest) or 'multinomial'. Because logistic regression na to support binary classification, these schemes help am better handle multiclass classification tasks. [source](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 Di 'solver' dey defined as "di algorithm wey e go use for di optimization problem". [source](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 Di 'solver' na "di algorithm to use inside di optimization problem". [source](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Scikit-learn dey offer dis table to explain how solvers dey handle different challenges wey different kinds of data structures dey bring:
Scikit-learn get table to explain how solvers dey handle different challenges from many kinds data structures:
![solvers](../../../../translated_images/pcm/solvers.5fc648618529e627.webp)
## Exercise - split di data
Make we focus on logistic regression for our first training trial since you don learn about am for di previous lesson.
We fit focus on logistic regression for our first training because you just learn am for previous lesson.
Split your data into training and testing groups by calling `train_test_split()`:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
```
## Exercise - apply logistic regression
## Exercise - use logistic regression
Since you dey use di multiclass case, you need choose wetin _scheme_ to use and wetin _solver_ to set. Use LogisticRegression with multiclass setting and di **liblinear** solver to train.
Since you dey use multiclass case, you gats choose which _scheme_ to use and which _solver_ to set. Use LogisticRegression with multiclass setting and **liblinear** solver for train.
1. Create logistic regression with multi_class set to `ovr` and di solver set to `liblinear`:
1. Create logistic regression wit multi_class set to `ovr` and solver set to `liblinear`:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
@ -163,29 +163,28 @@ Since you dey use di multiclass case, you need choose wetin _scheme_ to use and
print ("Accuracy is {}".format(accuracy))
```
✅ Try different solver like `lbfgs`, wey dem dey often set as default
✅ Try different solver like `lbfgs`, wey dem dey use as default many times
> Note, use Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) function to flatten your data when e dey needed.
> Note, use Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) function to flatten your data when e needed.
Di accuracy dey good at over **80%**!
Di accuracy good pass **80%**!
1. You fit see dis model for action by testing one row of data (#50):
1. You fit see dis model dey work by testing one row of data (#50):
```python
print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
print(f'cuisine: {y_test.iloc[50]}')
```
Di result go show:
Di result go print:
```output
ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
cuisine: indian
```
✅ Try use different row number and check wetin e go show
1. If you wan sabi more, you fit check how correct dis prediction be:
✅ Try different row number come check di results
1. Diggin deep, you fit check the accuracy of dis prediction:
```python
test= X_test.iloc[50].values.reshape(-1, 1).T
@ -197,7 +196,7 @@ Since you dey use di multiclass case, you need choose wetin _scheme_ to use and
topPrediction.head()
```
Di result wey e print - Indian food na di best guess, and e get beta chance:
Di result e print - Indian cuisine na di best guess, wit good probability:
| | 0 |
| -------: | -------: |
@ -207,9 +206,9 @@ Since you dey use di multiclass case, you need choose wetin _scheme_ to use and
| korean | 0.017277 |
| thai | 0.007634 |
✅ You fit explain why di model sure say na Indian food?
✅ You fit explain why di model sure sey na Indian cuisine dis be?
1. Get more info by printing classification report, like you do for regression lessons:
1. Get more detail by printing classification report, like how you do for regression lessons:
```python
y_pred = model.predict(X_test)
@ -223,26 +222,26 @@ Since you dey use di multiclass case, you need choose wetin _scheme_ to use and
| japanese | 0.70 | 0.75 | 0.72 | 220 |
| korean | 0.86 | 0.76 | 0.81 | 242 |
| thai | 0.79 | 0.85 | 0.82 | 254 |
| accuracy | 0.80 | 1199 | | |
| accuracy | | | 0.80 | 1199 |
| macro avg | 0.80 | 0.80 | 0.80 | 1199 |
| weighted avg | 0.80 | 0.80 | 0.80 | 1199 |
## 🚀Challenge
For dis lesson, you use di clean data take build machine learning model wey fit predict national food based on di ingredients wey dem use. Take time read di plenty options wey Scikit-learn get to classify data. Try sabi di concept of 'solver' well to understand wetin dey happen for di background.
For dis lesson, you use your clean data to build machine learning model wey fit predict national cuisine based on series of ingredients dem. Take some time read through all di options wey Scikit-learn provide to classify data. Dig deep inside di concept of 'solver' to understand wetin dey happen behind di scenes.
## [Post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
## Review & Self Study
Try sabi di mathematics wey dey behind logistic regression for [dis lesson](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
Dig small more inside di math behind logistic regression inside [this lesson](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Assignment
[Study di solvers](assignment.md)
[Study the solvers](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Disclaimer**:
Dis dokyument don use AI transleto service [Co-op Translator](https://github.com/Azure/co-op-translator) do di translation. Even as we dey try make am correct, abeg sabi say machine translation fit get mistake or no dey accurate well. Di original dokyument for im native language na di main correct source. For important mata, e good make una use professional human translation. We no go fit take blame for any misunderstanding or wrong interpretation wey fit happen because una use dis translation.
**Disclaimer**:
Dis document dem don translate am wit AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). Even tho we dey try make am correct, abeg sabi say automated translations fit get errors or mistakes. Di original document for im own language na di correct source. For important matter, e better make person wey sabi do professional translation handle am. We no go take responsibility for any misunderstanding or wrong meaning wey fit show from dis translation.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,3 +1,13 @@
[![GitHub license](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
[![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![GitHub watchers](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
### 🌐 Multi-Language Support
#### Supported via GitHub Action (Automated & Always Up-to-Date)
@ -5,9 +15,9 @@
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](./README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **You wan Clone am Tinside?**
> **Prefer to Clone Locally?**
>
> Dis repo get 50+ language translations wey dey make the download size big. To clone without di translations, use sparse checkout:
> Dis repository get 50+ language translations wey dey increase di download size well well. To clone without di translations, use sparse checkout:
>
> **Bash / macOS / Linux:**
> ```bash
@ -23,54 +33,55 @@
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Dis one go give you everything you need to complete di course fast.
> Dis one go give you everything wey you need to complete di course quick quick.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Join Our Community
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
We get Discord learn with AI series wey dey go on, sabi more and join us for [Learn with AI Series](https://aka.ms/learnwithai/discord) from 18 - 30 September, 2025. You go see tips and tricks for how to use GitHub Copilot for Data Science.
We get Discord learn with AI series wey dey go on, learn more and join us for [Learn with AI Series](https://aka.ms/learnwithai/discord) from 18 - 30 September, 2025. You go get correct tips and tricks for using GitHub Copilot for Data Science.
![Learn with AI series](../../translated_images/pcm/3.9b58fd8d6c373c20.webp)
# Machine Learning for Beginners - Curriculum
# Machine Learning for Beginners - A Curriculum
> 🌍 Travel round di world as we dey explore Machine Learning through world cultures 🌍
> 🌍 Travel around di world as we dey explore Machine Learning thru world cultures 🌍
Cloud Advocates for Microsoft happy to offer 12-week, 26-lesson curriculum all about **Machine Learning**. For dis curriculum, you go learn wetin dem dey call **classic machine learning**, wey go use Scikit-learn as main library and no go dey do deep learning, wey we cover for our [AI for Beginners' curriculum](https://aka.ms/ai4beginners). Join these lessons with our ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners), together too!
Cloud Advocates for Microsoft happy to offer 12-week, 26-lesson curriculum all about **Machine Learning**. For dis curriculum, you go learn about wetin people dey call **classic machine learning**, we go use mainly Scikit-learn as library and avoid deep learning, wey dey cover for our [AI for Beginners' curriculum](https://aka.ms/ai4beginners). Make you join dis lessons with our ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) too.
Travel with us round the world as we take apply these classic ways to data from plenty places for world. Every lesson get pre- and post-lesson quizzes, written instructions to finish the lesson, solution, assignment, and more. Our project-based way of teaching go make you learn while you dey build, na how new skills dem dey stick well.
Make you travel with us around di world as we dey apply dis classic techniques to data from many parts of di world. Every lesson get pre- and post-lesson quizzes, written instructions to complete di lesson, solution, assignment, and more. Our project-based way to teach fit help you learn well as you dey build, na the best way for new skills to hold tight.
**✍️ Big thanks to our authors** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu and Amy Boyd
**🎨 Thanks too to our illustrators** Tomomi Imura, Dasani Madipalli, and Jen Looper
**🎨 Thanks to our illustrators** Tomomi Imura, Dasani Madipalli, and Jen Looper
**🙏 Special thanks 🙏 to our Microsoft Student Ambassador authors, reviewers, and content contributors**, especially Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, and Snigdha Agarwal
**🤩 Extra big thanks to Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, and Vidushi Gupta for our R lessons!**
**🤩 Extra thanks to Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, and Vidushi Gupta for our R lessons!**
# How to Start
# Getting Started
Follow all dis steps:
1. **Fork the Repository**: Click the "Fork" button for di top-right corner of dis page.
Follow these steps:
1. **Fork the Repository**: Click di "Fork" button for di top-right corner of dis page.
2. **Clone the Repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [find all extra resources for dis course inside our Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [Find all extra resources for dis course inside our Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **You need help?** Look our [Troubleshooting Guide](TROUBLESHOOTING.md) for solution to common wahala like installation, setup, and how to run lessons.
> 🔧 **Need help?** Check our [Troubleshooting Guide](TROUBLESHOOTING.md) for solutions to commonly yawa with installation, setup, and running lessons.
**[Students](https://aka.ms/student-page)**, to use dis curriculum, fork the whole repo to your own GitHub account and finish the exercises by yourself or with group:
**[Students](https://aka.ms/student-page)**, to use dis curriculum, fork di full repo to your own GitHub account and finish the exercises by yourself or with your group:
- Start with pre-lecture quiz.
- Read the lecture and do the activities, stop sometimes to think for every knowledge check.
- Try create the projects by understanding the lessons instead of just running the solution code; but the code dey for `/solution` folders inside every project-based lesson.
- Take the post-lecture quiz.
- Finish the challenge.
- Do the assignment.
- After you finish one lesson group, visit the [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) and "learn out loud" by filling di right PAT rubric. 'PAT' na Progress Assessment Tool wey be like rubric wey you dey fill to improve your learning. You fit also react other PATs so we go learn together.
- Read the lecture and do di activities, stop and think for each knowledge check.
- Try create the projects by understanding the lessons instead of just running the solution code; but dat code dey for `/solution` folders for each project-based lesson.
- Do the post-lecture quiz.
- Complete the challenge.
- Finish the assignment.
- After you finish one lesson group, visit the [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) and "learn out loud" by filling di correct PAT rubric. 'PAT' na Progress Assessment Tool wey you fit fill to take your learning go further. You fit also react to others PATs so we fit learn together.
> For more study, we recommend say you follow these [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules and learning paths.
@ -80,7 +91,7 @@ Follow these steps:
## Video walkthroughs
Some lessons get short form video versions. You fit find all these for inside lessons, or for the [ML for Beginners playlist for Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) by clicking di picture below.
Some lessons get short video form. You fit find all these inline for the lessons, or on the [ML for Beginners playlist for the Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) by clicking the image below.
[![ML for beginners banner](../../translated_images/pcm/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -92,79 +103,79 @@ Some lessons get short form video versions. You fit find all these for inside le
**Gif by** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Click di picture for video about di project and di people wey create am!
> 🎥 Click di image above make you watch video wey talk about di project and di people wey create am!
---
## Pedagogy
We choose two pedagogy principles when we dey build dis curriculum: di first na to make am hands-on **project-based** and di second na to include **many quizzes**. Plus, dis curriculum get one **common theme** to give am better cohesion.
We choose two methods to teach while we dey build dis curriculum: make am hands-on **project-based** and make e get **plenty quizzes**. Plus, dis curriculum get common **theme** to make e dey make sense together.
By making sure say content dey match with projects, e go make students dey more interested and dem go remember concepts well well. Also, low-stakes quiz before class dey set the mindset of student to learn better, while another quiz after class go make dem remember better. Dis curriculum designed to be flexible and fun and you fit take am full or part. Di projects begin small and go big and complex by end of 12-week cycle. Dis curriculum still get small last part about real-world Machine Learning usage, wey fit be extra credit or topic for discussion.
As we make the content align with projects, e help students enjoy and remember better. Also, small quiz before class go prepare the mind of student to learn topic, while second quiz after class go help make e stick. Dis curriculum design to be flexible and fun, you fit take all or part. Di projects start small and dey get complex well by end of 12-week course. This curriculum get postscript on real-world Machine Learning applications, fit use am as extra credit or for discussion.
> Find our [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), and [Troubleshooting](TROUBLESHOOTING.md) guidelines. We dey always happy for your constructive feedback!
> Find our [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), and [Troubleshooting](TROUBLESHOOTING.md) guidelines. We dey wait for your constructive feedback!
## Each lesson include
## Each lesson get
- optional sketchnote
- optional extra video
- video walkthrough (some lessons only)
- optional supplemental video
- video walkthrough (only some lessons)
- [pre-lecture warmup quiz](https://ff-quizzes.netlify.app/en/ml/)
- written lesson
- for project-based lessons, step-by-step guide on how to build the project
- for project-based lessons, step-by-step guides on how to build the project
- knowledge checks
- a challenge
- challenge
- extra reading
- assignment
- [post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/)
> **Wan note about languages**: Dem sabi write dis lessons mostly for Python, but plenty dey for R too. If you want finish wan R lesson, waka go the `/solution` folder make you find R lessons. Dem get .rmd extension wey mean **R Markdown** file wey fit be define as plenti `code chunks` (for R or oda languages) and wan `YAML header` (wey dey show how to make output dem like PDF) for `Markdown document`. Na so e be, e good for authoring framework for data science well well cos e dey allow you join your code, di output, and your thoughts by writing dem down for Markdown. More so, R Markdown documents fit turn to output formats like PDF, HTML, or Word.
> **One note about languages**: Dem write most of dis lessons for Python, but plenti dey available for R too. If you want complete one R lesson, waka go the `/solution` folder and find R lessons. Dem get .rmd extension wey mean **R Markdown** file we fit talk sey na how you go put `code chunks` (wey fit be R or other languages) and one `YAML header` (wey dey guide how outputs go be like PDF) for inside one `Markdown document`. So e mean sey e good framework for data science because e allow you join your code, wetin e produce, and your brain thoughts by make you fit write dem down for Markdown. Plus, R Markdown documents fit turn into output formats like PDF, HTML, or Word.
> **Wan note about quizzes**: All di quizzes dey for [Quiz App folder](../../quiz-app), total na 52 quizzes with three questions each. Dem link am inside di lessons but di quiz app fit run for your local machine; follow di instruction for di `quiz-app` folder to run am for your side or use Azure make e deploy.
> **One note about quizzes**: All quizzes dey for [Quiz App folder](../../quiz-app), plenti 52 quizzes wit three question each. Dem connect inside the lessons but quiz app fit run for your computer; follow the instruction wey dey the `quiz-app` folder to run am local or put am for Azure.
| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author |
| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | Introduction to machine learning | [Introduction](1-Introduction/README.md) | Learn di basic tins wey machine learning get behind am | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | The History of machine learning | [Introduction](1-Introduction/README.md) | Learn di history wey dey for dis field | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | Fairness and machine learning | [Introduction](1-Introduction/README.md) | Wetin be di important philosophy tins about fairness wey students suppose think about wen dem dey build and use ML models? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Techniques for machine learning | [Introduction](1-Introduction/README.md) | Wetin techniques dem ML researchers dey use to build ML models? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | Introduction to regression | [Regression](2-Regression/README.md) | Start wit Python and Scikit-learn for regression models | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Visualize and clean data make e ready for ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build linear and polynomial regression models | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build one logistic regression model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | A Web App 🔌 | [Web App](3-Web-App/README.md) | Build web app to use your trained model | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Introduction to classification | [Classification](4-Classification/README.md) | Clean, prep, and visualize your data; introduction to classification | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Introduction to classifiers | [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 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | More classifiers | [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 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Build recommender web app with your model | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Introduction to clustering | [Clustering](5-Clustering/README.md) | Clean, prep, and visualize your data; Introduction to clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](5-Clustering/README.md) | Explore di K-Means clustering method | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Introduction to natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Learn di basics about NLP by building simple bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Common NLP Tasks ☕️ | [Natural language processing](6-NLP/README.md) | Make your NLP knowledge strong by understanding common tasks wey dey when you dey work with language structures | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Translation and sentiment analysis ♥️ | [Natural language processing](6-NLP/README.md) | Translation and sentiment analysis wit Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Introduction to time series forecasting | [Time series](7-TimeSeries/README.md) | Introduction to time series forecasting | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ World Power Usage ⚡️ - time series forecasting with ARIMA | [Time series](7-TimeSeries/README.md) | Time series forecasting wit ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ World Power Usage ⚡️ - time series forecasting with SVR | [Time series](7-TimeSeries/README.md) | Time series forecasting wit Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Introduction to reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Real-World ML scenarios and applications | [ML in the Wild](9-Real-World/README.md) | Interesting and revealing real-world applications of classical ML | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| Postscript | Model Debugging in ML using RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Model Debugging in Machine Learning wit Responsible AI dashboard components | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
| 01 | Introduction to machine learning | [Introduction](1-Introduction/README.md) | Learn the basic concepts behind machine learning | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | The History of machine learning | [Introduction](1-Introduction/README.md) | Learn the history underlying this field | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy |
| 03 | Fairness and machine learning | [Introduction](1-Introduction/README.md) | Wetin be the important philosophical tins about fairness we students suppose consider when dem dey build and use ML models? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Techniques for machine learning | [Introduction](1-Introduction/README.md) | Wetin kind techniques ML researchers dey use to build ML models? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen |
| 05 | Introduction to regression | [Regression](2-Regression/README.md) | Start to work with Python and Scikit-learn for regression models | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | See and clean data well well to prepare for ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build linear and polynomial regression models | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau |
| 08 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build one logistic regression model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | A Web App 🔌 | [Web App](3-Web-App/README.md) | Build web app wey you fit use your trained model | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Introduction to classification | [Classification](4-Classification/README.md) | Clean, prep, and show your data graph; introduction to classification | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau |
| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Introduction to classifiers | [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 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | More classifiers | [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 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Build recommender web app using your model | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Introduction to clustering | [Clustering](5-Clustering/README.md) | Clean, prepare, and show your data graph; Introduction to clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](5-Clustering/README.md) | Explore the K-Means clustering method | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Introduction to natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Learn the basics about NLP by building one simple bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Common NLP Tasks ☕️ | [Natural language processing](6-NLP/README.md) | Make your NLP knowledge strong by understanding common tasks wey dey when you dey deal with language structures | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Translation and sentiment analysis ♥️ | [Natural language processing](6-NLP/README.md) | Translation and sentiment analysis with Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Introduction to time series forecasting | [Time series](7-TimeSeries/README.md) | Introduction to time series forecasting | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ World Power Usage ⚡️ - time series forecasting with ARIMA | [Time series](7-TimeSeries/README.md) | Time series forecasting with ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ World Power Usage ⚡️ - time series forecasting with SVR | [Time series](7-TimeSeries/README.md) | Time series forecasting with Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Introduction to reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Real-World ML scenarios and applications | [ML in the Wild](9-Real-World/README.md) | Interesting and clear real-world uses of classical ML | [Lesson](9-Real-World/1-Applications/README.md) | Team |
| Postscript | Model Debugging in ML using RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Model Debugging in Machine Learning using Responsible AI dashboard components | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [find all additional resources for this course in our Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Offline access
You fit run this documentation offline by using [Docsify](https://docsify.js.org/#/). Fork dis repo, [install Docsify](https://docsify.js.org/#/quickstart) for your machine, then for di root folder of dis repo, type `docsify serve`. Di website go run for port 3000 for your localhost: `localhost:3000`.
You fit run this documentation offline by using [Docsify](https://docsify.js.org/#/). Fork dis repo, [install Docsify](https://docsify.js.org/#/quickstart) for your local machine, then for the root folder of this repo, type `docsify serve`. The website go dey for port 3000 for your localhost: `localhost:3000`.
## PDFs
Find pdf of di curriculum wit links [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
Find pdf of the curriculum wit links [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Other Courses
Our team dey produce oda courses! Check am out:
Our team dey produce other courses! Look:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -208,22 +219,33 @@ Our team dey produce oda courses! Check am out:
## Getting Help
If you get stuck or get any question about how to build AI apps. Join other learners and developers wey sabi for discussions about MCP. Na community wey dey help, so questions dey welcome and knowledge dey share freely.
If you get stuck or get questions as you dey learn Machine Learning or dey build AI applications, no worry — help dey.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
You fit join discussions with oda learners and developers, ask question, and share your ideas with di community.
If you get product feedback or errors while you dey build, abeg check:
- Join di community to ask questions and learn with oda people
- Discuss Machine Learning concepts and project ideas
- Get guidance from experienced developers
Supportive community na beta way to grow your skills and solve problems quick.
[Microsoft Foundry Discord Community](https://discord.gg/nTYy5BXMWG)
If you find bugs, errors, or get suggestions for improvements, you fit open **Issue** for this repository to report di problem.
For product feedback or to find existing community posts, visit di Developer Forum:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## Additional Learning Tips
- Make you dey review notebooks after each lesson to understand better.
- Try practice to implement algorithms by yourself.
- Check real-world datasets using wetin you don learn.
- Review notebooks after each lesson to understand better.
- Practice to implement algorithms by yourself.
- Explore real-world datasets using wetin you don learn.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Disclaimer**:
Dis document don translate wit AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). Even tho we dey try make am correct, abeg sabi say automatic translations fit get errors or mistakes. Di original document for dia own language na di correct source. For important info, e better make professional human translation do am. We no go responsible for any wrong understanding or misinterpretation wey fit come from dis translation.
**Disclaimer**:
Dis document don translate wit AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). Even as we dey try make am correct, abeg sabi say automated translations fit get errors or wahala. Di original document for e own language na di real authority. For important information, na professional human translation better. We no dey responsible for any wahala or wrong understanding wey fit come from dis translation use.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -90,8 +90,8 @@
"language_code": "ta"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T11:11:40+00:00",
"original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
"translation_date": "2026-04-20T17:08:50+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "ta"
},
@ -168,8 +168,8 @@
"language_code": "ta"
},
"4-Classification/2-Classifiers-1/README.md": {
"original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b",
"translation_date": "2025-10-11T11:53:24+00:00",
"original_hash": "cb761595e5b6c42b99bb81bd13683311",
"translation_date": "2026-04-20T17:10:15+00:00",
"source_file": "4-Classification/2-Classifiers-1/README.md",
"language_code": "ta"
},
@ -552,8 +552,8 @@
"language_code": "ta"
},
"README.md": {
"original_hash": "7fb48097f57e680b380cd9aae988d317",
"translation_date": "2026-04-06T17:40:36+00:00",
"original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0",
"translation_date": "2026-04-20T17:06:55+00:00",
"source_file": "README.md",
"language_code": "ta"
},

@ -1,136 +1,135 @@
# Scikit-learnஐப் பயன்படுத்தி ஒரு ரிகிரெஷன் மாதிரியை கட்டியெழுது: நான்கு விதமான ரிகிரெஷன
# Scikit-learn பயன்படுத்தி ஒரு பகுப்பாய்வு மாதிரியை உருவாக்குதல்: regression நான்கு வழிகள
## ஆரம்ப நிலை குறிப்பு
## ஆரம்பக்காரர் குறிப்பு
நேரியல் ரிகிரெஷன் **எண்ணிக்கையான மதிப்பை** (உதாரணமாக, வீட்டு விலை, வெப்பநிலை, அல்லது விற்பனை) கணிக்க பயன்படுத்தப்படுகிறது.
இது உள்ளீட்டு அம்சங்களுக்கும் வெளிப்பாட்டிற்குமான உறவைக் சிறந்த முறையிலான நேரியல் கோட்டைக் கண்டறிந்து செயல்படுகிறது.
எண் மதிப்பை (உதாரணமாக, வீட்டு விலை, வெப்ப நிலை அல்லது விற்பனை) கணிக்க linear regression பயன்படுத்தப்படுகிறது.
இது உள்ளீட்டு அம்சங்களுக்கும் வெளியீட்டு மதிப்பிற்குமான தொடர்பை சிறந்த முறையில் பிரதிநிதித்துவப்படுத்தும் நேர்கைக்கோவை கண்டுபிடிப்பதன் மூலம் செயல்படுகிறது.
இந்த பாடத்தில், மேம்பட்ட ரிகிரெஷன் நுட்பங்களை ஆராய்வதற்கு முன் கருத்தை புரிந்து கொள்ளவே நாம் கவனம் செலுத்துகிறோம்.
![நேரியல் மற்றும் பன்முக ரிகிரெஷன் தகவல்நூல்](../../../../translated_images/ta/linear-polynomial.5523c7cb6576ccab.webp)
> தகவல்நூல் தயாரிப்பு: [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [முன்-பாடக் குறுஸ்வட்டு](https://ff-quizzes.netlify.app/en/ml/)
இந்த பாடத்தில், நாம் regression முறைகளை புரிந்து கொள்வதில் கவனம் செலுத்தி இன்னும் மேம்பட்ட regression நுட்பங்களை ஆராய்வதற்கு முன் இத்தொடர்பை புரிந்து கொள்கிறோம்.
![Linear vs polynomial regression infographic](../../../../translated_images/ta/linear-polynomial.5523c7cb6576ccab.webp)
> [Dasani Madipalli](https://twitter.com/dasani_decoded) என்பவரின் தகவல்காட்சி
## [பாடமுன் வினாத்தாளி](https://ff-quizzes.netlify.app/en/ml/)
> ### [இந்த பாடம் R மொழியில் கிடைக்கிறது!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [இந்த பாடம் R இல் கிடைக்கும்!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### அறிமுகம்
இதுவரை நீங்கள் ரிகிரெஷன் என்றது என்னவென்று பம்ப்கின் விலைமதிப்புக்கான மாதிரித் தரவுகளைப் பயன்படுத்தி ஆராய்ந்துள்ளீர்கள். இதை Matplotlib கொண்டு காட்சிப்படுத்தியுள்ளீர்கள்.
இதுவரை நீங்கள் regression என்பது என்ன என்பதை pumpkin விலை தரவுத்தொகுப்பிலிருந்து எடுத்துக்காட்டுக் கூரிய தரவுடன் ஆராய்ந்துள்ளீர்கள், இதை இந்த பாடத்துடன் முழுமையாக பயன்படுத்த உள்ளோம். Matplotlib பயன்படுத்தி அதனை காண்பித்துள்ளீர்கள்.
இப்போது நீங்கள் இயந்திர கற்றல் ரிகிரெஷனில் மேலும் ஆழமாக செல்வதற்கு தயார். காட்சிப்படுத்தல் தரவைப் புரிந்துகொள்ள உதவுவதாக இருந்தால், இயந்திரக் கற்றலின் உண்மையான சக்தி _மாதிரிகளை பயிற்றுவிப்பதில்_ உள்ளது. மாதிரிகள் பழைய தரவுகளிலும் இருந்து தானாக தரவு சார்புகளைக் கொண்டிருப்பதைக் கற்றுக்கொள்கின்றன, மேலும் புதிய தரவுகளுக்கான முடிவுகளை முன்கூட்டியே கணிக்க உதவுகின்றன, அவை மாதிரியில் முன்னரே காணப்படாதவை.
இப்போது நீங்கள் ML க்கான regression இல் மேலும் நுழைய தயாராக உள்ளீர்கள். தரவுகளை காண்பிப்பது அவற்றை புரிந்துகொள்ள உதவுகிறது, ஆனாலும் இயந்திரக் கற்றல் மாட்சிமை என்பது _மாதிரிகளை பயிற்சி செய்வதில்_ உள்ளது. மாதிரிகள் கடந்த தரவுகளில் பயிற்சி பெற்று தரவு சார்புகளை தானாக பறைசெய்கின்றன, மேலும் புதிய தரவிற்கான முடிவுகளை கணிக்க உதவுகின்றன, இந்த மாதிரி பழைய தரவுகளை காட்டியதில்லை.
இந்தப் பாடத்தில், இரண்டு வகை ரிகிரெஷன்களை வலியுறுத்தி கற்றுக்கொள்வீர்கள்: _அடிப்படை நேரியல் ரிகிரெஷன்_ மற்றும் _பன்முக ரிகிரெஷன்_, மற்றும் அவற்றுக்கு அடிப்படை கணித ரீதியையும். இவற்றின் மூலம் நான்கு விதமான உள்ளீட்டு தரவுகளுக்கு ஏற்ப பம்ப்கின் விலை கணிக்க முடியும்.
இந்த பாடத்தில், நீங்கள் இரண்டு regression வகைகள், _அடிப்படை நேரியல் regression_ மற்றும் _பல்கோண regression_ கொஞ்சம் கணிதத்துடன் பற்றி கற்றுக்கொள்வீர்கள். அவை pumpkin விலை கணிக்க உதவும், உள்ளீட்டு தரவை பொருத்து.
[![ML ஆரம்பகாலத்துக்கான - நேரியல் ரிகிரெஷன் புரிதல்](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 மேலே உள்ள படத்தை அழுத்தி நேரியல் ரிகிரெஷனின் சுருக்கமான காணொளி காட்சியூடாக பாருங்கள்.
> 🎥 மேலே உள்ள படத்தை கிளிக் செய்து நேரியல் regression குறித்த சிறு வீடியோ சர்போட்டைப் பெறவும்.
> இந்த பாடத்திட்டத்தில், கணித அறிவு குறைந்தவர்களுக்காகவும், பிற துறைகள் வந்த மாணவர்களுக்காகவும் இதை எளிமையாகக் கற்பதாக வைத்திருக்கிறோம், எனவே குறிப்பு, 🧮 கணிதக் குறிப்புகள், வரைபடங்கள் மற்றும் பிற கற்றல் கருவிகள் காணும்.
> இந்த பாடத்திட்டத்தில், கணிதத்தில் மிகக் குறைந்த அறிவுப்பார்வையை மதிப்பிடுகிறோம், மற்றும் வேறு துறையிலிருந்து வரும் மாணவர்களுக்கு சோதனை செய்யிறோம், ஆகையால் குறிப்பு, 🧮 அழைப்புகள், வரைபடங்கள் மற்றும் பிற கற்றல் கருவிகளை கவனியுங்கள்.
### முன்னோடியான அறிவு
### முன் அறிவு
நாம் ஆய்வு செய்யும் பம்ப்கின் தரவுத் தொகுப்பின் அமைப்பை நீங்கள் தற்போது அறிவீர்கள். இந்தப் பாடத்தின் _notebook.ipynb_ கோப்பில் அது முன்பே ஏற்றப்பட்டு சுத்தப்படுத்தப்பட்டிருக்கும். கோப்பில் பம்ப்கின் விலை ஒரு புஷலில் காட்டப்பட்டுள்ளது. Visual Studio Code இன் கர்னெல்கள் மூலம் இந்த நோட்புக் கோப்புகளை இயக்கக் கூடியதா என உறுதி செய்யுங்கள்.
இப்போது நாம் பார்க்கும் pumpkin தரவின் அமைப்புக்குப் பழகியிருக்க வேண்டும். இந்த பாடத்தில் முன்னமே preloaded மற்றும் pre-cleaned செய்யப்பட்டுள்ளது. இதில் pumpkin விலை புதிய தரவு பெட்டியில் bushel வீதம் காட்டப்பட்டுள்ளது. Visual Studio Codeல் இந்த notebook இனை கெர்னல்களில் இயக்கு என்பது உறுதியாக்கொள்ள வேண்டும்.
### முன்னமைப்பு
### தயாரிப்பு
ாம் இந்த தரவை ஏற்றுகிறோம் என்பது அதனைப் பற்றிய கேள்விகளை கேட்கவும்.
ீங்கள் இந்த தரவை ஏற்று அதில் கேள்விகள் கேட்கப் போகிறீர்கள் என்பதைக் நினைவுக்கொள்ளுங்கள்.
- பம்ப்கின்களை வாங்க சிறந்த நேரம் எப்போது?
- சிறிய பம்ப்கின் பொதுத்தொகைப்பெட்டிக்கு நான் எதிர்பார்க்கும் விலை என்ன?
- அதனை அரை-புஷல் கூடை அல்லது 1 1/9 புஷல் பெட்டியில் வாங்குவது நல்லதா?
நாம் இந்த தரவைக் கொண்டு மேலும் ஆழமாக ஆராய்ந்து போகலாம்.
- pumpkins வாங்க எந்த நேரம் சிறந்தது?
- குறுந்துண்டு pumpkins ஒரு பெட்டிக்கு என்ன விலை எதிர்பார்க்கலாம்?
- பால்-bushel தொட்டிகளில் வாங்க மறுப்பதா அல்லது 1 1/9 bushel பெட்டியில் வாங்குமா?
நாம் இந்த தரவை ஆராய்வு செய்கிறோம்.
முந்தைய பாடத்தில், நீங்கள் Pandas தரவு தொகுப்பை உருவாக்கி, அசல் தரவு தொகுப்பில் இருந்து விலை மாதிரியை புஷலுக்கு சீராக்கி நிரப்பினீர்கள். ஆனால் அதனால் சுமார் 400 தரவுப் புள்ளிகளுக்கு மட்டுமே நெருங்கியதாகவும், வெறும் விழா மாதங்களுக்கு மட்டுமே இருந்தது.
கடந்த பாடத்தில், நீங்கள் Pandas data frame உருவாக்கி அதனை ஆரம்ப தரவின் ஒரு பகுதியுடன் நிரப்பி, விலையை bushel கூறு விகிதத்தால் சீரமைத்துள்ளீர்கள். ஆனால், இதனால் நீங்கள் சுமார் 400 தரவு புள்ளிகளை மட்டுமே மற்றும் இறறுநீண்ட காலங்களுக்குப் பொருந்தி சேகரித்துள்ளீர்கள்.
இந்த பாடத்துடனான நோட்புக் பக்கத்தில் முன்பே ஏற்றப்பட்ட தரவைப் பாருங்க. தரவு ஏற்றப்பட்டு, ஆரம்பப் புள்ளிவிவர வரைபடம் மாத நிவாரணத்தைக் காட்டுகிறது. நாம் இன்னும் சிறிது சுத்தம் செய்யலாம் என நினைக்கலாம்.
இந்த பாடத் தொடர்பாக உள்ள notebook இல் முன்னதாக ஏற்றப்பட்ட தரவைக் கவனியுங்கள். அங்கு ஆரம்ப scatterplot வரைபடம் மாத தரவை காட்டுகிறது. கூடுதலான தரவின் இயல்பைப் புரிந்துகொள்ள, மேலும் சுத்திகரிப்பது வாய்ப்பு உள்ளது.
## ஒரு நேரியல் ரிகிரெஷன் கோடு
## ஒரு நேரியல் regression கோடு
பாடம் 1ல் கற்றுக்கொண்டபடி, நேரியல் ரிகிரெஷனின் நோக்கம் ஒரு கோட்டை வரைபடமாக பதிவது:
பாடம் 1ல் கற்றுக்கொண்டது போல, linear regression பயிற்சியின் நோக்கம் கோடை வரைபடத்தைக் கடைப்பிடிப்பதற்குள் இருக்கிறது:
- **மாறிலிகள் இடையிலான உறவை காட்டுவது**: மாறிலிகள் இடையிலான உறவை காட்ட
- **யனுள்ள கணிப்புகளை செய்வது**: புதிய தரவுப் புள்ளி அந்த கோட்டுக்கு எங்கு தாக்கும் என்பதில் சரியான கணிப்புகளை செய்வது.
- **மாற்றியமை கடத்தியவை** ஓர் மாறில்களுக்கு இடையேயான தொடர்பை காட்ட
- **ரிந்துரைகள் செய்ய** புதிய தரவு புள்ளி அந்தக் கோட்டிற்கு எங்கிருக்கும் என்பதில் துல்லியமான கணிப்பை செய்ய
**குறைந்த-சதுரங்கள் ரிகிரெஷன்** (Least-Squares Regression) இந்த வித கோட்டை வரைவதில் பொதுவாகப் பயன்படுத்தப்படுகிறது. "குறைந்த-சதுரங்கள்" என்றால் மாதிரியில் மும்முரணத்தைக் குறைக்க முயற்சிப்பது. ஒவ்வொரு தரவுபுள்ளிக்கும் உண்மையான புள்ளி மற்றும் ரிகிரெஷன் கோட்டுக்கு இடையே நின்ற சரியான பார்க்கப்பட்ட தொலைவு (residual) மதிப்பை அளக்கின்றோம்.
**Least-Squares Regression** இல் இந்த வகையான கோடு வரைபடம் கிட்டத்தட்ட வழக்கம். Least-Squares என்பது, மாதிரியின் மொத்த பிழையை குறைத்துக் கொள்ளும் செயல்முறையை குறிக்கும். ஒவ்வொரு தரவு புள்ளிக்கும், நாங்கள் உண்மையான புள்ளி மற்றும் கோடி இடையே நேரடி தொலைவான (residual என்று அழைக்கப்படும்) அளவை அளவிடுகிறோம்.
ந்த தொலைவுகளை நாம் சதுரமாக்குகிறோம் இரண்டு முக்கிய காரணங்களுக்காக:
தைக் مربع முறையில் மதிப்பீடு செய்வதற்குக் காரணங்கள் இரண்டு:
1. **திசை மதிப்பு பொருட்டல்லாமல் அளவு முக்கியம்:** -5 என்ற தவறு +5 என்ற தவறுக்கு சமமாக கருத வேண்டும். சதுரம் எவ்வளவு இருந்தாலும் கொண்டு வரும்.
1. **திசை சாரா அளவு:** -5 என்ற பிழையை +5 பிழை போலவே கையாள்வது தேவை. مربع செய்வதால் அனைத்து மதிப்புகளும் நேர்மறை ஆனவை ஆகின்றன.
2. **விலகல் மதிப்புள்ளவைகளை தண்டித்தல்:** பெரிய பிழைகளை அதிகமாக எடுக்கும், இது கோட்டை அப்பொழுது விலகிய புள்ளிகளுக்குக் கூட அருகிலும் வைக்க முயல்கிறது.
2. **விலகிய தரவுகளுக்கு அதிகம் போக்குதல்:** பெரிய பிழைகள் இல் مربع அதிக மதிப்பளிக்கிறது, அதனால் கோடு அந்த புள்ளிகளுக்கு நெருக்கம் படுகிறது.
இத்தகைய சதுர மதிப்புகளை நாம் அனைவரையும் சேர்க்கிறோம். அந்த கூட்டு சிறிய மதிப்பு வரை இருக்கும் வகையில் கோட்டை கண்டறியும் முயற்சி செய்கிறோம்; அதுவே "குறைந்த-சதுரங்கள்" என்று அழைக்கப்படுகிறது.
பிறகு அனைத்து مربع மதிப்புகளையும் கூட்டுகிறோம். குறைந்தபட்சமான மொத்தம் (சிறந்த துல்லியத்துடன்) உள்ள கோட்டை கண்டுபிடிப்பதே நோக்கம்— அதனால் இது "Least-Squares" எனப்படும்.
> **🧮 கணிதத்தைப் பார்ப்போம்**
>
> இந்த கோட்டை, _சிறந்த பொருத்தக் கோடு_ எனப்படும், [இடைவெளி ரீதியியலில் காணப்படும் சமன்பாட்டின்](https://en.wikipedia.org/wiki/Simple_linear_regression) மூலம் எழுதப்படுகிறது:
> **🧮 எண்கணிதம் காட்டவும்**
> இது _சிறந்த பொருந்தக்கூடிய கோடு_ என அழைக்கப்படுகின்றது மற்றும் [ஒரு சமன்பாடால்](https://en.wikipedia.org/wiki/Simple_linear_regression) வெளிப்படுகிறது:
>
> ```
> Y = a + bX
> ```
>
> `X` என்பது 'விளக்கமாற்றி' (explanatory variable). `Y` என்பது 'மாறுபடி மாறி' (dependent variable). கோட்டின் சரிவு `b` ஆகும் மற்றும் `a` என்பது y-சந்திப்புச் நிலை, அதாவது `X = 0` என்ற போது `Y`'யின் மதிப்பு.
> `X` என்பது ‘விளக்க மாறி’. `Y` என்பது ‘மாறாக உள்ள மாறி’. கோட்டின் சாய்வு `b` ஆகும் மேலும் `a` என்பது y-இலக்கு, இது `X = 0` ஆகும் போது `Y`ன் மதிப்பை குறிக்கிறது.
>
>![சரிவைக் கணக்கிடு](../../../../translated_images/ta/slope.f3c9d5910ddbfcf9.webp)
>![calculate the slope](../../../../translated_images/ta/slope.f3c9d5910ddbfcf9.webp)
>
> முதலில், சரிவு `b` கணக்கிடவும். தகவல்நூல்: [Jen Looper](https://twitter.com/jenlooper)
> முதலில், சாய்வு `b`-ஐ கணக்கிடவும். தகவல்காட்சி [Jen Looper](https://twitter.com/jenlooper) என்பவருடையது
>
> வேறு சொற்களில், நமது பம்ப்கின் தரவின் அசல் கேள்விக்குத் திரும்பி பார்க்கும் போது: "ஒரு மாதத்தில் பம்ப்கின் விலையை புஷல் ஒன்றுக்கு கணிக்க செய்", `X` விலைபிரிவுக்கு, `Y` விற்பனை மாதத்துக்கு குறிக்கிறது.
> மற்றொரு வழியில் கூறுவதில், pumpkin தரவின் ஆரம்ப கேள்வியை கூறும் போது: "ஒரு pumpkin விலையை மாத வாரியாக predict செய்ய", `X` விலை மற்றும் `Y` விற்பனை மாதமாக இருக்கும்.
>
>![சமன்பாட்டைப் பூர்த்தி செய்](../../../../translated_images/ta/calculation.a209813050a1ddb1.webp)
>![complete the equation](../../../../translated_images/ta/calculation.a209813050a1ddb1.webp)
>
> Y-ன் மதிப்பை கணக்கிடுக. நீங்கள் சுமார் $4 செலுத்தினால், அது ஏப்ரல் மாதமாக இருக்கும்! தகவல்நூல்: [Jen Looper](https://twitter.com/jenlooper)
> Y இன் மதிப்பை கணக்கிடுங்கள். நீங்கள் $4 ஆல் பாவிக்கிறீர்கள் எனில் அது ஏப்ரல் மாதம் என்பதுதான்! தகவல்காட்சி [Jen Looper](https://twitter.com/jenlooper) என்பவருடையது
>
> கோட்டை கணக்கிடும் கணிதம் சரிவையும் சந்திப்பையும் வெளிப்படுத்த வேண்டும், அதாவது `X = 0` என்ற போது `Y` எங்கு வெளியாகிறது என்பதையும்.
> கோட்டின் சாய்வும், இப்படியே மதிப்பிடும் கோட்டின் இடைச்சேதம் (intercept) கூட Y இடம் நிரந்தரப்படுத்தும் இடமும் கணிதத்தில் அடங்கியிருக்க வேண்டும்.
>
> இந்த மதிப்புகளை அணுகும் முறையை [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) இணையதளத்தில் பார்க்கலாம். மேலும் [Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) இல் எண்களின் மதிப்புகள் கோட்டிற்கு எப்படி பாதகம் செய்கின்றன என காணலாம்.
## தொடர்பு_coef
## தொடர்பு (Correlation)
மற்றொரு புரிதல் முக்கியமானது என்பது கொடுக்கப்பட்ட X மற்றும் Y மாறிலிகளுக்கிடையேயான **தொடர்பு கூட்டி (Correlation Coefficient)**. ஸ்காட்டர்பிளாட்டைப் பயன்படுத்தி இம்மதிப்பை விரைவாக காணலாம். தரவுப் புள்ளிகள் நன்கு ஒரே கோட்டிலோ அண்டையில் இருந்தால் அதில் அதிக தொடர்பு இருக்கும், ஆனால் புள்ளிகள் எங்கு வேண்டுமானாலும் சாய்ந்து இருந்தால் குறைந்த தொடர்பு இருப்பதாகக் கணிக்கலாம்.
இன்னொரு முக்கியமான மாறி என்பது கொடுக்கப்பட்டு X மற்றும் Y மாறில்களுக்கு இடையேயான **Correlation Coefficient** ஆகும். scatterplot பயன்படுத்தி இதை விரைவாக காட்சி படுத்தலாம். தரவு புள்ளிகள் ஓர் நேரடி கோட்டில் சீராக பரவியிருந்தால் அதிக தொடர்பு, அந்நிலையை வாயிலாக புள்ளிகள் எங்கெங்கும் பரவியிருந்தாலும் குறைந்த தொடர்பு.
நல்ல நேரியல் ரிகிரெஷன் மாதிரி என்பது குறைந்த-சதுரங்கள் முறையைப் பயன்படுத்தி, 1க்கு அண்மையில் (0க்கு அருகில் இல்லாமல்) ஒரு அதிக தொடர்பு கூற்றைக் கொண்டதே ஆகும்.
சிறந்த linear regression மாதிரி, Least-Squares Regression முறையிலும் regression கோட்டுடன் Correlation Coefficient 1க்கு அருகிலும் (0க்கு அல்ல) இருப்பதே.
✅ இந்த பாடத்துடனான நோட்புக் இயக்கி, மாதத்தையும் விலையையும் காட்டும் ஸ்காட்டர்பிளாட்டைப் பாருங்கள். பம்ப்கின் விற்பனைக்கான மாதத்திற்கும் விலை இடையேயான தொடர்பு அதிகமா அல்லது குறைவா தெரிகிறதா? *மாதம்* எனினும், *ஆண்டின் நாள்* போன்ற சிதறலான அளவீடைக் பயன்படுத்தினால் அது மாறுமா?
✅ இந்த பாடத்திற்கான notebook இனை இயக்கு, Month மற்றும் Price இடையேயான scatterplot பார்க்கவும். Month மற்றும் Price இடையே தாவரவியல் தொடர்பு அதிகமாக இருக்கிறதா, குறைவா என்ற விவரமளித்துக் கொள்ளவும். இதை Month பதிலாக வருடத்தின் நாட்கள் (day of the year) போன்ற சுருக்கமான அளவீட்டுடன் மாற்றியால் நிலைமைகள் மாறுமா?
பின்வரும் குறியீட்டில், தரவு சுத்தமாக்பட்டதும் `new_pumpkins` என்ற புதிய தரவுத்தொகுப்பை பெற்றுள்ளோம் என்று நாம் எடுத்துக்கொள்கிறோம்.
கீழே உள்ள குறியீட்டில், தரவை சுத்திகரித்து, `new_pumpkins` எனும் data frame உருவாக்கிவிட்டோம், இதோ அதர்வானது:
ID | மாதம் | ஆண்டின் நாள் | விதம் | நகரம் | தொகுப்பு | குறைந்த விலை | உயர்ந்த விலை | விலை
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | பை வகை | பால்டிமோர் | 1 1/9 புஷல் பெட்டிகள் | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | பை வகை | பால்டிமோர் | 1 1/9 புஷல் பெட்டிகள் | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | பை வகை | பால்டிமோர் | 1 1/9 புஷல் பெட்டிகள் | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | பை வகை | பால்டிமோர் | 1 1/9 புஷல் பெட்டிகள் | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | பை வகை | பால்டிமோர் | 1 1/9 புஷல் பெட்டிகள் | 15.0 | 15.0 | 13.636364
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> தரவை சுத்தப்படுத்தும் குறியீடு [`notebook.ipynb`](notebook.ipynb) கோப்பில் உள்ளது. நாம் முந்தைய பாடத்துடன் ஒரே சுத்தப்படுத்தும் செயல்முறைகளை செய்துள்ளோம். `DayOfYear` நெட்வொர்க்கை பின்வரும் அலையில் கணக்கிட்டுள்ளோம்:
> தரவை சுத்திகரிக்கும் குறியீடு [`notebook.ipynb`](notebook.ipynb) இல் உள்ளது. கடந்த பாடத்தில் செய்த அதே சுத்திகரிப்பு நடவடிக்கைகள் கையாண்டோம். `DayOfYear` பத்தியை பின்வரும் வெளிப்பாட்டின் மூலம் உருவாக்கியுள்ளோம்:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
இப்போது நேரியல் ரிகிரெஷன் கணிதத்தை புரிந்துவிட்டதால், எந்த பம்ப்கின் தொகுப்பு சிறந்த விலைகளை தருமோ என்பதை கணிக்க ஒரு ரிகிரெஷன் மாதிரியை உருவாக்குவோம். பண்டிகை அருகில் பம்ப்கின் வாங்கும் ஒருவருக்கு இது அவர்களின் வாங்குதலை மேம்படுத்த உதவும்.
இப்போது linear regression மேலான கணிதம் புரிந்திருக்கிறது; pumpkin விலையில் எது சிறந்தது என்று predict செய்ய Regression மாதிரி உருவாக்குவோம். ஓர் pumpkin கிளப்புக்காக pumpkins வாங்கும் நபர், வாங்கும் தொகுதிகளை முறையாக தேர்ந்தெடுக்க இதன் உதவிச்செய்யலாம்.
## தொடர்ப தேடுதல்
## தொடர்ப தேடுதல்
[![ML ஆரம்ப நிலை - தொடர்பு தேடுதல்: நேரியல் ரிகிரெஷனின் மையம்](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
> 🎥 மேலே உள்ள படத்தை அழுத்தி தொடர்பின் சுருக்கமான காணொளி காட்சியூடாக பாருங்கள்.
> 🎥 மேலே உள்ள படத்தை கிளிக் செய்து தொடர்பு குறித்த சிறிய காணொளி பெறவும்.
முந்தைய பாடத்தில் இருந்து நீங்கள் பார்த்திருப்பீர்கள் மாதங்களுக்கு ஏற்ப சராசரி விலை இப்படி இருக்கும்:
கடந்த பாடத்தில், விதிவிலக்கு, மாதத்திற்கு பேராசை விலை இப்படியே இருந்தது என்று பார்த்திருப்பீர்கள்:
<img alt="மாதப்படி சராசரி விலை" src="../../../../translated_images/ta/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="Average price by month" src="../../../../translated_images/ta/barchart.a833ea9194346d76.webp" width="50%"/>
இதிலிருந்து தொடர்பு இருக்க வேண்டும் என்று தோன்றுகிறது; ஆகவே `Month` மற்றும் `Price` இடையேயான அல்லது `DayOfYear` மற்றும் `Price` இடையேயான உறவை கணிக்க நேரியல் ரிகிரெஷன் மாதிரியை பயிற்றுவிக்கலாம். கீழுள்ள ஸ்காட்டர் பிளாட் அதனைக் காட்டுகிறது:
இதன் மூலம் தொடர்பு இருக்கவேண்டும் என்றும், நாங்கள் linear regression மாதிரியை பயிற்சி செய்து `Month` மற்றும் `Price`, அல்லது `DayOfYear` மற்றும் `Price` இடையேயான தொடர்பை கணிக்கலாம். கீழே உடன் வரும் scatter plot, அந்த இரண்டாவது தொடர்பை காட்டுகிறது:
<img alt="Day of Year மற்றும் Price இடையேயான ஸ்காட்டர் பிளாட்" src="../../../../translated_images/ta/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/ta/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
`corr` செயல்பாட்டைப் பயன்படுத்தி தொடர்பு மதிப்பைப் பார்ப்போம்:
`corr` function பயன்படுத்தி தொடர்பு சரிபார்ப்போம்:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
இப்போதுபார 보면 தொடர்பு சிறியதுதான் போல இருக்கு, `Month`க்கு -0.15, `DayOfMonth`க்கு -0.17; ஆனால் வேறு முக்கிய உறவும்கூட இருப்பது போலத் தெரியிறது. விலை மாறுபடும் பம்ப்கின் வகைகளுக்கு தற்காலிக வகைப்படுத்தல்கள் இருக்கின்றன. இதனை உறுதிப்படுத்த, பழிவாங்கும் நிறம் வேறுபட்ட பம்ப்கின் பிரிவுகளைப் பார்க்கலாம். `scatter` வரைபடத்தில் `ax` அளவை கொடுத்தால் அனைத்து புள்ளிகளும் ஒரே வரைபடத்தில் இருக்கும்:
மாதத்தில் -0.15 மற்றும் தினத்தில் -0.17 ஆகியவை போன்ற குறைந்த தொடர்புகள் இருப்பதாக தெரிகிறது, ஆனால் வேறு முக்கியமான தொடர்பு இருக்கலாம். pumpkin வகைகள் விலை ஒருங்கிணைப்பின் வேறுபாடு இருப்பதாக தோன்றுகிறது. இதில் நம்பிக்கை பெற pumpkin வகைகளுக்கு வெவ்வேறு வண்ணங்களில் பரவியானது காட்டுவோம். `scatter` வரைபட செயல்பாட்டுக்கு `ax` அளவுருவை கொடுத்து அனைத்து புள்ளிகளையும் ஒரே வரைபடத்தில் காட்டலாம்:
```python
ax=None
@ -140,42 +139,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Day of Year மற்றும் விலை இடையேயான நிற வேறுபாடு உள்ள ஸ்காட்டர் பிளாட்" src="../../../../translated_images/ta/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/ta/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
நமது ஆராய்ச்சி கொண்டு வகையானது விற்பனைக் காலத்தைவிட அதிக தாக்கம் உண்டு என தெரிகிறது. இது ஒரு பட்டி வரைபடத்தில் தெளிவாகக் காணப்படுகிறது:
மாத இறுதியில் pumpkin வகை விலை மீது விடுவிக்கப்படும் விளைவுகள் தேதி விட அதிகமானது என்பதை மாதிரியாக்கலாம்:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="விலை மற்றும் வகை இடையேயான பட்டி வரைபடம்" src="../../../../translated_images/ta/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Bar graph of price vs variety" src="../../../../translated_images/ta/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
தற்போது நாம் 'பை வகை' என்ற ஒரு பம்ப்கின் வகை மீது கவனம் செலுத்துவோம். மற்றும் விற்பனை நாளின் விலைப்படுத்தலில் தாக்கத்தைக் காண்போம்:
நாம் 'pie type' pumpkin வகையில் மட்டும் கவனம் செலுத்தி நாளில் விலை மீது விலை விளைவுகளை பார்க்கலாம்:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Day of Year மற்றும் விலை இடையேயான பை வகை பம்ப்கின் ஸ்காட்டர் பிளாட்" src="../../../../translated_images/ta/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/ta/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
இப்போது `Price` மற்றும் `DayOfYear` இடையேயான தொடர்பின`corr` மூலம் கணக்கிடினால் `-0.27` வந்தால், இது கணிப்புப் மாதிரி பயிற்சிக்கு பொருத்தமாக இருப்பதைக் குறிக்கிறது.
இப்போது `Price` மற்றும் `DayOfYear` இடையேயான தொடர்பை `corr` மூலம் கணக்கிடினால், `-0.27` போன்ற மதிப்பை பெறுவீர்கள் அதாவது கணிப்புத் தன்மைக்கான மாதிரியின் பயிற்சி அர்த்தமுள்ளதாகும்.
> நேரியல் ரிகிரெஷன் மாதிரியை பயிற்றுவதற்கு முன் தரவு சுத்தமானதாக இருத்தல் அவசியம். காலியான மதிப்புகளை உள்ளடக்கிய தரவோடு நேரியல் ரிகிரெஷன் நன்றாக வேலை செய்யாது; ஆகவே காலியான செல்கள்லை அகற்றுவது நல்லது.
> linear regression பயிற்சி செய்யும் முன், தரவு சுத்தமாக இருப்பதை உறுதி செய்வது அவசியம். linear regression காணாமல் போன மதிப்புகளுடன் நல்ல செயல்பாட்டைத் தராது; ஆகையால் வெறும் காலியான செல்களை அகற்றுவது நன்றானது:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
மற்றொரு வழி அந்த காலியான மதிப்புகளை சார்ந்த நெடுவரிசையின் சராசரி மதிப்புகளால் நிரப்புவதுமாகும்.
மற்றொரு வழி காலியான மதிப்புகளை கோலத்தின் சராசரி மதிப்புகளால் நிரப்புவது.
## எளிய நேரியல் ரிகிரெஷன்
## எளிமையான நேரியல் Regression
[![ML ஆரம்ப நிலை - Scikit-learn மூலம் நேரியல் மற்றும் பன்முக ரிகிரெஷன்](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
> 🎥 மேலே உள்ள படம் கிளிக் செய்து நேரியல் மற்றும் பன்முக ரிகிரெஷனின் சுருக்க காணொளியைப் பாருங்கள்.
> 🎥 மேலே உள்ள படத்தை கிளிக் செய்து linear மற்றும் polynomial regression குறித்த சிறு வீடியோ பார்வை பெறவும்.
மது நேரியல் ரிகிரெஷன் மாதிரியை பயிற்றுவதற்கு **Scikit-learn** நூலகத்தைப் பயன்படுத்துவோம்.
ாம் Linear Regression மாதிரியை பயிற்சியிட Scikit-learn நூலகத்தை பயன்படுத்துவோம்.
```python
from sklearn.linear_model import LinearRegression
@ -183,70 +182,70 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
முதலில் உள்ளீட்டு மதிப்புகள் (அம்சங்கள்) மற்றும் எதிர்பார்க்கப்பட்ட வெளிப்பாடு (லேபிள்) வெவ்வேறு numpy வரிசைகளாக பிரிக்கப்பட்டு நிர்மாணிக்கப்படுகிறன:
முதல் நிலையாக உள்ளீட்டு மதிப்புகள் (அம்சங்கள்) மற்றும் எதிர்பார்க்கப்படும் வெளியீடு (குறி) பிரித்து numpy arrays ஆக மாற்றுவோம்:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> புகுபதிகை: உள்ளீட்டுப் தரவுகளுக்கு `reshape` செய்ய வேண்டியதாயிருக்கிறது, ஆகையால் Linear Regression தொகுப்பிற்கு அதை சரியாக புரிந்துகொள்ளும் வகையில் செய்ய வேண்டும். Linear Regression 2D வரிசையைப் பெறும், அதில் ஒவ்வொரு வரிசையும் உள்ளீட்டு அம்சங்கள் வெக்டாரை குறிக்கும். நமது நிலை ஒரு உள்ளீடு மட்டுமே இருக்கிறதால், N×1 வடிவமைப்புடைய வரிசை தேவையானது.
> எச்சரிக்கை: Linear Regression தொகுப்பை சரியாக புரிந்துகொள்ள,input தரவுகள் `reshape` செய்யப்பட்டு 2D array ஆக மாற்ற வேண்டியது அவசியம். Linear Regression 2D array (ஒரு வரி ஒரு அம்ச குறியீடு) வடிவம் எதிர்பார்க்கிறது. நமது வழியில், உள்ளீடு ஒன்றை மட்டும் கொண்டு இருப்பதால், வடிவம் 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` முறையைப் பயன்படுத்தி தரவுக்கு பொருத்துகிறோம்:
இறுதியில், Linear Regression மாதிரியை தவிர்க்க இரண்டு வரிகளிலேயே பயிற்சி செய்கிறது. `LinearRegression` பொருளை வரையறுக்கி, அதை `fit` முறையால் தரவுக்கு பொருத்துவோம்:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
`LinearRegression` பொருள் `fit` செய்த பின் அனைத்து ரெக்ரெஷன் கூற்றுக்கள் உள்ளன, அவற்றை `.coef_` சொத்தைக் கொண்டு அணுக முடியும். எங்கள் வழக்கில், ஒரு கூற்று மட்டுமே உள்ளது, அது சுமார் `-0.017` இருக்கும். இது விலை குறுகுவதாக தோன்றுகிறது, ஆனால் அதிகமாக இல்லை, தினத்திற்கு சுமார் 2 சென்ட். நாமே ரெக்ரெஷன் வரி Y-அச்சை எங்கே தாண்டுகிறது என்பதையும் `lin_reg.intercept_` மூலம் அணுகலாம் - எங்கள் வழக்கில் இது சுமார் `21`, ஆண்டு தொடக்க விலை குறிக்கிறது.
`LinearRegression` பொருள் `fit` செய்த பிறகு, அனைத்து ரெגרெஷன் коэффициентுகளை `.coef_` சொத்தைப் பயன்படுத்தி அணுக முடியும். எங்கள் நிலையில், ஒரு коэффициентே உள்ளது, அது `-0.017` கிட்டத்தட்ட இருக்க வேண்டும். இதன் பொருள், விலைகள் காலத்தோடு சிறிது குறையும் போலும், ஆனால் அதிகமாக அல்ல, ஒரு நாளுக்கு சுமார் 2 சென்ட். ரெגרெஷன் வையின் Y அச்சுடன் கட்டாயிடும் புள்ளியை `lin_reg.intercept_` மூலம் அணுகலாம் - இது எங்கள் நிலையில் சுமார் `21` இருக்கும், அதாவது வருடத்தின் தொடக்கத்தில் விலை.
எங்கள் மாதிரி எவ்வளவு துல்லியமானது என்பதை காண, நாமே சோதனை தரவு தொகுப்பில் விலைகளை எதிர்பார்த்து, பின்னர் எதிர்பார்க்கப்படும் மதிப்புகளுடன் எவ்வளவு நெருக்கமாக கிட்டுகிறது என்பது மதிப்பிடலாம். இது மொத்த சராசரி சதுர தவறுக்களை (MSE) பயன்படுத்தி செய்யலாம், இது எதிர்பார்த்த மதிப்புக்கும் கணிக்கப்பட்ட மதிப்புக்கும் இடையேயான அனைத்து சதுர வேறுபாடுகளின் சராசரி ஆகும்.
எங்கள் மாதிரி எவ்வளவு நுட்பமாக உள்ளது என்று பார்க்க, நாம் ஒரு சோதனை தரவுத்தொகுப்பில் விலை கணிக்கலாம், பிறகு எவ்வளவு நமது கணிப்புகள் எதிர்பார்க்கப்பட்ட மதிப்புகளுக்கு அருகில் உள்ளது என்பதை மதிப்பிடலாம். இது root mean square error (RMSE) அளவுகோலை பயன்படுத்தி செய்ய முடியும், இது எதிர்பார்க்கப்படும் மற்றும் கணிக்கப்பட்ட மதிப்புகளுக்கிடையேயான அனைத்து சதுர வேறுபாடுகளின் சராசரி வேர் ஆகும்.
```python
pred = lin_reg.predict(X_test)
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
```
ங்கள் பிழை சுமார் 2 புள்ளிகளாகும், இது ~17% ஆகும். மிகவும் நன்றாக இல்லை. மற்றொரு மாதிரி தரம் குறியீடு **தீர்மானக் கூற்று** ஆகும், இதை இப்படிக் கிடைக்க முடியும்:
மது பிழை சுமார் 2 புள்ளிகள் இருக்குமென தெரிகிறது, இது ~17% ஆகும். மிகவும் நன்றாக இல்லை. மாதிரி தரத்தின் மற்றொரு குறியீடு **coefficient of determination** ஆகும், இதைப் பின்வருமாறு பெறலாம்:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
மதிப்பு 0 என்றால், மாதிரி உள்ளீட்டு தரவை எடுத்துக்கொள்வதில்லை என்றும், *மிக மோசமான நேர்காணல் முன்மாதிரி* போல செயல்படுகிறது என்றும் பொருள், இது வெறும் முடிவின் சராசரி மதிப்பாகும். மதிப்பு 1 என்றால், நாம் எதிர்பார்க்கப்படும் அனைத்து வெளியீடுகளையும் முற்றிலும் கணிக்க முடியும் என்று பொருள். எங்கள் நிலையில், коэффициент சுமார் 0.06, இது மிகவும் குறைவாக உள்ளது.
மதிப்பு 0 என்றால், மாதிரி உள்ளீட்டு தரவை கணக்கில் எடுக்காது, மேலும் *மிக மோசமான நேரியல் கணிப்பாளர்* ஆக இருக்கும், அது வெறும் முடிவின் சராசரி மதிப்பாகும். மதிப்பு 1 என்றால், எதிர்பார்க்கப்படும் அனைத்து வெளியீடுகளையும் சரியாக கணிக்க முடியும். எங்கள் வழக்கில், கூற்று சுமார் 0.06 ஆகும், இது மிகவும் குறைவாகும்.
நாம் சோதனை தரவை ரெக்ரெஷன் வரியுடன் ஒன்றாக வரைந்து, எங்கள் வழக்கில் ரெக்ரெஷன் எப்படி செயல்படுகிறது என்று சிறந்த முறையில் காணலாம்:
சோதனை தரவுத்தொகுப்பைக் கூட்டி ரெเกஸ்ஸனின் கோட்டுடன் வரைபடம் வரைதல் மூலம் எமது மாதிரி எவ்வாறு செயல்படுகிறது என்பதை தெளிவாக பார்க்கலாம்:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
<img alt="Linear regression" src="../../../../translated_images/ta/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Polynomial Regression
மற்றொரு வகை நேரியல் ரெக்ரெஷன் என்பது பல்லியோமியல் ரெக்ரெஷன். சில நேரத்தில் மாறிலிகள் இடையே நேரியல் உறவுகள் இருக்கும் - அளவில் பெரிய பப்பாளி, விலை அதிகமாகும் - ஆனால் சில நேரங்களில் இந்த உறவுகளை சமத்தளமாக அல்லது நேரடியான கோடாக படம் பிடிக்க முடியாது.
Linear Regression இன் மற்றொரு வகை Polynomial Regression ஆகும். சில நேரங்களில், மாறிலிகளுக்கு நேர்காணல் தொடர்பு உள்ளது - ஒரு பூசணிக்காய் அதிக அளவில் இருந்தால் விலை உயர்ந்திருக்கும் - ஆனால் சில சமயங்களில் இத்தகைய தொடர்புகளை சமத்துவமான அல்லது நேரியல் கோட்டாக வரைய முடியாது.
✅ இங்கு [ சில எடுத்துக்காட்டுகள்](https://online.stat.psu.edu/stat501/lesson/9/9.8) உள்ளன, இவை பல்லியோமியல் ரெக்ரெஷன் பயன்படுத்த முடியும்
✅ இங்கு [இன்னும் சில எடுத்துக்காட்டுகள்](https://online.stat.psu.edu/stat501/lesson/9/9.8) உள்ளன, Polynomial Regression பயன்படும் தரவுக்கு
தேதி மற்றும் விலை இடையேயான உறவை மீண்டும் பாருங்கள். இந்த சித்திரப்பதிவு நேரடியான கோடு கொண்டு நிரூபிக்க வேண்டியதா என தோன்றுமா? விலைகள் மாறக்கூடும். இந்த வழியில், நீங்கள் பல்லியோமியல் ரெக்ரெஷன் முயற்சி செய்யலாம்.
Date மற்றும் Price இடையேயான தொடர்பை மறுபடியும் பாருங்கள். இந்த scatterplot நேர்காணல் கோட்டால் பகுப்பாய்வு செய்ய வேண்டுமா? விலை மாற்றமடைய முடியாது என்றாய்? இவ்வாறு இருந்தால், polynomial regression முயற்சி செய்யலாம்.
பல்லியோமிகள் என்பது ஒன்று அல்லது அதற்கு மேற்பட்ட மாறிகள் மற்றும் கூற்றுக்களைக் கொண்ட கணிதமான வெளிப்பாடுகள் ஆகும்
Polynomial என்பது ஒரு அல்லது அதற்கு மேற்பட்ட மாறிலிகள் மற்றும் коэффициентுகள் கொண்ட கணித வெளிப்பாடுகள் ஆகும்
பல்லியோமியல் ரெக்ரெஷன் சாராத தரவுகளை நல்ல முறையில் பொருந்துவதற்காக வளைந்த கோட்டை உருவாக்குகிறது. எங்கள் வழக்கில், நாமே `DayOfYear` என்ற மாறியை சதுரமாகச் சேர்த்தால், ஆண்டு முழுவதும் ஒரு குறைந்த மதிப்பு கொண்ட பாரபாலிக் வளைவு தரவுக்கு பொருந்தும்.
Polynomial regression ஒரு வளைந்த கோட்டைக் உருவாக்கி, நேரியல் அல்லாத தரவுக்கு சிறந்த பொருத்தத்தை அளிக்கிறது. எங்கள் நிலைமையில், வகையான `DayOfYear²` மாறியை உள்ளீடு தரவில் சேர்த்தால், நாம் ஒரு பரபோலிக் வளைவை பொருத்த முடியும், அதில் வருடத்தின் ஒரு குறிப்பிட்ட இடத்தில் குறைந்தபட்சம் இருக்கும்.
Scikit-learn முழுமையான [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) வழங்குகிறது, இது தரவுகளை ஒருங்கிணைக்க உதவுகிறது. **pipeline** என்பது பல **உருத்திகள்** கொண்ட நிரம்பாகும். எங்கள் வழக்கில், முதலில் பல்லியோமியல் அம்சங்களை சேர்த்து, பின்னர் ரெக்ரெஷன் பயிற்சி பெறும் pipeline ஒன்றைக் காண்போம்:
Scikit-learn ஆல் ஒரு பயனுள்ள [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) உள்ளது, இது தரவு செயலாக்க பல படிகளை ஒன்றிணைக்க உதவுகிறது. **pipeline** என்பது பல **estimators** வரிசையாகும். எங்கள் நிலையில், முதலில் polynomial பண்புகளை மாதிரிக்கு சேர்த்து, பிறகு ரெக்ரெஷன் பயிற்சி பெறும் pipeline ஒன்றை உருவாக்குவோம்:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -256,61 +255,61 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
`PolynomialFeatures(2)` பயன்படுத்துவது, உள்ளீடு தரவின் இரண்டாம் நிலை அனைத்து polynomial யையும் சேர்த்துக் கொள்வதை 의미ம். எங்கள் நிலைமையில் இது `DayOfYear²` ஆகும், ஆனால் இரண்டு மாறிலிகள் X மற்றும் Y என்றால், இது X², XY, Y² ஆகியவற்றை சேர்க்கும். மேல் நிலை polynomial களை நாங்கள் விரும்பினால் பயன்படுத்தலாம்.
`PolynomialFeatures(2)` பயன்படுத்துதல் நம் உள்ளீடு தரவில் இருந்து இரண்டாம் நிலை பல்லியோமியல்களைச் சேர் என குறிக்கிறது. எங்கள் வழக்கில் இது `DayOfYear`<sup>2</sup> மட்டும் வேண்டியிருக்கும், ஆனால் இரண்டு மாறிகள் X மற்றும் Y இருந்தால், X<sup>2</sup>, XY மற்றும் Y<sup>2</sup> அம்சங்கள் சேர்க்கப்படும். நாம் அதிக நிலை பல்லியோமியல்களையும் பயன்படுத்தலாம்.
pipelines அசல் `LinearRegression` பொருள் போலவே பயன்படுத்தலாம், அதாவது நாமே பணியிடும் வகையில் `fit` செய்து பின்னர் `predict` பயன்படுத்த முடியும. கீழே சோதனை தரவு மற்றும் அண்மிப்புக் கோட்டை காணப்படுகின்றன:
Pipelines ஐ இயல்பான `LinearRegression` பொருளின் மாதிரியே பயன்படுத்தலாம், அதாவது pipeline ஐ `fit` செய்து, பிறகு `predict` மூலம் கணிப்புகளை பெறலாம். கீழே சோதனை தரவும், பரபோலிக் பரப்பையும் காட்டியுள்ளோம்:
<img alt="Polynomial regression" src="../../../../translated_images/ta/poly-results.ee587348f0f1f60b.webp" width="50%" />
பல்லியோமியல் ரெக்ரெஷன் பயன்படுத்தி, எங்கள் MSE சற்று குறையும் மற்றும் தீர்மானம் அதிகரிக்கும், ஆனால் மிகவும் குறிப்பிடத்தக்க மாற்றமில்லை. மற்ற அம்சங்களையும் நாம் கருத்தில் கொள்ள வேண்டும்!
Polynomial Regression பயன்படுத்தி சில அளவிற்கு குறைந்த MSE மற்றும் அதிகமாகும் determination பெற முடியும், ஆனால் அதிக மாறுபாடு இல்லை. மற்ற பண்புகளையும் கவனிக்க வேண்டும்!
> குறைந்தபட்ச பப்பாளி விலைகள் ஹாலோவீன் காலத்தில் காட்சியளிக்கப்படுகின்றன. இதை எப்படி விளக்கலாம்?
> பீ பதங்களை அதிகரிக்கும் மிகக் குறைந்த விலைகள் ஹாலோவீன் சுற்றிலும் உள்ளது என்று நீங்கள் கவனித்தீர்களா? இதனை எப்படி விளக்கமுடியும்?
🎃 வாழ்த்துகள், நீங்கள் பை பப்பாளி விலையை கணிக்க உதவும் மாதிரியை உருவாக்கியுள்ளீர்கள். எல்லா பப்பாளி வகைகளுக்கும் அதே செயல்முறையை மீண்டும் செய்வதற்கும் முடியும், ஆனால் அது கடினம் தான். இப்போது பப்பாளி வகைகளை எங்கள் மாதிரியில் எவ்வாறு சேர்க்குவது என்பதை கற்கலாம்!
🎃 வாழ்த்துக்கள், நீங்கள் பை பீற்கூடிய பீ விலையை கணிக்க உதவும் மாதிரியை உருவாக்கினீர்கள். இதே சீரியல் முறையை அனைத்து பீ வகைகளுக்கும் பயன்படுத்தலாம், ஆனால் அது களைப்பானதாக இருக்கும். இப்போது உங்கள் மாதிரியில் பீ விதத்தை மாற்றுவது எப்படி என்று கற்றுக் கொள்வோம்!
## வழக்குக் குறிப்புகள்
## Categorical Features
சரியான உலகில், ஒரே மாதிரியைப் பயன்படுத்தி பல பப்பாளி வகைகளின் விலைகளை கணிக்க விரும்புகிறோம். ஆனால், `Variety` என்ற நெடுவரிசை, `Month` போன்ற நெடுவரிசைகளுக்கு மாறாக, எண்கள் இல்லாத மதிப்புகளை கொண்டுள்ளது. இவ்வாறான நெடுவரிசைகள் **வகைப்படுத்தப்பட்ட** என்று கூறப்படுகின்றன.
சரியான உலகில், நம்முடைய மாதிரி பல பீ விதங்களுக்கு விலை கணிக்க முடியும். ஆனால், `Variety` நெடுவரிசை `Month` போன்ற எண் சார்ந்த அல்லாத மதிப்புகளை கொண்டுள்ளது. இந்த நெடுவரிசைகள் **categorical** என அழைக்கப்படுகின்றன.
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
> 🎥 மேலே உள்ள படத்தில் வகைப்படுத்தப்பட்ட அம்சங்களை பயன்படுத்தும் குறுகிய வீடியோ தொகுப்பு உள்ளது.
> 🎥 தெரிந்துகொள்ள முக்கிய வீடியோ - categorical பண்புகளை எப்படி பயன்படுத்துவது.
இங்கே வகைப்படுத்தப்பட்ட விலை எவ்வாறு இருக்கிறது என்று பார்க்கலாம்:
இங்கு விதத்தின் அடிப்படையில் சராசரி விலை எப்படி உள்ளது பார்க்கலாம்:
<img alt="Average price by variety" src="../../../../translated_images/ta/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
கைப்படுத்தத்தை கருத்தில் கொள்ளும் முன்பு, முதலில் அதனை எண்களாக மாற்ற வேண்டும் அல்லது **என்கோடு** செய்ய வேண்டும். இதற்கான பல வழிகள் உள்ளன:
ிதத்தை எண்ணிக்கையாக மாற்ற, அதாவது **encode** செய்ய முதலில் அதை எண்கள் வடிவத்திற்குப் பதிக்க வேண்டும். இதற்குள் பல வழிகள் உள்ளன:
* எளிய **எண்கோடிங்** என்பது வகைகளின் பட்டியலை உருவாக்கி அதில் இருந்து பெயர் பதிலாக பட்டியலில் இருக்குமிட குறியீட்டை பயன்படுத்துவது. இது நேரியல் ரெக்ரெஷனுக்கு சிறந்தது அல்ல, ஏனெனில் நேரியல் ரெக்ரெஷன் அந்த எண் மதிப்பைக் கொண்டு தீர்வை கூற்றுக்குறிப்பாக்கும். எங்கள் வழக்கில், இந்த எண்ணைக் குறியீட்டும் விலையும் நேரியல் அல்ல என்று தெளிவாக உண்டு.
* **ஒன்-ஹாட் என்கோடிங்** என்பது `Variety` நெடுவரிசை 4 வேறு நெடுவரிசைகளாக மாற்றப்படும், ஒவ்வொரு வகைக்குமான ஒன்று. ஒவ்வொரு நெடுவரிசையும் அந்த வரி அந்த வகைக்குள் இருந்தால் `1`இல், இல்லையெனில் `0`இல் இருக்கும். இது நமது நேரியல் ரெக்ரெஷனில் 4 கூற்றுக்களை உருவாக்கும், ஒவ்வொரு வகைக்கும் தனித்தனியான ஆரம்ப விலை (அல்லது கூடுதல் விலை) உடையதாக இருக்கும்.
* எளிய **எண்ணியல் எண்கோவை** விதங்களின் பட்டியலை நோக்கி அமைத்து, பெயரை அந்த பட்டியலில் உள்ள இடமான எண்ணுடன் மாற்றும். இது linear regression க்கு நல்லதல்ல, ஏனெனில் linear regression அந்த எண்ணை நேரடி மதிப்பாக எடுத்துக்கொண்டு, சில коэффициентுகளுடன் கூடிய கூட்டலைச் செய்கிறது. எங்கள் நிலைகளில், இந்த எண்ணும் விலை இடையேயான தொடர்பு நேர்காணல் அல்ல என்பதுவரை, இத்தெரிவு நல்லது அல்ல.
* **One-hot encoding** என்பது `Variety` நெடுவரிசையை 4 வித்தியாசமான நெடுவரிசைகளாக மாற்றும், ஒவ்வொரு விதத்திற்கும் ஒரு நெடுவரிசை இருக்கும். அந்த வரி அந்த வகையாக இருந்தால் 1, இல்லையெனில் 0 ஆகும். இதனால் linear regression-ல் நான்கு коэффициентுகள் இருப்பார்கள், ஒவ்வொரு மாதியன் விதத்திற்கும் "தொடங்கு விலை" அல்லது "மேலதிக விலை" என பொறுப்பாக இருக்கும்.
கீழிற்க்காணும் குறியீடு வகையை ஒன்-ஹாட் என்கோட் செய்வதை காட்டுகிறது:
எப்படி வகையை one-hot encode செய்வது என்று கீழே காணலாம்:
```python
pd.get_dummies(new_pumpkins['Variety'])
```
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
ஒன்-ஹாட் இந்த வகையை உள்ளீடாகக் கொண்டு நேரியல் ரெக்ரெஷன் பயிற்சி பெறும் விதம்:
ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE
----|-----------|-----------|--------------------------|----------
70 | 0 | 0 | 0 | 1
71 | 0 | 0 | 0 | 1
... | ... | ... | ... | ...
1738 | 0 | 1 | 0 | 0
1739 | 0 | 1 | 0 | 0
1740 | 0 | 1 | 0 | 0
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
one-hot encoded variety ஐ உள்ளீடு கொண்டு linear regression பயிற்சி பெற `X` மற்றும் `y` தரவை சரியாக தயார் செய்யவேண்டும்:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
மீதமுள்ள குறியீடு மேலே நாம் பயன்படுத்திய `LinearRegression` பயிற்சிக்கான அதே மாதிரி. முயற்சித்தால், சராசரி சதுர தவறு அதே மாதிரியாகும், ஆனால் தீர்மானக் கூற்றின் மதிப்பு மிகவும் அதிகமாக (~77%) இருக்கும். மேலும் துல்லியமான கணிப்புகளுக்காக, பிற வகைப்படுத்தப்பட்ட அம்சங்களையும் மற்றும் எண் அம்சங்களையும் (எ.கா. `Month` அல்லது `DayOfYear`) சேர்க்கலாம். அனைத்து அம்சங்களையும் ஒரு பெரிய அடுக்கு உருவாக்க `join` பயன்படுத்தலாம்:
மீதியானக் குறியிடல் மேலே பயன்படுத்திய Linear Regression பயிற்சிக்குத் தன்னோடே அதே மாதிரியானது. முயற்சி செய்தால், சராசரி சதுர பிழை சுமார் அதே அளவில் இருக்கும், ஆனால் coefficient of determination அதிக வேகம் (~77%) பெறப்படும். மேலும் நுட்பமான கணிப்புகள் பெற, பல categorical பண்புகளை மேலும் எண்ணிக்கையான பண்புகளுடன் (`Month` அல்லது `DayOfYear` போன்ற) சேர்த்து, `join` உபயோகித்து ஒன்றாக கூட்டலாம்:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -319,12 +318,12 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
```
இங்கு மேலும் `City` மற்றும் `Package` வகையும் சேர்த்து, MSE 2.84 (10%), determination 0.94 கிடைத்துள்ளது!
இங்கே நாமும் `City` மற்றும் `Package` வகைகளை கருத்தில் கொள்ளின்றோம், இது MSE 2.84 (10%) மற்றும் தீர்மானம் 0.94 வழங்குகிறது!
## அனைத்தையும் இணைத்தல்
## அனைத்தையும் ஒருங்கிணைத்தல்
சிறந்த மாதிரியை உருவாக்க, மேலே கூறிய ஒருங்கிணைந்த (ஒன்-ஹாட் என்கோடட் வகைப்படுத்தப்பட்ட + எண்) தரவுகளுடன் பல்லியோமியல் ரெக்ரெஷனும் பயன்படுத்தலாம். இங்கே முழுமையான குறியீடு உங்களுக்கு உள்ளது:
சிறந்த மாதிரியை உருவாக்க, மேலே கொடுக்கப்பட்ட இணைந்த (one-hot encoded categorical + numeric) தரவை Polynomial Regression உடன் பயன்படுத்தலாம். இங்கே முழுமையான குறியீடு உள்ளது:
```python
# பயிற்சி தரவுகளை அமைக்கவும்
@ -334,54 +333,54 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
# பயிற்சி-சோதனை பிரிவை உருவாக்கவும்
# பயிற்சி மற்றும் சோதனை பாகங்களை பிரிக்கவும்
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# பைப்பலைன் அமைக்கவும் மற்றும் பயிற்சியிடவும்
# குழாய்க்குழியை அமைத்து பயிற்சி செய்யவும்
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# சோதனை தரவுகளுக்கான முடிவுகளை முன்னறிவிக்கவும்
# சோதனை தரவுகளுக்கான முன்னறிவிப்பை செய்யவும்
pred = pipeline.predict(X_test)
# MSE மற்றும் தீர்மானிப்பை கணக்கிடவும்
# MSE மற்றும் தீர்மானத்தை கணக்கிடவும்
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
இது சுமார் 97% determination коэффициентுடன் மற்றும் MSE=2.23 (~8% பிழை) தர வேண்டும்.
இது 97% கிட்ட அதற்கு அருகிலான தீர்மானக் கூற்றையும் MSE=2.23 (~8% கணிப்பு பிழை) தருவதாகும்.
| மாதிரி | MSE | தீர்மானம் |
|-------|-----|---------------|
| `DayOfYear` நேரியல் | 2.77 (17.2%) | 0.07 |
| `DayOfYear` பல்லியோமியல் | 2.73 (17.0%) | 0.08 |
| `Variety` நேரியல் | 5.24 (19.7%) | 0.77 |
| அனைத்து அம்சங்கள் நேரியல் | 2.84 (10.5%) | 0.94 |
| அனைத்தும் பல்லியோமியல் | 2.23 (8.25%) | 0.97 |
| Model | MSE | Determination |
|-------|-----|---------------|
| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 |
| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 |
| `Variety` Linear | 5.24 (19.7%) | 0.77 |
| All features Linear | 2.84 (10.5%) | 0.94 |
| All features Polynomial | 2.23 (8.25%) | 0.97 |
🏆 நன்றாக செய்தீர்கள்! இந்த பாடத்தில் நான்கு ரெக்ரெஷன் மாதிரிகள் உருவாக்கப்பட்டு, தரம் 97% ஆக மேம்பட்டது. கடைசி பகுதியில், வகைகளை வகைப்படுத்த பயன்படுத்தப்படும் லாஜிஸ்டிக் ரெக்ரெஷன் பற்றி கற்பீர்கள்.
🏆 நன்றாக செய்தீர்கள்! நீண்ட பாடத்தில் நான்கு Regression மாதிரிகள் உருவாக்கித் தேர்வு தரத்தை 97% வரை மேம்படுத்தினீர்கள். Regression இறுதி பகுதியில் நீங்கள் Logistic Regression பற்றி கற்றுக் கொண்டு வகைகளை தீர்மானிப்பீர்கள்.
---
## 🚀சவால்
இந்த நோட்புக்கில் பல்வேறு மாறிலிகளை சோதிக்க, ஒற்றுமை எவ்வாறு மாதிரி துல்லியத்துடன் பொருந்துகிறது என்பதைப் பாருங்கள்.
இந்த நோட்புக்கில் பல மாறிலிகளை சோதித்து, பொறுத்து மாதிரி நுட்பத்திற்கு எப்படி ஏற்படுகிறது என்று காண்க.
## [பாடத்திற்கு பின் கேள்விக்குப்பத்திரிக்கை](https://ff-quizzes.netlify.app/en/ml/)
## [பாட முடிந்த பிறகு விடைத் தேர்வு](https://ff-quizzes.netlify.app/en/ml/)
## மீளாய்வு & சுயகல்வி
## பார்வை & சுயபடிப்பு
இந்த பாடத்தில் நாம் நேரியல் ரெக்ரெஷன் கற்றோம். இன்னும் முக்கியமான ரெக்ரெஷன் வகைகள் உண்டு. Stepwise, Ridge, Lasso மற்றும் Elasticnet பற்றியும் படியுங்கள். மேலும் கற்றுக்கொள்ள நல்ல பாடமாக [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) உள்ளது.
இந்த பாடத்தில் Linear Regression பற்றி கற்றோம். மற்ற முக்கியமான Regression வகைகளும் உள்ளன. Stepwise, Ridge, Lasso மற்றும் Elasticnet தொழில்நுட்பங்களைப் பற்றிக் கற்றுக்கொள்ளுங்கள். இன்னும் அதிகமாக கற்க விரும்புவோருக்கு [Stanford Statistical Learning பாடநெறி](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) சாத்தியமாகும்.
## பணிக்கேள்
## பணியாளர் வேலை
[ஒரு மாதிரி உருவாக்கவும்](assignment.md)
[Model உருவாக்குக](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**கூறுதல்**:
இந்தக் கட்டுரையை AI மொழி மொழிபெயர்ப்பு சேவை [கோ-ஒப் மொழிபெயர்ப்பு](https://github.com/Azure/co-op-translator) பயன்படுத்தி மொழிபெயர்த்துள்ளது. நாங்கள் துல்லியத்தை உறுதிப்படுத்த முயற்சித்தாலும், தானாகத் தயாரிக்கப்படும் மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்க வாய்ப்பு இருக்கலாம். ஒவ்வொரு காலத்திய மொழியில் உள்ள அசல் ஆவணம் அதிகாரப்பூர்வ மூலமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பை பரிந்துரைக்கிறோம். இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்புப்படுத்தப்படமாட்டோம்.
**எச்சரிக்கை**:
இந்த ஆவணம் AI மொழிபெயர்ப்பு சேவை [Co-op Translator](https://github.com/Azure/co-op-translator) மூலம் மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் சரியான தன்மையை உறுதிப்படுத்த முயலுகிறோம், எனினும் தானியங்கி மொழிபெயர்ப்புகளில் தவறுகள் அல்லது பிழைகள் இருக்கக்கூடும் என்பதைக் கவனத்தில் கொள்ளவும். அசல் ஆவணம் அதன் சொந்த மொழியில் அதிகாரப்பூர்வ மூலமாகக் கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பை பயன்படுத்துவதால் ஏற்படும் தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்பாக மாறமாட்டோம்.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,17 +1,17 @@
# உணவுப் வகை வகைப்படுத்திகள் 1
# உணவுப்பான வகைப்பாட்டாளர்கள் 1
இந்த பாடத்தில், நீங்கள் சமநிலையான மற்றும் சுத்தமான தரவுகளால் நிரம்பிய, உணவுப் வகைகள் பற்றிய தரவுத்தொகுப்பைப் பயன்படுத்துவீர்கள்.
இந்த பாடத்தில், நீங்கள் சமீபத்தில் சேமித்த சமநிலை, சுத்தமான, அனைத்தும் உணவுப்பானங்கள் பற்றிய தரவுத்தொகுதியில் பயன்படுத்துவீர்கள்.
இந்த தரவுத்தொகுப்பைப் பயன்படுத்தி, _ஒரு குறிப்பிட்ட நாட்டின் உணவுப் வகையை பொருட்களின் குழுவின் அடிப்படையில் கணிக்க_ பல வகைப்படுத்திகளைப் பயன்படுத்துவீர்கள். இதைச் செய்யும் போது, வகைப்படுத்தல் பணிகளுக்கான ஆல்கொரிதங்களை எவ்வாறு பயன்படுத்தலாம் என்பதைப் பற்றி மேலும் அறிந்து கொள்வீர்கள்.
பல்வேறு வகைப்பாட்டாளர்களுடன் இந்த தரவுத்தொகுதியைப் பயன்படுத்தி, _ஒரு குறிப்பிட்ட தேசிய உணவுப்பானத்தை ஒரு குழு பொருட்களின் அடிப்படையில் முன்னறிவிப்பு செய்வீர்கள்_. இதைச் செய்யும்போது, வகைப்பாட்டுப் பணிகளுக்கு ஆல்காரிதங்களைக் எப்படி பயன்படுத்தலாம் என்பதைப் பற்றி மேலும் அறியலாம்.
## [பாடத்திற்கு முன் வினாடி வினா](https://ff-quizzes.netlify.app/en/ml/)
# தயாரிப்பு
## [முன்னங்கற்பாட امتحان](https://ff-quizzes.netlify.app/en/ml/)
# தயார் செய்தல்
நீங்கள் [பாடம் 1](../1-Introduction/README.md) முடித்திருக்கிறீர்கள் என்று கருதினால், இந்த நான்கு பாடங்களுக்கான அடிப்படை `/data` கோப்பகத்தில் _cleaned_cuisines.csv_ கோப்பு உள்ளதா என்பதை உறுதிப்படுத்துங்கள்.
நீங்கள் [பாடம் 1](../1-Introduction/README.md) முடித்துள்ளீர்கள் என நினைத்து, இந்த நான்கு பாடங்களுக்கு ரூட் `/data` கோப்பகத்தில் _cleaned_cuisines.csv_ கோப்பு இருப்பதை உறுதிப்படுத்திக்கொள்ளவும்.
## பயிற்சி - ஒரு நாட்டின் உணவுப் வகையை கணிக்க
## பயிற்சி - ஒரு தேசிய உணவுப்பானத்தை முன்னறிவி
1. இந்த பாடத்தின் _notebook.ipynb_ கோப்பகத்தில் Pandas நூலகத்துடன் அந்த கோப்பை இறக்குமதி செய்யுங்கள்:
1. இந்த பாடத்தின் _notebook.ipynb_ கோப்பகத்தில் பணியாற்றி, அந்த கோப்பையும் Pandas நூலகத்தையும் இறக்குமதி செய்க:
```python
import pandas as pd
@ -19,7 +19,7 @@
cuisines_df.head()
```
தரவுகள் இவ்வாறு இருக்கும்:
தரவு இதுவே போன்றது:
| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
@ -28,8 +28,9 @@
| 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1. இப்போது மேலும் சில நூலகங்களை இறக்குமதி செய்யுங்ள்:
1. இப்போது, மேலும் சில நூலகங்களை இறக்குமதி செய்க:
```python
from sklearn.linear_model import LogisticRegression
@ -39,14 +40,14 @@
import numpy as np
```
1. X மற்றும் y கோர்டினேட்டுகளை பயிற்சிக்கான இரண்டு தரவத்தொகுப்புகளாகப் பிரிக்கவும். `cuisine` லேபிள் தரவத்தொகுப்பாக இருக்கலாம்:
1. X மற்றும் y குறியீடுகளை இரண்டு தரவுத்தொகுதிகளாகப் பிரிக்கவும் பயிற்சிக்காக. `cuisine` என்ற பகுதி குறிச்சொற்கள் தரவுத்தொகுதியாக இருக்கலாம்:
```python
cuisines_label_df = cuisines_df['cuisine']
cuisines_label_df.head()
```
இது இவ்வாறு இருக்கும்:
இது இதுபோல் இருக்கும்:
```output
0 indian
@ -57,14 +58,14 @@
Name: cuisine, dtype: object
```
1. `Unnamed: 0` மற்றும் `cuisine` பத்திகளை `drop()` மூலம் நீக்கவும். மீதமுள்ள தரவங்களை பயிற்சிக்க கூடிய அம்சங்களாக சேமிக்கவும்:
1. அப்படியே `Unnamed: 0` மற்றும் `cuisine` என்ற பத்திகளை `drop()` மூலம் நீக்கவும். மீதமுள்ள தரவுகளை பயிற்சி பண்புகள் ஆகச் சேமிக்கவும்:
```python
cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
cuisines_feature_df.head()
```
உங்கள் அம்சங்கள் இவ்வாறு இருக்கும்:
உங்கள் பண்புகள் இதுபோல் தெரியும்:
| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
@ -74,85 +75,84 @@
| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
இப்போது உங்கள் மாதிரியைப் பயிற்சிக்க தயாராக இருக்கிறீர்கள்!
இப்பொழுது உங்கள் மாதிரியை பயிற்சி செய்ய தயாராக உள்ளீர்கள்!
## உங்கள் வகைப்படுத்தியைத் தேர்ந்தெடுக்கவும
## உங்கள் வகைப்பாட்டாளரைத் தேர்ந்தெடுத்தல
தரவுகள் சுத்தமாகவும் பயிற்சிக்க தயாராகவும் உள்ளதால், இந்த பணிக்கான ஆல்கொரிதத்தை தேர்ந்தெடுக்க வேண்டும்.
தரவு சுத்தமானதும் பயிற்சிக்கத் தயாரானதும், நீங்கள் எந்த ஆல்காரிதத்தை பயன்படுத்த என்ன தீர்மானிக்க வேண்டும்.
Scikit-learn வகைப்படுத்தலை Supervised Learning கீழ் குழுவாக்குகிறது, மற்றும் அந்த வகையில் பல வகைப்படுத்தல் முறைகளை காணலாம். [வகைகளின் பல்வேறு](https://scikit-learn.org/stable/supervised_learning.html) முறைகள் முதலில் குழப்பமாக தோன்றலாம். பின்வரும் முறைகள் அனைத்தும் வகைப்படுத்தல் தொழில்நுட்பங்களை உள்ளடக்கியவை:
Scikit-learn வகைப்பாட்டை கட்டுப்படுத்தப்பட்ட கற்றல் (Supervised Learning) என்ற பிரிவில் வைத்து, இதில் பல வகைக்கும் வழிகள் உண்டு. [இந்த வகைகள்](https://scikit-learn.org/stable/supervised_learning.html) முதலில் பார்ப்பதற்கு குழப்பமானவையாக இருக்கலாம். கீழ்க்காணும் முறைகள் அனைத்தும் வகைப்படு தொழில்நுட்பங்களை உள்ளடக்கியவை:
- நேரியல் மாதிரிகள்
- Support Vector Machines
- Stochastic Gradient Descent
- Nearest Neighbors
- Gaussian Processes
- Decision Trees
- Ensemble methods (voting Classifier)
- Multiclass மற்றும் multioutput ஆல்கொரிதங்கள் (multiclass மற்றும் multilabel வகைப்படுத்தல், multiclass-multioutput வகைப்படுத்தல்)
- நேரியல் மாடல்கள் (Linear Models)
- ஆதரவு வெக்டார் இயந்திரங்கள் (Support Vector Machines)
- புள்ளி குறைபாடு இறக்குமதி (Stochastic Gradient Descent)
- மிக அருகிய அயலவர்கள் (Nearest Neighbors)
- காசியம் செயலிகள் (Gaussian Processes)
- முடிவு மரங்கள் (Decision Trees)
- கொலு முறைகள் (voting Classifier)
- பலவகை மற்றும் பலவெளி ஆல்காரிதங்கள் (multiclass and multilabel classification, multiclass-multioutput classification)
> [நரம்பியல் வலைகளைப்](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) பயன்படுத்தி தரவுகளை வகைப்படுத்தலாம், ஆனால் அது இந்த பாடத்தின் வரம்புக்கு வெளியே உள்ளது.
> நீங்கள் தரவை வகைப்படுத்த [நியூரல் நெட்வொர்க்குகளை](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) தரவுப் பகுப்பாய்வுக்கு பயன்படுத்தலாம், ஆனால் அது இந்த பாடத்தின் வரம்புக்கு வெளியே உள்ளது.
### எந்த வகைப்படுத்தியைத் தேர்ந்தெடுப்பது?
### எந்த வகைப்பாட்டாளரை தேர்ந்தெடுக்கலாம்?
அப்படியென்றால், எந்த வகைப்படுத்தியை நீங்கள் தேர்ந்தெடுக்க வேண்டும்? பலவற்றைச் சோதித்து நல்ல முடிவைத் தேடுவது ஒரு வழியாக இருக்கலாம். Scikit-learn ஒரு [பக்கமொத்த ஒப்பீட்டை](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) வழங்குகிறது, KNeighbors, SVC இரண்டு வழிகள், GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB மற்றும் QuadraticDiscrinationAnalysis ஆகியவற்றை ஒப்பிட்டு, முடிவுகளை காட்சிப்படுத்துகிறது:
எந்த வகைப்பாட்டாளரை நீங்கள் தேர்ந்தெடுக்க வேண்டும்? பலவற்றை ஓடவிட்டு சிறந்த முடிவைக் காண்பது ஒரு வழி. Scikit-learn ஒரு [அருகில்-அருகு ஒப்பீடு](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) கொடுக்கும், இதில் KNeighbors, SVC இருவிதமாக, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB மற்றும் QuadraticDiscrinationAnalysis ஆகியவை ஒப்பிடப்பட்டுள்ளன கீழ்வருமாறு காட்டப்படுகின்றன:
![வகைப்படுத்திகளின் ஒப்பீடு](../../../../translated_images/ta/comparison.edfab56193a85e7f.webp)
> Scikit-learn ஆவணங்களில் உருவாக்கப்பட்ட வரைபடங்கள்
![வகைப்பாட்டாளர்கள் ஒப்பீடு](../../../../translated_images/ta/comparison.edfab56193a85e7f.webp)
> Scikit-learn ஆவணத்தில் உருவாக்கப்பட்ட வரைபடங்கள்
> AutoML இந்தப் பிரச்சினையை எளிதாகத் தீர்க்கிறது, இந்த ஒப்பீடுகளை மேகத்தில் இயக்கி, உங்கள் தரவுக்கான சிறந்த ஆல்கொரிதத்தைத் தேர்ந்தெடுக்க அனுமதிக்கிறது. [இங்கே முயற்சிக்கவும்](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML இந்தப் பிரச்சனையை மெக்ரோமாகச் சரி செய்யும், இந்த ஒப்பீடுகளை மேघத்தில் ஓட்டி, உங்கள் தரவுக்கு சிறந்த ஆல்காரிதத்தைத் தேர்வு செய்ய உதவும். அதை [இங்கு](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) முயற்சிக்கவும்.
### ஒரு சிறந்த அணுகுமுறை
### ஒரு சிறந்த நடைமுறை
குறிப்பிட்ட ஆல்கொரிதத்தைத் தேர்ந்தெடுப்பதற்கான ஒரு சிறந்த வழி, இந்த பதிவிறக்கக்கூடிய [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) ஐப் பின்பற்றுவது. இங்கே, நமது multiclass பிரச்சினைக்கான சில தேர்வுகளை காணலாம்:
வாயிலாக கணித்துப்போகவதைவிட, இந்த பதிவிறக்கக்கூடிய [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) உள்ள ஐடியாக்களை பின்பற்றுவது சிறந்தது. இங்கே, நமது பலவகை பிரச்சனையில், சில தேர்வுகள் உள்ளன:
![multiclass பிரச்சினைகளுக்கான cheat sheet](../../../../translated_images/ta/cheatsheet.07a475ea444d2223.webp)
> Microsoft's Algorithm Cheat Sheet இன் ஒரு பகுதி, multiclass வகைப்படுத்தல் விருப்பங்களை விவரிக்கிறது
![பலவகை பிரச்சனைகளுக்கு Cheatsheet](../../../../translated_images/ta/cheatsheet.07a475ea444d2223.webp)
> மைக்ரோசாஃப்ட்டின் ஆல்காரிதம் Cheat Sheet இல் பலவகை வகைப்பாட்டு விருப்பங்கள் விவரிக்கப்பட்டுள்ள பகுதி
✅ இந்த cheat sheet ஐ பதிவிறக்கி, அச்சிட்டு, உங்கள் சுவரில் தொங்கவிடுங்கள்!
✅ இந்த cheat sheet ஐ பதிவிறக்கம் செய்து, அச்சிட்டு உங்கள் சுவர்க்கு ஒட்டவும்!
### காரண
### காரணக் கூறல
ாம் கொண்டுள்ள கட்டுப்பாடுகளைப் பொருத்து, பல்வேறு அணுகுமுறைகளைப் பற்றி சிந்திக்கலாம்:
ம் கட்டுப்பாடுகளின் அடிப்படையில் பல்வேறு அணுகுமுறைகளை ஆராய்வோம்:
- **ரம்பியல் வலைகள் மிகப்பெரியது**. நமது சுத்தமான ஆனால் குறைந்த தரவுத்தொகுப்பை கருத்தில் கொண்டு, மற்றும் பயிற்சியை உள்ளூர் notebook களில் இயக்குவதால், நரம்பியல் வலைகள் இந்த பணிக்காக மிகப்பெரியது.
- **இரு வகை வகைப்படுத்தி இல்லை**. இரண்டு வகை வகைப்படுத்தியைப் பயன்படுத்தமாட்டோம், எனவே one-vs-all ஐ தவிர்க்க வேண்டும்.
- **Decision tree அல்லது logistic regression வேலை செய்யலாம்**. Decision tree வேலை செய்யலாம், அல்லது multiclass தரவுக்கான logistic regression.
- **Multiclass Boosted Decision Trees வேறு பிரச்சினையைத் தீர்க்கிறது**. Multiclass Boosted Decision Tree nonparametric பணிகளுக்கு மிகவும் பொருத்தமானது, உதாரணமாக தரவரிசைகளை உருவாக்கும் பணிகள், எனவே இது நமக்கு பயனுள்ளதாக இல்லை.
- **ியூரல் நெட்வொர்க்குகள் மிக அதிக பொருள்கள் கொண்டவை**. நம்முடைய சுத்தமான, ஆனாலும் குறைந்த அளவு தரவுத்தொகுதியையும், நொட்புக் குறிப்பு பதிவேடுகள் வழியாக பயிற்சி செய்கின்ற நிலையில் அது கைப்பற்ற முடியாது.
- **இரு-வகை வகைப்பாட்டாளரைப் பயன்படுத்தவில்லை**. ஆகையால் one-vs-all முறையைப் பயன்படுத்த தேவையில்லை.
- **முடிவு மரம் அல்லது லாஜிஸ்டிக் ரிக்ரெஷன் வேலை செய்யலாம்**. முடிவு மரம் ஒன்று வேலை செய்யக்கூடும் அல்லது பலவகை தரவுக்கு லாஜிஸ்டிக் ரிக்ரெஷன்.
- **பலவகை கூட்டு முடிவு மரங்கள் வேறு பிரச்சனைக்கு உகந்தவை**. பல்லாண்டு தூண்டுதலுடன் கூடிய முடிவு மரங்கள் அதிகரிப்பு வேலைகளுக்கு மிகச் சிறந்தவை, எனவே நமக்கு பொருத்தமல்ல.
### Scikit-learn ஐப் பயன்படுத்துதல்
### Scikit-learn பயன்படுத்துதல்
நாம் Scikit-learn ஐப் பயன்படுத்தி நமது தரவுகளைப் பகுப்பாய்வு செய்ய உள்ளோம். ஆனால், Scikit-learn இல் logistic regression ஐப் பயன்படுத்த பல வழிகள் உள்ளன. [கொடுக்க வேண்டிய அளவுருக்களைப்](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) பாருங்கள்.
நாம் Scikit-learn ஐ நமது தரவு பகுப்பாய்வுக்கு பயன்படுத்தப் போகிறோம். ஆனால், Scikit-learn இல் லாஜிஸ்டிக் ரிக்ரெஷனுக்கு பலவிதமான முறைகள் உள்ளன. [கொடுக்க வேண்டிய சீட்டைகள்](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) பாருங்கள்.
முக்கியமாக இரண்டு முக்கியமான அளவுருக்கள் - `multi_class` மற்றும் `solver` - உள்ளன, அவற்றை நாம் Scikit-learn ஐ logistic regression செய்ய கேட்கும்போது குறிப்பிட வேண்டும். `multi_class` மதிப்பு ஒரு குறிப்பிட்ட நடத்தைப் பயன்படுத்துகிறது. solver இன் மதிப்பு எந்த ஆல்கொரிதத்தைப் பயன்படுத்துவது என்பதை குறிப்பிடுகிறது. அனைத்து solvers ஐயும் அனைத்து `multi_class` மதிப்புகளுடன் இணைக்க முடியாது.
அந்த வகையில் இரண்டு முக்கிய சீட்டைகள் இருக்கின்றன - `multi_class` மற்றும் `solver` - இவற்றை Scikit-learn லாஜிஸ்டிக் ரிக்ரெஷன் செய்யும்போது நாம் குறிப்பிடவேண்டும். `multi_class` ஒரு நடத்தையை வகைப்படுத்தும். `solver` என்பதை எந்த ஆல்காரிதம் பயன்படுத்த வேண்டும் என்பதாகும். அனைத்து solver களும் எல்லா `multi_class` உருமாற்றங்களுக்கும் பொருந்தவில்லை.
ஆவணங்களின் படி, multiclass வழக்கில், பயிற்சி ஆல்கொரிதம்:
ஆவணங்கள் படி, பலவகை வழியிலான பயிற்சி ஆல்காரிதம்:
- **one-vs-rest (OvR) திட்டத்தைப் பயன்படுத்துகிறது**, `multi_class` விருப்பம் `ovr` ஆக அமைக்கப்பட்டால்
- **cross-entropy loss ஐப் பயன்படுத்துகிறது**, `multi_class` விருப்பம் `multinomial` ஆக அமைக்கப்பட்டால். (தற்போது `multinomial` விருப்பம் lbfgs, sag, saga மற்றும் newton-cg solvers மூலம் மட்டுமே ஆதரிக்கப்படுகிறது.)
- `multi_class` `ovr` என்றால் ஒருவகம்-எதிர் (one-vs-rest) திட்டத்தைப் பயன்படுத்தும்
- `multi_class` `multinomial` என்றால், குறுக்கேற்ற சதிப்பு இழப்பு (cross-entropy loss) ஐப் பயன்படுத்தும். (`multinomial` விருப்பம் தற்போது lbfgs, sag, saga மற்றும் newton-cg சொல்வர்களினால் மட்டுமே ஆதரிக்கப்படுகிறது.)
> 🎓 இங்கே 'scheme' என்பது 'ovr' (one-vs-rest) அல்லது 'multinomial' ஆக இருக்கலாம். Logistic regression உண்மையில் binary வகைப்படுத்தலுக்கு ஆதரவு அளிக்க வடிவமைக்கப்பட்டதால், இந்த திட்டங்கள் multiclass வகைப்படுத்தல் பணிகளைச் சிறப்பாக கையாள அனுமதிக்கின்றன. [source](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 இங்கே 'திட்டம்' என்றால் 'ovr' (ஒருவகம்-எதிர்) அல்லது 'multinomial' ஆக இருக்கலாம். லாஜிஸ்டிக் ரிக்ரெஷன் அடிப்படையில் இருநிலை வகுப்பு மெஷினாக உருவாக்கப்பட்டது, இவை பல்லாண்டு வகைப்பாட்டு பணிகளை சிறப்பாகச் செய்ய உதவும். [மூலம்](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'solver' என்பது "optimization பிரச்சினையில் பயன்படுத்த வேண்டிய ஆல்கொரிதம்" என வரையறுக்கப்பட்டுள்ளது. [source](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 செயலி (solver) என்பது "பெருமளவு பிரச்சனையில் பயன்படுத்தும் ஆல்காரிதம்" என்று வரையறுக்கப்பட்டுள்ளது. [மூலம்](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)
Scikit-learn இந்த அட்டவணையை வழங்குகிறது, solvers வெவ்வேறு தரவுத்தொகுப்புகளால் ஏற்படும் சவால்களை எவ்வாறு கையாளுகின்றன என்பதை விளக்க:
Scikit-learn கீழ்காணும் அட்டவணையைக் கொடுத்து, சொல்வர்கள் எப்படி பல்வேறு தரவு அமைப்புகளின் சவால்களை கையாள்கின்றன என்பதை விளக்குகிறது:
![solvers](../../../../translated_images/ta/solvers.5fc648618529e627.webp)
![சொல்வர்கள்](../../../../translated_images/ta/solvers.5fc648618529e627.webp)
## பயிற்சி - தரவுகளைப் பிரிக்க
## பயிற்சி - தரவைப் பிரி
நீங்கள் சமீபத்தில் ஒரு முந்தைய பாடத்தில் logistic regression பற்றி கற்றுக்கொண்டதால், நமது முதல் பயிற்சி முயற்சிக்காக அதைப் பயன்படுத்தலாம்.
`train_test_split()` ஐ அழைப்பதன் மூலம் உங்கள் தரவுகளை பயிற்சி மற்றும் சோதனை குழுக்களாகப் பிரிக்கவும்:
நீங்கள் சமீபத்தில் ஒரு பாடத்தில் லாஜிஸ்டிக் ரிக்ரெஷனைப் பயன்படுத்தி கற்றிருந்ததைக் கருத்தில் கொண்டால், முதலில் இதனை முயற்சிக்கலாம். `train_test_split()` அழைத்து தரவை பயிற்சிக்கும் மற்றும் சோதனைக் குழுக்களாக பிரிக்கவும்:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
```
## பயிற்சி - logistic regression ஐப் பயன்படுத்தவும்
## பயிற்சி - லாஜிஸ்டிக் ரிக்ரெஷன் பயன்பாடு
நீங்கள் multiclass வழக்கைப் பயன்படுத்துகிறீர்கள், எனவே எந்த _scheme_ ஐப் பயன்படுத்த வேண்டும் மற்றும் எந்த _solver_ ஐ அமைக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்க வேண்டும். LogisticRegression ஐ multiclass அமைப்புடன் மற்றும் **liblinear** solver ஐப் பயன்படுத்தி பயிற்சி செய்யுங்கள்.
நீங்கள் பலவகை வழிமுறையில் இருப்பதால், எந்த _திட்டத்தையும்_ மற்றும் எந்த _சொல்வரையும்_ பயன்படுத்த வேண்டும் என்பதைத் தேர்ந்தெடுக்க வேண்டும். பலவகை அமைப்புடன் **liblinear** சொல்வரை பயன்படுத்தி LogisticRegression ஐ பயிற்சி செய்யவும்.
1. multi_class ஐ `ovr` ஆக அமைத்து மற்றும் solver ஐ `liblinear` ஆக அமைத்து ஒரு logistic regression ஐ உருவாக்கவும்:
1. multi_class ஐ `ovr` ஆகவும் solver ஐ `liblinear` ஆகவும் அமைத்து ஒரு லாஜிஸ்டிக் ரிக்ரெஷன் உருவாக்கவும்:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
@ -162,29 +162,28 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
print ("Accuracy is {}".format(accuracy))
```
`lbfgs` போன்ற வேறு solver ஐ முயற்சிக்கவும், இது அடிக்கடி இயல்பாக அமைக்கப்படுகிறது
பலமுறை பயன்படுத்தப்படும் `lbfgs` போன்ற வேறு சொல்வர்களையும் முயற்சிக்கவும்
> கவனிக்கவும், Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) செயல்பாட்டை உங்கள் தரவுகளை flatten செய்ய பயன்படுத்தவும்.
> கவனிக்க, தேையான போது Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) செயலியைத் தரவை சீராக்க பயன்படுத்தவும்.
துல்லியம் **80%** க்கும் மேல் உள்ளது!
செம்மையான துல்லியம் **80%** க்கும் மேல்!
1. இந்த மாதிரியை ஒரு தரவுத்தொகுப்பு (#50) ஐ சோதனை செய்வதன் மூலம் செயல்படுவது பார்க்கலாம்:
1. ஒரு வரிசை (#50) மூலம் இந்த மாதிரியை சோதனை செய்து பார்க்கலாம்:
```python
print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
print(f'cuisine: {y_test.iloc[50]}')
```
முடிவு அச்சிடப்படுகிறது:
முடிவு அச்சிடப்படும்:
```output
ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
cuisine: indian
```
✅ வேறு வரிசை எண்ணை முயற்சித்து முடிவுகளை சரிபார்க்கவும்
1. மேலும் ஆழமாக, இந்த கணிப்பின் துல்லியத்தை சரிபார்க்கலாம்:
✅ வேறு வரிசை எண்ணை முயற்சித்துப் முடிவுகளைச் சரிபார்க்கவும்
1. மேலும் ஆழமாக ஆராய்ந்து, இந்த முன்கூட்டிய கணிப்பின் துல்லியத்தை நீங்கள் சரிபார்க்கலாம்:
```python
test= X_test.iloc[50].values.reshape(-1, 1).T
@ -196,7 +195,7 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
topPrediction.head()
```
முடிவு அச்சிடப்பட்டுள்ளது - இந்திய உணவு அதன் சிறந்த கணிப்பு, நல்ல சாத்தியத்துடன்:
முடிவை அச்சிடப்பட்டுள்ளது - இந்திய உணவு என்பது அதன் சிறந்த முன்னறிவு, நல்ல சாத்தியத்துடன்:
| | 0 |
| -------: | -------: |
@ -206,9 +205,9 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
| korean | 0.017277 |
| thai | 0.007634 |
மாடல் இது இந்திய உணவாக இருக்கிறது என்று நம்புவதற்கான காரணத்தை விளக்க முடியுமா?
இந்த மodel் இந்திய உணவு என்று pretty உறுதியாக இருக்கிறதென்று நீங்கள் ஏன் விளக்க முடியுமா?
1. ரிக்ரஷன் பாடங்களில் செய்தது போல, ஒரு வகைப்பாட்டு அறிக்கையை அச்சிட்டு மேலும் விவரங்களைப் பெறுங்கள்:
1. நீங்கள் ரெகிரஷன் பாடங்களில் செய்தது போல வகைப்படுத்தல் அறிக்கையை அச்சிடுவதன் மூலம் கூடுதல் விவரங்களை பெறுங்கள்:
```python
y_pred = model.predict(X_test)
@ -222,24 +221,26 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
| japanese | 0.70 | 0.75 | 0.72 | 220 |
| korean | 0.86 | 0.76 | 0.81 | 242 |
| thai | 0.79 | 0.85 | 0.82 | 254 |
| accuracy | 0.80 | 1199 | | |
| accuracy | | | 0.80 | 1199 |
| macro avg | 0.80 | 0.80 | 0.80 | 1199 |
| weighted avg | 0.80 | 0.80 | 0.80 | 1199 |
## 🚀சவால்
இந்த பாடத்தில், நீங்கள் உங்கள் சுத்தமான தரவுகளைப் பயன்படுத்தி ஒரு இயந்திரக் கற்றல் மாடலை உருவாக்கினீர்கள், இது பொருட்களின் தொடரின் அடிப்படையில் ஒரு தேசிய உணவை கணிக்க முடியும். Scikit-learn பல்வேறு தரவுகளை வகைப்படுத்துவதற்கான விருப்பங்களைப் படிக்க சில நேரம் ஒதுக்கவும். 'solver' என்ற கருத்தை மேலும் ஆழமாகப் புரிந்து கொள்ளுங்கள், பின்னணியில் என்ன நடக்கிறது என்பதைப் புரிந்து கொள்ள.
இந்த பாடத்தில், நீங்கள் உங்கள் சுத்திகரிக்கப்பட்ட தரவை பயன்படுத்தி ஒரு இயந்திரக் கற்றல் மாதிரியை கட்டியுள்ளீர்கள், இது ஒரு தொடர் பொருட்கள் அடிப்படையில் தேசிய உணவுப்பாடத்தை முன்னறிவிக்க முடியும். தரவை வகைப்படுத்தும் பல விருப்பங்களை Scikit-learn வழங்குகிறது என்பதைக் கவனித்து வாசிக்க சில நேரம் ஒதுக்குங்கள். பின்னணி உள்ள விடயங்களை புரிந்து கொள்ள 'solver' என்ற கருத்தில் மேலும் ஆழமாக பயின்று பாருங்கள்.
## [பாடத்திற்குப் பிந்தைய வினாடி வினா](https://ff-quizzes.netlify.app/en/ml/)
## [பாட விரிவாக்கக் குயிஸ்](https://ff-quizzes.netlify.app/en/ml/)
## மதிப்பீடு & சுயபடிப்பு
## மதிப்பாய்வு மற்றும் சுயபடைப்பு
லாஜிஸ்டிக் ரிக்ரஷனின் கணிதத்தை [இந்த பாடத்தில்](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) மேலும் ஆழமாகப் படிக்கவும்.
## பணிக்கூற்று
[இந்தப் பாடத்தில்](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) லாஜிஸ்டிக் ரெகிரஷனின் பின்னணியில் உள்ள கணிதத்தை மேலும் ஆய்வு செய்க
## பணிப்புரை
[சால்வர்களை படிக்கவும்](assignment.md)
[சால்வர்களைப் படியுங்கள்](assignment.md)
---
**குறிப்பு**:
இந்த ஆவணம் [Co-op Translator](https://github.com/Azure/co-op-translator) என்ற AI மொழிபெயர்ப்பு சேவையைப் பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சிக்கின்றோம், ஆனால் தானியங்கி மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறான தகவல்கள் இருக்கக்கூடும் என்பதை கவனத்தில் கொள்ளவும். அதன் தாய்மொழியில் உள்ள மூல ஆவணம் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் எந்த தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்பல்ல.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**தகவல் அறிவிப்பு**:
இந்த ஆவணம் AI மொழிபெயர்ப்பு சேவை [Co-op Translator](https://github.com/Azure/co-op-translator) மூலம் மொழிபெயர்க்கப்பட்டது. நாங்கள் துல்லியத்திற்காக முயலினாலும், தானியங்கி மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்கக் கூடும் என்பதை கவனத்தில் கொள்ளவும். அசல் ஆவணம் அதன் ஒரிஜினல் மொழியில் தான் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவலுக்கு, தொழில்முறை மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பின் பயன்பாட்டினால் ஏற்படும் எந்தவொரு தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்காக நாங்கள் பொறுப்பேற்கவில்லை.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -8,16 +8,16 @@
[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/)
### 🌐 பல மொழி ஆதரவு
### 🌐 பலமொழி ஆதரவு
#### GitHub Action மூலம் ஆதரவு (ஆட்டோமேட்டிக் & எப்போதும் புதுப்பிக்கப்படும்)
#### GitHub செயல்பாட்டின் மூலம் ஆதரிக்கப்பட்டது (தானாக நடந்துகொள்ளும் மற்றும் எப்போதும் புதுப்பிக்கப்படும்)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](./README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
[அரபிக்](../ar/README.md) | [பெங்காலி](../bn/README.md) | [பல்கேரியன்](../bg/README.md) | [பர்மீஸ் (மியான்மர்)](../my/README.md) | [சீன (எளிமைப்படுத்தப்பட்ட)](../zh-CN/README.md) | [சீன (பாரம்பரிய, ஹொங்கொங்க்)](../zh-HK/README.md) | [சீன (பாரம்பரிய, மகாவ்)](../zh-MO/README.md) | [சீன (பாரம்பரிய, தைவான்)](../zh-TW/README.md) | [குரோசியன்](../hr/README.md) | [செக்](../cs/README.md) | [டேனிஷ்](../da/README.md) | [டச்சு](../nl/README.md) | [எஸ்டோனியன்](../et/README.md) | [பின்னிஷ்](../fi/README.md) | [பிரெஞ்சு](../fr/README.md) | [ஜெர்மன்](../de/README.md) | [கிரேக்கம்](../el/README.md) | [ஹீப்ரூ](../he/README.md) | [இந்தி](../hi/README.md) | [ஹங்கேரியன்](../hu/README.md) | [இந்தோனீஷியன்](../id/README.md) | [இத்தாலியன்](../it/README.md) | [ஜப்பானிஸ்](../ja/README.md) | [கன்னடம்](../kn/README.md) | [கேமர்](../km/README.md) | [கொரியன்](../ko/README.md) | [லிதுவேனியன்](../lt/README.md) | [மலாய்](../ms/README.md) | [மலையாளம்](../ml/README.md) | [மராத்தி](../mr/README.md) | [நேபாளி](../ne/README.md) | [நைஜீரியன் பிட்ஜின்](../pcm/README.md) | [நார்வேஜியன்](../no/README.md) | [பர்சியன் (ஃபார்ஸி)](../fa/README.md) | [போலிஷ்](../pl/README.md) | [போர்ச்சுகீஸ் (பிரேசில்)](../pt-BR/README.md) | [போர்ச்சுகீஸ் (போர்ச்சுகல்)](../pt-PT/README.md) | [பஞ்சாபி (குருமுகி)](../pa/README.md) | [ரோமானியன்](../ro/README.md) | [ரஷியன்](../ru/README.md) | [செர்பியன் (சிரிலா)](../sr/README.md) | [ஸ்லோவக்](../sk/README.md) | [ஸ்லோவேனியன்](../sl/README.md) | [ஸ்பானிஷ்](../es/README.md) | [சுவாஹிலி](../sw/README.md) | [ஸ்வீடிஷ்](../sv/README.md) | [டகாலோக் (பிலிப்பைனோ)](../tl/README.md) | [தமிழ்](./README.md) | [தெலுங்கு](../te/README.md) | [தை](../th/README.md) | [துருக்கிய](../tr/README.md) | [உக்ரைனியன்](../uk/README.md) | [உருது](../ur/README.md) | [வியட்நாமீஸ்](../vi/README.md)
> **உள்ளூர் கிளோன் செய்ய விரும்புகிறீர்களா?**
> **உள்ளார்வமாக கிளோன் செய்ய விருப்பமா?**
>
> இந்த ரெப்போசிடரி 50+ மொழி மொழிபெயர்ப்புகளை உள்ளடக்கியதால் பதிவிறக்கும் அளவு குறிப்பிடத்தக்கது ஆகும். மொழிபெயர்ப்புகள் இல்லாமல் கிளோன் செய்ய sparse checkout பயன்படுத்தவும்:
> இந்த களஞ்சியத்தில் 50+ மொழி மொழிபெயர்ப்புகள் உள்ளன, அவை பதிவிறக்க அளவை பெரிதாக அதிகரிக்கின்றன. மொழிபெயர்ப்புகள் இல்லாமல் கிளோன் செய்ய, sparse checkout பயன்படுத்தவும்:
>
> **Bash / macOS / Linux:**
> ```bash
@ -33,62 +33,63 @@
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> இந்த முறையில் விரைவான பதிவிறக்கம் மூலம் பாடநெடுவை முடிக்க தேவையான அனைத்தும் கிடைக்கும்.
> இதனால் நீங்கள் இந்த பாடத்தொகுப்பை முடிக்க தேவையான அனைத்தையும் விரைவாக பதிவிறக்கம் செய்ய முடியும்.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### எங்கள் சமுதாயத்தில் சேரவும்
#### எமது சமூகத்தில் சேரவும்
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
நாங்கள் Discord வழியாக AI கற்றல் தொடர் நடத்தி வருகின்றோம், மேலும் விவரங்களுக்கு மற்றும் சேர்வதற்கு [Learn with AI Series](https://aka.ms/learnwithai/discord) இல் 18 - 30 செப்டம்பர், 2025 வரை இணைக. இங்கு நீங்கள் GitHub Copilot ஐ Data Scienceக்காக பயன்படுத்துவதற்கான குறிப்புகளையும் நுட்பங்களையும் பெறுவீர்கள்.
நாங்கள் ஒரு Discord "AI உடன் கற்றல்" தொடரை நடத்துகிறோம், மேலும் அறிய மற்றும் எங்களுடன் சேர [Learn with AI Series](https://aka.ms/learnwithai/discord) செப்டம்பர் 18 - 30, 2025 வரை. இதில் GitHub Copilotஐ புள்ளிவிவர அறிவியலுக்குப் பயன்படுத்துவதற்கான குறிப்பும் நடைமுறைகளும் கிடைக்கும்.
![Learn with AI series](../../translated_images/ta/3.9b58fd8d6c373c20.webp)
# ஆரம்பத்திற்கான மெஷின் லெர்நிங் - பாடத்திட்டம்
# துவக்கர்களுக்கான இயந்திரக் கற்றல் - ஒரு பாடத்திட்டம்
> 🌍 உலகத்தின் பல கலாச்சாரங்களின் வழியில் மெஷின் லெர்னிங்கை ஆராய்ந்து உலகம் சுற்றிப் பயணம் செய்யலாம் 🌍
> 🌍 உலகப்புகழ்பெற்ற பண்பாடுகளின் வழியாக இயந்திரக் கற்றலை ஆராய்ந்து உலகம் முழுவதும் பயணம் செய்யுங்கள் 🌍
Microsoft இல் உள்ள Cloud Advocates 12 வாரம், 26 பாடங்கள் கொண்ட முழு பாடத்திட்டத்தை வழங்குவதில் மகிழ்ச்சி அடைகின்றனர், இது **மெஷின் லெர்நிங்** பற்றியது. இந்த பாடத்திட்டத்தில், சில நேரங்களில் **சாதாரண மெஷின் லெர்நிங்** என்று அழைக்கப்படும், அதிகமாக Scikit-learn நூலகத்தை பயன்படுத்தி, ஆழ்ந்த கற்றல் தவிர்க்கப்படுகிறது; அதுதான் நமது [AI for Beginners' பாடத் திட்டத்தில்](https://aka.ms/ai4beginners) உள்ளடக்கப்பட்டுள்ளது. இதேபோல், இந்த பாடத்திட்டத்துடன் நமது ['Data Science for Beginners' பாடத்திட்டம்](https://aka.ms/ds4beginners) இணைத்து கற்கவும் பரிந்துரைக்கப்படுகிறது!
மைக்ரோசாஃப்ட் கிளவுட் ஆதரவாளர்கள் 12 வாரங்கள் நீளும் 26 பாடங்களைக் கொண்டு உங்களுக்கான **இயந்திரக் கற்றல்** பாடத்திட்டத்தை வழங்குகின்றனர். இந்த பாடத்திட்டத்தில் நீங்கள் சில நேரங்களில் **சாதாரணக் கற்றல்** என்று அழைக்கப்படும் ஒரு படி கற்றலைப் பற்றி கற்கப்போகிறீர்கள், இது பெரும்பாலும் Scikit-learn நூலகத்தை பயன்படுத்தி, ஆழமான கற்றலைத் தவிர்த்து அமைக்கப்பட்டுள்ளது, ஆழ்ந்த கற்றல் பற்றிய பாடங்கள் எங்கள் [AI for Beginners' curriculum](https://aka.ms/ai4beginners) இல் உள்ளன. இந்த பாடங்களுடன் எங்கள் ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) ஐ இணைக்கவும்!
உலகின் பல பகுதிகளிலிருந்து தரவுகளைப் பயன்படுத்தி இந்த பாரம்பரிய முறைகளை இயங்கவிடுவோம். ஒவ்வொரு பாடத்திற்கும் படிப்பதற்கு முன் மற்றும் பிறகு குவிட்ஸ், எழுதப்பட்ட விளக்கங்கள், தீர்வு, பணிகள் போன்றவை உள்ளன. நமது திட்ட அடிப்படையிலான கற்றல் முறையானது நீங்கள் கற்றுக் கொண்டதைக் கட்டியெழுப்புகையில் கற்றுக் கொள்கின்றீர்கள் என்பதைக்காட்டும், இது புதிய திறன்களை உறுதியுடன் கற்றுக்கொள்ள உதவுகிறது.
உலகின் பல்வேறு பகுதிகளிலிருந்து தரவுகளைச் கொண்டு நாம் இந்த சாதாரண நுட்பங்களை பயன்படுத்தி உலகம் முழுவதும் பயணம் செய்யலாம். ஒவ்வொரு பாடத்திலும் முன் மற்றும் பின் பாடத் தேர்வுகள், முழுமையாக எழுதப்பட்ட பாட வழிகாட்டல்கள், விடை, பணிகள் மற்றும் மேலும் பலவை உள்ளடக்கியுள்ளன. எங்கள் திட்டம் சார்ந்த பாசுரவியல் உங்களுக்கு புதிய திறன்களை கட்டியெழுப்பும் சிறந்த வழிமுறையைக் கற்றுக்கொள்ள உதவும்.
**✍️ எங்கள் எழுத்தாளர்களுக்கு இனிய நன்றிகள்** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu மற்றும் Amy Boyd
**✍️ எங்கள் எழுத்தாளர்களுக்கு ஆழ்ந்த நன்றி** ஜென் லூப்பர், ஸ்டீபன் ஹாவெல், பிரான்செஸ்கா லாஸ்ஸெரி, டொமொமி இமுரா, காசி பிரேவி, கட்மிற் சொஷ்நிக்கோவ், கிரிஸ் போலோயிங், அனிர்பன் முகர்ஜி, ஓர்னெல்லா அல்டுன்யான், ரூத் யாகுபு மற்றும் ஏமி பாராய்ட்
**🎨 எங்கள் பகுத்தறிவாளர்களுக்கும் நன்றி** Tomomi Imura, Dasani Madipalli மற்றும் Jen Looper
**🎨 எங்கள் வரைபடக்கலைஞர்களுக்கும் நன்றி** டொமொமி இமுரா, தசானி மாதிபள்ளி மற்றும் ஜென் லூப்பர்
**🙏 Microsoft மாணவர் தூதர்கள் எழுத்தாளர்கள், மதிப்பாய்வாளர்கள் மற்றும் உள்ளடக்க பங்களிப்பாளர்களுக்கு சிறப்பு நன்றி**, குறிப்பாக Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila மற்றும் Snigdha Agarwal
**🙏 சிறப்பு நன்றி 🙏 எங்கள் மைக்ரோசாஃப்ட் மாணவர் தூதர்கள் எழுத்தாளர்கள், மதிப்பாய்வாளர்கள், மற்றும் உள்ளடக்க பங்களிப்பாளர்கள்**, குறிப்பாக ரிஷித் டகலி, முகமது சகிப் கான் இனான், ரோகான் ராஜ், அலெக்ஸாண்ட்ரு பெட்ரெஸ்கு, அபிஷேக் ஜெய்ச்வால், நவ்ரின் தபாச்சும், இவான் சமுவிலா மற்றும் சினிக்தா அகர்வால்
**🤩 Microsoft மாணவர் தூதர்கள் Eric Wanjau, Jasleen Sondhi மற்றும் Vidushi Gupta அவர்களுக்கு எங்களது R பாடங்களுக்கு கூடுதல் நன்றி!**
**🤩 கூடுதல் நன்றி எங்கள் Microsoft Student Ambassadors எரிக் வஞ்சாவ், ஜாஸ்லீன் சோந்தி மற்றும் விதுஷி குப்தா எங்கள் R பாடங்களுக்கு!**
# துவக்கம
# தொடங்குதல
இந்த படிகளை பின்பற்றவும்:
1. **ரெப்போசிடரியை Fork செய்யவும்**: இப்பக்கம் இடது மேல் பக்கத்தில் உள்ள "Fork" பொத்தானை அழுத்தவும்.
2. **ரெப்போசிடரியை கிளோன் செய்யவும்**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
1. **களஞ்சியத்தை Fork செய்யவும்**: இந்தப் பக்கத்தின் வலது மேல் மூலைகணையில் உள்ள "Fork" பொத்தானைக் க்ளிக் செய்யவும்.
2. **களஞ்சியத்தை Clone செய்யவும்**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [இந்த பாடத் தொகுப்பு தொடர்பான மேலதிக வளங்களை எங்கள் Microsoft Learn தொகுப்பில் காணவும்](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [இந்த பாடத்திட்டத்திற்கு அனைத்து கூடுதல் வளங்களையும் எமது Microsoft Learn சேகரிப்பில் காணவும்](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **உதவி தேவைபடுகிறதா?** நிறுவல், அமைப்பு மற்றும் பாடங்கள் இயக்க பொதுவான பிரச்சனைகளுக்கான தீர்வுகள் [தொழில்நுட்ப வழிகாட்டி](TROUBLESHOOTING.md) இல் உள்ளன.
> 🔧 **உதவி வேண்டும்?** கணினியில் உள்ள கட்டமைப்பு, அமைப்பு மற்றும் பாடங்களை இயக்கும் பொதுவான பிரச்சினைகளுக்கான தீர்வுகளுக்காக எங்கள் [பிரச்சினை தீர்க்கும் கையேட்டை](TROUBLESHOOTING.md) பார்க்கவும்.
**[மாணவர்கள்](https://aka.ms/student-page)**, இந்த பாடத்திட்டத்தை பயன்படுத்த, முழு ரெப்போவை உங்கள் சொந்த GitHub கணக்கில் fork செய்து தனியாகவோ அல்லது குழுவாகவோ பயிற்சிகளை முடிக்கவும்:
- படிக்க முன்னர் ஒரு முன்னணி குவிஸ் தேர்வைத் தொடங்கவும்.
- பாடப் பகுதியை வாசித்து செயல்பாடுகளை செய்து, ஒவ்வொரு அறிவுக்குள்ளோடும் நிறுத்தி சிந்திக்கவும்.
- தீர்வு குறியீட்டை ஓடுமாறு பின்தொடராமல் நேரடியாகப் பாடங்களைப் புரிந்து கொண்டு திட்டங்களை உருவாக்க முயற்சிக்கவும்; ஆனால் அந்த குறியீடு ஒவ்வொரு திட்டவழி பாடத்திலும் `/solution` கோப்புறையில் கிடைக்கும்.
- படிப்புப் பிறகு ஒரு பின்னணி குவிஸ் அனுப்பவும்.
- சவாலை முடிக்கவும்.
- பணியை நிறைவேற்றவும்.
- ஒரு பாடக் குழுமத்தை முடித்த பிறகு, [அரசு சபையில்](https://github.com/microsoft/ML-For-Beginners/discussions) சென்று "கேள்வி பதிலளித்து" PAT ருப்ரிக் நிரப்பவும். 'PAT' என்பது முன்னேற்ற மதிப்பீடு கருவி ஆகும், இது உங்கள் கற்றலை மேலும் மேம்படுத்தும் உதவிக் கருவி. மற்ற PAT களுக்கு நாங்கள் ஒன்றாக கற்றுக்கொள்ளவும் முடியும்.
**[மாணவர்கள்](https://aka.ms/student-page)**, இந்த பாடத்திட்டத்தை பயன்படுத்த, முழு களஞ்சியத்தையும் உங்கள் சொந்த GitHub கணக்கில் fork செய்து தனிமையாக அல்லது குழுவாக பயிற்சிகளை செய்யவும்:
> மேலதிகமாக கற்றுக்கொள்ள, இந்த [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) வகுப்புகள் மற்றும் கற்றல் பாதைகளைக் காண்பது பரிந்துரைக்கப்படுகிறது.
- ஒரு முன்-பாடத் தேர்ச்சியுடன் தொடங்கவும்.
- பாடங்களை வாசித்து செயல்பாடுகளை முடிக்கவும், ஒவ்வொரு அறிவுக் கட்டுப்பாடிலும் இடைநிறுத்தி சிந்திக்கவும்.
- தீர்வு குறியீட்டை இயக்குவதற்குப் பதிலாக பாடங்களை புரிந்து கொண்டு திட்டங்களை உருவாக்க முயற்சிக்கவும்; ஆனால் அந்த குறியீடு ஒவ்வொரு திட்டம் சார்ந்த பாடத்திலும் `/solution` கோப்புறையில் கிடைக்கும்.
- பாடம் முடிந்த பிறகு ஒரு பின்-பாடத் தேர்வை எடுத்துக்கொள்ளவும்.
- சவால் செய்து முடிக்கவும்.
- பணிகளை நிறைவேற்றவும்.
- பாட உறுப்பு முடிந்ததும், [விவாத பலகையை](https://github.com/microsoft/ML-For-Beginners/discussions) கிழக்கு கிளிக் செய்து தத்ரூபமாக 'PAT' மதிப்பீட்டு கருவி (Progress Assessment Tool) ஆல் உங்கள் கற்றலை வெளிப்படுத்தவும். 'PAT' என்பது நீங்கள் நிறைவேற்றும் ஒரு மதிப்பீட்டு வடிவம். மற்ற PAT களுக்கும் பதிலளித்து நாம் ஒன்றாக கற்றுக் கொள்ளலாம்.
**ஆசிரியர்கள்**, இந்த பாடத்திட்டத்தை எவ்வாறு பயன்படுத்துவது என சில பரிந்துரைகள் [கடந்துவிட்டன](for-teachers.md).
> மேலதிகக் கற்றலை விரும்பினால், இந்த [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) தொகுப்புகள் மற்றும் கற்றல் பாதைகளை பின்பற்ற பரிந்துரைக்கிறோம்.
**ஆசிரியர்கள்**, இந்த பாடத்திட்டத்தை எப்படி பயன்படுத்துவது பற்றி சில [சூழலை](for-teachers.md) எங்களால் வழங்கியுள்ளோம்.
---
## வீடியோ வழிகாட்டல்கள்
சில பாடங்கள் குறுகிய வீடியோ வடிவத்தில் கிடைக்கின்றன. நீங்கள் அவற்றை பாடங்களில் நேரடியாகவும், அல்லது [ML for Beginners மைக்ரோசாஃப்ட் டெவலப்பர் யூடியூப் சேனல் பிளேலிஸ்டில்](https://aka.ms/ml-beginners-videos) கீழே உள்ள படத்தை கிளிக் செய்து காணலாம்.
சில பாடங்கள் குறுகிய ஆவணப்படிவ வீடியோவாக கிடைக்கின்றன. இவற்றை பாடங்களில் நேரடியாக பார்வையிடவோ அல்லது [Microsoft Developer YouTube சேனல்上的 ML for Beginners பிளேலிஸ்டில்](https://aka.ms/ml-beginners-videos) கீழே உள்ள படத்தை கிளிக் செய்து பார்க்கலாம்.
[![ML for beginners banner](../../translated_images/ta/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -98,140 +99,151 @@ Microsoft இல் உள்ள Cloud Advocates 12 வாரம், 26 பா
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**GIF உருவாக்கியவர்** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif இல் செய்முறை** [மோஹித் ஜெய்சால்](https://linkedin.com/in/mohitjaisal)
> 🎥 மேல் படத்தை கிளிக் செய்து, திட்டம் மற்றும் அதை உருவாக்கியோரின் வீடியோவைப் பார்க்கவும்!
> 🎥 இந்த படத்தை கிளிக் செய்து திட்டம் மற்றும் அதை உருவாக்கியவர்கள் பற்றிய வீடியோவைப் பார்வையிடவும்!
---
## கல்வியியல்
## பாசுரவியல்
இந்த பாடத்திட்டத்தை உருவாக்கும்போது இரண்டு கல்வியியல் கொள்கைகளைத் தேர்ந்தெடுத்தோம்: இது கைபிடி **திட்ட அடிப்படையிலான**தன்மையுடன் இருக்க வேண்டும் மற்றும் **அடிக்கடி குவிட்ஸ்** அடங்கியதாக இருக்க வேண்டும் என்பதையும். மேலும், இந்த பாடத்திட்டத்துக்கு ஒரே கட்டமைப்பில் ஒரு **தீம்** உள்ளது.
இந்த பாடத்திட்டத்தை உருவாக்கும்போது, இரண்டு பாசுரவியல் கொள்கைகளை நாம் தேர்ந்தெடுத்திருக்கிறோம்: இது கையெழுத்து செய்யக்கூடிய, **திட்டம் சார்ந்த** மாதிரி இருக்க வேண்டும் மற்றும் அதில் **அடிக்கடி தேர்வுகள்** இடம்பெற வேண்டும். கூடுதலாக, இந்த பாடத்திட்டத்திற்கு ஒரே **தீம்** உள்ளது, அது ஒருங்கிணைக்கும் வகையில்.
உள்ளடக்கம் திட்டங்களோடு ஒத்துழைப்பானதாக உறுதி செய்யப்படுவதால், மாணவர்களுக்கு இது மேலும் ஈடுபாட்டானதாகவும் கருத்துக்கள் நிலைத்திருக்கும் முறையாக்கும். கூடுதலாக, வகுப்பு முன் ஒரு குறைந்த ரிஸ்க் குவிஸ் மாணவரின் பகையை கற்று கொள்ளும் நோக்கம் செலுத்தும், வகுப்பு முடிந்த பின் ஒரு இரண்டாம் குவிஸ் ஒவ்வொரு விஷயத்தின் சிறந்த நினைவாற்றலை உறுதியாக்கும். நீங்கள் இதனை முழுமையாகவோ அல்லது பகுதி பாகமாகவோ எடுக்கலாம், மேலும் இந்த திட்டங்கள் தொடக்கத்தில் மிகச் சிறியவை இரு பின்னர் 12 வார சுற்று முடிவுக்கு மிகுந்த சிக்கலானவை ஆகின்றன. இந்த பாடத்திட்டத்தில் ML இன் நிஜ உலக பயன்பாடுகள் பற்றிய ஒரு பின்னூட்டமும் இருக்கு, இது கூடுதல் மதிப்பெண் அல்லது விவாதத்திற்கான அடிப்படையாக பயன்படுத்தலாம்.
உள்ளடக்கங்கள் திட்டங்களுக்கு இணங்கும் வகையில் அமைந்ததால் மாணவர்களுக்கு சுவாரஸ்யமானதாகவும் கருத்துக்கள் நிலைத்து நிறுத்தத்திற்கும் இருக்கும். வகுப்புக்கு முன் குறைந்த இடர்பாடும் உள்ள தேர்வு மாணவரின் கற்றல் மனநிலையை அமைக்கும், வகுப்புக்குப் பிறகு இரண்டாவது தேர்வு மேலதிக நினைவாற்றலுக்கு உதவும். இந்த பாடத்திட்டம் வளைந்தும் சந்தோஷமாகவும் இருக்கும் வகையில் வடிவமைக்கப்பட்டுள்ளது மற்றும் முழுமையாக அல்லது பகுதி பகுதி எடுத்துக் கொள்ளலாம். 12 வார சுழற்சியின் நிறைவில் திட்டங்கள் சிறியதிலிருந்து வேகமாக கூர்மையானதாக மாறும். மேலும் இங்கு இயந்திரக் கற்றல் விருப்பப் புள்ளிகளின் பயன்பாடுகளுக்கும் ஒரு பின்னூட்டமும் உள்ளது, இதை கூடுதல் ക്രெடிட் ஆகவோ அல்லது விவாதத்துக்குப் பயன்படுத்தலாம்.
> எங்கள் [டத்தை விதிகள்](CODE_OF_CONDUCT.md), [பங்களிப்பு வழிகாட்டி](CONTRIBUTING.md), [மொழிபெயர்ப்புகள்](..), மற்றும் [தொழில்நுட்ப வழிகாட்டி](TROUBLESHOOTING.md) கையேட்களை காணவும். உங்கள் கட்டுமான கருத்துக்களை வரவேற்கிறோம்!
> எங்கள் [ெறிமுறை](CODE_OF_CONDUCT.md), [பங்களிப்பு](CONTRIBUTING.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** கோப்பை குறிக்கிறது, இது `code chunks` (R அல்லது பிற மொழிகளை) மற்றும் `YAML header`-ஐ (PDF போன்ற வெளியீடுகளை வடிவமைக்க வழிகாட்டும்) `Markdown document`-ல் ஒருங்கிணைக்கும் வடிவமாக வரையறுக்கலாம். இதனால், உங்கள் கோ드를, அதன் வெளியீடுகளை மற்றும் உங்கள் எண்ணங்களை Markdown இல் எழுதுவதன் மூலம் இணைக்கக் கூடிய ஒரு சிறந்த ஆசிரியர் வடிவமைப்பாக இது செயல்படுகிறது. மேலும், R Markdown ஆவணங்களை PDF, HTML, அல்லது Word போன்ற வெளியீடு வடிவங்களில் உருவாக்கலாம்.
- [ின்-பாடக் களஞ்சியத் தேர்வு](https://ff-quizzes.netlify.app/en/ml/)
> **மொழிகள் பற்றி ஒரு குறிப்புரை**: இந்த பாடங்கள் முதன்மையாக Python-ல் எழுதப்பட்டிருக்கின்றன, ஆனால் பலவும் R-ல் கிடைக்கின்றன. ஒரு R பாடத்தை முடிக்க, `/solution` கோப்பகத்துக்கு சென்று R பாடங்களை தேடுங்கள். அவற்றில் ஒரு .rmd நீட்சியுடைய файл உள்ளது, அது ஒரு **R மார்க்டவுன்** கோப்பாகும், இது `code chunks` (R அல்லது பிற மொழிகளின்) மற்றும் ஒரு `YAML header` (PDF போன்ற அவுட்புட்களை எப்படிப்பட்ட முறையில் உருவாக்குவது என்பதை வழிநடத்தும்) கொண்ட ஒரு `Markdown document` என்று எளிதாக வரையறுக்கப்படலாம். அதனால், இது தரவியல் அறிவியலுக்காக ஒரு சிறந்த எழுத்து வடிவமைப்பு கருவியாக இருந்து உங்கள் குறியீடு, அதன் அவுட்புட்கள் மற்றும் உங்கள் எண்ணங்களை மார்க்டவுனில் எழுதுவதன் மூலம் இணைக்க அனுமதிக்கிறது. கூடவே, R மார்க்டவுன் கோப்புகள் PDF, HTML, அல்லது Word போன்ற வெளியீটுக் கோப்புகளாக உருவாக்கப்படலாம்.
> **வினாக்குழிப்புரைகள் குறித்து ஒரே குறிப்பு**: அனைத்து வினாக்களும் [Quiz App folder](../../quiz-app) இல் உள்ளன, அதில் ஒவ்வொன்றிலும் மூன்று கேள்விகள் கொண்ட 52 வினா தொகுப்புகள் உள்ளன. அவை பாடங்களுக்குள் இணைக்கப்பட்டுள்ளன ஆனால் Quiz App-ஐ உள்ளூராக இயக்கலாம்; உள்ளூர் ஹோஸ்ட் அல்லது Azure-க்கு வெளியிட `quiz-app` கோப்பகத்தில் உள்ள வழிமுறைகளை பின்பற்றவும்.
> **க்விஸ் பற்றிய குறிப்புரை**: அனைத்து க்வில்களும் [Quiz App கோப்பகத்தில்](../../quiz-app) உள்ளன, மொத்தம் 52 க்விஸ்கள், ஒவ்வொன்றும் மூன்று கேள்விகள் கொண்டவை. அவை பாடங்களில் இருந்து இணைக்கப்பட்டுள்ளன ஆனால் க்விஸ் செயலியை உள்ளூர் கருவியில் இயக்கலாம்; `quiz-app` கோப்பகத்தில் உள்ள வழிமுறைகளை பின்பற்ற, உள்ளூர் உலால் மூலம் ஹோஸ்ட் செய்ய அல்லத Azure இல் பிரசாரம் செய்யலாம்.
| பாடத் தொகுதி எண் | தலைப்பு | பாடத் தொகுப்பு | கற்றல் குறிக்கோள்கள் | இணைக்கப்பட்ட பாடம் | ஆசிரியர் |
| பாட எண்ணிக்கை | தலைப்பு | பாட குழுமம் | கற்றல் நோக்கங்கள் | இணைக்கப்பட்ட பாடம் | ஆசிரியர் |
| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: |
| 01 | இயந்திரக் கற்றல் அறிமுகம் | [அறிமுகம்](1-Introduction/README.md) | இயந்திரக் கற்றலின் அடிப்படைக் கருத்துக்களை கற்பது | [பாடம்](1-Introduction/1-intro-to-ML/README.md) | மும்மது |
| 02 | இயந்திரக் கற்றலின் வரலாறு | [அறிமுகம்](1-Introduction/README.md) | இந்த துறையின் வரலாறை கற்பது | [பாடம்](1-Introduction/2-history-of-ML/README.md) | ஜென் மற்றும் மி |
| 03 | நீதி மற்றும் இயந்திரக் கற்றல் | [அறிமுகம்](1-Introduction/README.md) | நீதி சார்ந்த முக்கிய தத்துவப்பரப்புகளைக் குறித்து மாணவர்கள் என்ன கருத்தில் கொள்ள வேண்டும்? | [பாடம்](1-Introduction/3-fairness/README.md) | தமோமி |
| 04 | இயந்திரக் கற்கல் தொழில்நுட்பங்கள் | [அறிமுகம்](1-Introduction/README.md) | இயந்திரக் கற்றல் மாதிரிகளை உருவாக்க எவற்றைப் பயன்படுத்துகிறார்கள்? | [பாடம்](1-Introduction/4-techniques-of-ML/README.md) | கிறிஸ் மற்றும் ஜென் |
| 05 | பின்வட்டார அறிமுகம் | [பின்வட்டாரம்](2-Regression/README.md) | பைதான் மற்றும் ஸ்கைகிட்-ல்ர்ன் பயன்பாட்டில் regression மாதிரிகள் உருவாக்க தொடங்குதல் | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ஜென் • எரிக் வாஞ்சௌ |
| 06 | வட அமெரிக்க பாம்பரின் விலைகள் 🎃 | [பின்வட்டாரம்](2-Regression/README.md) | இயந்திரக் கற்றலுக்காக தரவுகளை ரசிக்கவும் சுத்தம் செய்யவும் | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ஜென் • எரிக் வாஞ்சௌ |
| 07 | வட அமெரிக்க பாம்பரின் விலைகள் 🎃 | [பின்வட்டாரம்](2-Regression/README.md) | நேர்கோட்டு மற்றும் பன்முக பின்வட்டார் மாதிரிகள் உருவாக்கு | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ஜென் மற்றும் ட்மிதிரி • எரிக் வாஞ்சௌ |
| 08 | வட அமெரிக்க பாம்பரின் விலைகள் 🎃 | [பின்வட்டாரம்](2-Regression/README.md) | லொஜிஸ்டிக் பின்வட்டாரம் மாதிரி உருவாக்கு | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ஜென் • எரிக் வாஞ்சௌ |
| 09 | ஒரு வலை செயலி 🔌 | [வலை செயலி](3-Web-App/README.md) | உங்கள் பயிற்சி பெற்ற மாதிரியை பயன்படுத்த ஒரு வலை செயலியைக் கட்டுங்கள் | [Python](3-Web-App/1-Web-App/README.md) | ஜென் |
| 10 | வகைப்படுத்தல் அறிமுகம் | [வகைப்படுத்தல்](4-Classification/README.md) | உங்கள் தரவை சுத்தம் செய்யவும், தயார் செய்யவும் மற்றும் காட்சிப்படுத்தவும்; வகைப்படுத்தல் அறிமுகம் | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ஜென் மற்றும் காசி • எரிக் வாஞ்சௌ |
| 11 | சுவையான ஆசிய மற்றும் இந்திய உணவுகள் 🍜 | [வகைப்படுத்தல்](4-Classification/README.md) | வகைப்பாட்டுக்கான அறிமுகம் | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ஜென் மற்றும் காசி • எரிக் வாஞ்சௌ |
| 12 | சுவையான ஆசிய மற்றும் இந்திய உணவுகள் 🍜 | [வகைப்படுத்தல்](4-Classification/README.md) | அதிக வகைப்பாட்டாளர்கள் | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ஜென் மற்றும் காசி • எரிக் வாஞ்சௌ |
| 13 | சுவையான ஆசிய மற்றும் இந்திய உணவுகள் 🍜 | [வகைப்படுத்தல்](4-Classification/README.md) | உங்கள் மாதிரியை பயன்படுத்தி பரிந்துரைக் வலை செயலியை கட்டுங்கள் | [Python](4-Classification/4-Applied/README.md) | ஜென் |
| 14 | கிளஸ்டர் அமைவியல் அறிமுகம் | [கிளஸ்டர் அமைவியல்](5-Clustering/README.md) | உங்கள் தரவை சுத்தம் செய்யவும், தயார் செய்யவும் மற்றும் காட்சிப்படுத்தவும்; கிளஸ்டர் அமைவியல் அறிமுகம் | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ஜென் • எரிக் வாஞ்சௌ |
| 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) | ஜென் • எரிக் வாஞ்சௌ |
| 16 | இயற்கை மொழி செயலாக்கம் அறிமுகம் ☕️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | எளிய பாட்டை உருவாக்கி NLP அடிப்படைகளை கற்றுக்கொள்ளுங்கள் | [Python](6-NLP/1-Introduction-to-NLP/README.md) | ஸ்டீபன் |
| 17 | பொதுவான NLP பணிகள் ☕️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | மொழி அமைப்புக்களைத் தொடர்பு கொண்டு செய்ய வேண்டிய பொதுப் பணிகளைக் கற்றுக்கொண்டு உங்கள் NLP அறிவை ஆழமாக்குங்கள் | [Python](6-NLP/2-Tasks/README.md) | ஸ்டீபன் |
| 18 | மொழிபெயர்ப்பு மற்றும் உணர்ச்சி பகுப்பாய்வு ♥️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | ஜேன் ஆஸ்டின் மூலம் மொழிபெயர்ப்பு மற்றும் உணர்ச்சி பகுப்பாய்வு | [Python](6-NLP/3-Translation-Sentiment/README.md) | ஸ்டீபன் |
| 19 | ஐரோப்பிய காதல் விடுதிகள் ♥️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | விடுதி மதிப்பாய்வுகளுடன் உணர்ச்சி பகுப்பாய்வு 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | ஸ்டீபன் |
| 20 | ஐரோப்பிய காதல் விடுதிகள் ♥️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | விடுதி மதிப்பாய்வுகளுடன் உணர்ச்சி பகுப்பாய்வு 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | ஸ்டீபன் |
| 21 | கால வரிசை முன்னறிவிப்பு அறிமுகம் | [கால வரிசை](7-TimeSeries/README.md) | கால வரிசை முன்னறிவிப்பிற்கு அறிமுகம் | [Python](7-TimeSeries/1-Introduction/README.md) | பிரான்செஸ்கா |
| 22 | ⚡️ உலக சக்தி பயன்பாடு ⚡️ - ARIMA உடன் கால வரிசை முன்னறிவிப்பு | [கால வரிசை](7-TimeSeries/README.md) | ARIMA உடன் கால வரிசை முன்னறிவிப்பு | [Python](7-TimeSeries/2-ARIMA/README.md) | பிரான்செஸ்கா |
| 23 | ⚡️ உலக சக்தி பயன்பாடு ⚡️ - SVR உடன் கால வரிசை முன்னறிவிப்பு | [கால வரிசை](7-TimeSeries/README.md) | Support Vector Regressor உடன் கால வரிசை முன்னறிவிப்பு | [Python](7-TimeSeries/3-SVR/README.md) | அனிர்பன் |
| 24 | மறுசீரமைப்பு கற்றல் அறிமுகம் | [மறுசீரமைப்பு கற்றல்](8-Reinforcement/README.md) | Q-Learning உடன் மறுசீரமைப்பு கற்றல் அறிமுகம் | [Python](8-Reinforcement/1-QLearning/README.md) | ட்மிதிரி |
| 25 | பீட்டரை ஓநாயிலிருந்து தடுத்து வைக்க! 🐺 | [மறுசீரமைப்பு கற்றல்](8-Reinforcement/README.md) | மறுசீரமைப்பு கற்றல் கேலம் | [Python](8-Reinforcement/2-Gym/README.md) | ட்மிதிரி |
| பின்னூட்டம் | நிஜ உலக இயந்திரக் கற்றல் சூழ்நிலைகளும் பயன்பாடுகளும் | [களத்திலுள்ள ML](9-Real-World/README.md) | பாரம்பரிய இயந்திரக் கற்றலின் சுவாரசியமான மற்றும் வெளிப்படுத்தும் வாட்சமைகள் | [பாடம்](9-Real-World/1-Applications/README.md) | குழு |
| பின்னூட்டம் | RAI டாஷ்போர்டைப் பயன்படுத்தி ML மாதிரி பிழைத்திருத்துதல் | [களத்திலுள்ள ML](9-Real-World/README.md) | பொறுப்பான AI டாஷ்போர்ட் கூறுகளைப் பயன்படுத்தி இயந்திரக் கற்றலில் மாதிரி பிழைத்திருத்துதல் | [பாடம்](9-Real-World/2-Debugging-ML-Models/README.md) | ரத் யாகுபு |
> [இந்த பாடத்திட்டத்திற்கு கூடுதல் அனைத்து வளங்களையும் Microsoft Learn கலெக்ஷனில் காண்க](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
| 01 | மெஷின் லெர்னிங்க்கு அறிமுகம் | [அறிமுகம்](1-Introduction/README.md) | மெஷின் லெர்னிங்கின் அடிப்படையான கருத்துக்களை கற்றுக்கொள்வது | [பாடம்](1-Introduction/1-intro-to-ML/README.md) | மும்மது |
| 02 | மெஷின் லெர்னிங்கின் வரலாறு | [அறிமுகம்](1-Introduction/README.md) | இந்த துறையின் வரலாற்றை அறியவும் | [பாடம்](1-Introduction/2-history-of-ML/README.md) | ஜென் மற்றும் மி |
| 03 | நியாயமான மற்றும் மெஷின் லெர்னிங் | [அறிமுகம்](1-Introduction/README.md) | நியாயத்தைக் குறிக்கும் முக்கிய தத்துவக் குறைகள் என்ன, மாணவர்கள் எல்.எம். மாதிரிகளை உருவாக்கும் போது பரிந்துரைக்க வேண்டும்? | [பாடம்](1-Introduction/3-fairness/README.md) | தமோமி |
| 04 | மெஷின் லெர்னிங்குக்கான தொழில்நுட்பங்கள் | [அறிமுகம்](1-Introduction/README.md) | எல்.எம். மாதிரிகளை உருவாக்க எவ்வகை தொழில்நுட்பங்களை ஆராய்ச்சியாளர்கள் பயன்படுத்துகின்றனர்? | [பாடம்](1-Introduction/4-techniques-of-ML/README.md) | கிறிஸ் மற்றும் ஜென் |
| 05 | ரெக்ரெஷனுக்கான அறிமுகம் | [Regression](2-Regression/README.md) | ரெக்ரெஷன் மாதிரிகளுக்கான பைதான் மற்றும் Scikit-learn பயன்படுத்தி துவக்கம் | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ஜென் மற்றும் எரிக் வஞ்சாவ் |
| 06 | வட அமெரிக்க மதுளங்காய் விலை 🎃 | [Regression](2-Regression/README.md) | மெஷின் லெர்னிங்குக்கு முன்னர் தரவு பார்வையிட்டு தூய்மையாக்கல் | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ஜென் மற்றும் எரிக் வஞ்சாவ் |
| 07 | வட அமெரிக்க மதுளங்காய் விலை 🎃 | [Regression](2-Regression/README.md) | நேரியல் மற்றும் பன்முக ரெக்ரெஷன் மாதிரிகளை உருவாக்குக | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ஜென் மற்றும் Dmitry • எரிக் வஞ்சாவ் |
| 08 | வட அமெரிக்க மதுளங்காய் விலை 🎃 | [Regression](2-Regression/README.md) | லாஜிஸ்டிக் ரெக்ரெஷன் மாதிரியை உருவாக்குக | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ஜென் மற்றும் எரிக் வஞ்சாவ் |
| 09 | ஒரு வலை பயன்பாடு 🔌 | [Web App](3-Web-App/README.md) | உங்கள் பயிற்சியளிக்கப்பட்ட மாதிரியை பயன்படுத்தி ஒரு வலைப் பயன்பாட்டை உருவாக்கவும் | [Python](3-Web-App/1-Web-App/README.md) | ஜென் |
| 10 | வகைப்படு அறிமுகம் | [Classification](4-Classification/README.md) | உங்கள் தரவைத் தூய்மையாக்கி, தயாரித்து பார்வையிடவும்; வகைப்பாட்டுக்கான அறிமுகம் | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ஜென் மற்றும் காசி • எரிக் வஞ்சாவ் |
| 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) | ஜென் மற்றும் காசி • எரிக் வஞ்சாவ் |
| 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) | ஜென் மற்றும் காசி • எரிக் வஞ்சாவ் |
| 13 | சுவையான ஆசிய மற்றும் இந்திய சமையல்கள் 🍜 | [Classification](4-Classification/README.md) | உங்கள் மாதிரியை பயன்படுத்தி பரிந்துரையளிக்கும் வலைப்பயன்பாட்டை உருவாக்கவும் | [Python](4-Classification/4-Applied/README.md) | ஜென் |
| 14 | குழுக்களுக்கான அறிமுகம் | [Clustering](5-Clustering/README.md) | உங்கள் தரவை தூய்மையாக்கி, தயாரித்து பார்வையிடவும்; குழுக்களுக்கான அறிமுகம் | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ஜென் மற்றும் எரிக் வஞ்சாவ் |
| 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) | ஜென் மற்றும் எரிக் வஞ்சாவ் |
| 16 | இயற்கை மொழி செயலாக்கத்தின் அறிமுகம் ☕️ | [Natural language processing](6-NLP/README.md) | ஒரு எளிய பாட்டை உருவாக்கி NLP அடிப்படைகளை கற்றுக்கொள் | [Python](6-NLP/1-Introduction-to-NLP/README.md) | ஸ்டீபன் |
| 17 | பொதுவான NLP பணிகள் ☕️ | [Natural language processing](6-NLP/README.md) | மொழி அமைப்புகளுடன் வேலை செய்யும்போது தேவையான பொதுவான பணிகளை புரிந்து NLP அறிவை ஆழப்படுத்துக | [Python](6-NLP/2-Tasks/README.md) | ஸ்டீபன் |
| 18 | மொழிபெயர்ப்பு மற்றும் உணர்வு பகுத்தறிதல் ♥️ | [Natural language processing](6-NLP/README.md) | ஜேன் ஆஸ்டின் உடன் மொழிபெயர்ப்பு மற்றும் உணர்வு பகுத்தறிதல் | [Python](6-NLP/3-Translation-Sentiment/README.md) | ஸ்டீபன் |
| 19 | ஐரோப்பாவின் காதலான ஹோட்டல்கள் ♥️ | [Natural language processing](6-NLP/README.md) | ஹோட்டல் மதிப்பாய்வுகளுடன் உணர்வு பகுத்தறிதல் 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | ஸ்டீபன் |
| 20 | ஐரோப்பாவின் காதலான ஹோட்டல்கள் ♥️ | [Natural language processing](6-NLP/README.md) | ஹோட்டல் மதிப்பாய்வுகளுடன் உணர்வு பகுத்தறிதல் 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | ஸ்டீபன் |
| 21 | கால வரிசை முன்னறிவிப்புக்கு அறிமுகம் | [Time series](7-TimeSeries/README.md) | கால வரிசை முன்னறிவிப்புக்கு அறிமுகம் | [Python](7-TimeSeries/1-Introduction/README.md) | பிரான்செஸ்கா |
| 22 | ⚡️ உலக சக்தி பயன்பாடு ⚡️ - ARIMA உடன் கால வரிசை முன்னறிவிப்பு | [Time series](7-TimeSeries/README.md) | ARIMA மூலம் கால வரிசை முன்னறிவிப்பு | [Python](7-TimeSeries/2-ARIMA/README.md) | பிரான்செஸ்கா |
| 23 | ⚡️ உலக சக்தி பயன்பாடு ⚡️ - SVR உடன் கால வரிசை முன்னறிவிப்பு | [Time series](7-TimeSeries/README.md) | ஆதரவு வெக்டர் ரெக்ரெஷன் மூலம் கால வரிசை முன்னறிவிப்பு | [Python](7-TimeSeries/3-SVR/README.md) | அனிர்பன் |
| 24 | துனைவுக் கற்றலுக்கான அறிமுகம் | [Reinforcement learning](8-Reinforcement/README.md) | Q-லெர்னிங் மூலம் துனைவுக் கற்றலுக்கான அறிமுகம் | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | பீட்டர் நரிப்பிலிருந்து தற்காப்பு! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | துனைவுக் கற்றல் ஜிம் | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| பின்னொட்டு | உண்மையான உலக ML சூழல்கள் மற்றும் பயன்பாடுகள் | [ML in the Wild](9-Real-World/README.md) | பாரம்பரிய எல்.எம் பயன்பாடுகளின் சுவாரசியமான மற்றும் வெளிப்படுத்தும் உண்மையான உலக பயன்பாடுகள் | [பாடம்](9-Real-World/1-Applications/README.md) | குழு |
| பின்னொட்டு | RAI டாஷ்போர்ட்டைப் பயன்படுத்தி எல்.எம் மாதிரிகள் பிழைத்திருத்தம் | [ML in the Wild](9-Real-World/README.md) | பொறுப்பு AI டாஷ்போர்ட் கூறுகளைப் பயன்படுத்தி எல்.எம் மாதிரிகளின் பிழைத்திருத்தம் | [பாடம்](9-Real-World/2-Debugging-ML-Models/README.md) | ரத் யாகுபு |
> [இந்த பாடத்திட்டத்திற்கு அனைத்து கூடுதல் வளங்களையும் எங்கள் Microsoft Learn சேகரிப்பில் காண்க](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## ஆஃப்லைன் அணுகல்
இந்த ஆவணத்தை [Docsify](https://docsify.js.org/#/) பயன்படுத்தி ஆஃப்லைனில் இயக்க முடியும். இந்த ரெப்போவை Fork செய்து, உங்கள் உள்ளூர் கணினியில் [Docsify ஐ நிறுவுங்கள்](https://docsify.js.org/#/quickstart), பின்னர் இந்த ரெப்போவின் மூல சாத்திரத்தில் `docsify serve` என தட்டச்சு செய்யவும். இணையதளம் உங்கள் உள்ளூர் கணினி 3000 வண்ணக்குழியில் `localhost:3000` என்ற முகவரியில் சேவை செய்யப்படும்.
[Docsify](https://docsify.js.org/#/) பயன்படுத்தி இந்த ஆவணத்தைக் ஆஃப்லைனில் இயக்கலாம். இந்த ரெப்போவை ஃபோர்க் செய்து, உங்கள் உள்ளூர்முறை கணினியில் [Docsify ஐ நிறுவி](https://docsify.js.org/#/quickstart), பிறகு இந்த ரெப்போவின் ரூட் கோப்பகத்தில் `docsify serve` என தட்டச்சு செய்யவும். இணையதளம் உங்கள் உள்ளூர் இயந்திரத்தில் 3000 போர்ட் மூலம் இயங்கும்: `localhost:3000`.
## PDFகள்
## PDF-கள்
பாடத்திட்டத்தின் PDF ஐ [இங்கே](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) இணைப்புடன் காண்.
பாடத்திட்டத்தின் PDF மற்றும் இணைப்புகள் [இங்கு](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) காணலாம்.
## 🎒 பிற பாடங்கள்
எங்கள் குழு பிற பாடங்களையும் உருவாக்குகிறது! பாருங்கள்:
எங்கள் குழு பிற பாடங்களையும் தயாரிக்கின்றது! பாருங்கள்:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j துவக்கவர்களுக்கு](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js துவக்கவர்களுக்கு](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain துவக்கவர்களுக்கு](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners)
[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin)
[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin)
---
### Azure / Edge / MCP / Agents
[![AZD துவக்கவர்களுக்கு](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI துவக்கவர்களுக்கு](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP தொடக்கத்திற்கானது](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI முகவர்கள் தொடக்கத்திற்கானது](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst)
[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### உருவாக்கும் AI தொடர்
[![தொடக்கத்திற்கான உருவாக்கும் AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![உருவாக்கும் AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![உருவாக்கும் AI (ஜாவா)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![உருவாக்கும் AI (ஜாவாஸ்கிரிப்ட்)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
### ஜெனரேட்டிவ் ஏஐ தொடர்
[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst)
[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst)
[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst)
[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst)
---
### மையக் கற்றல்
[![மெஷின் கற்றல் தொடக்கத்திற்கானது](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![தரவு அறிவியல் தொடக்கத்திற்கானது](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![ஏ.ஐ. தொடக்கத்திற்கானது](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![சைபர் பாதுகாப்பு தொடக்கத்திற்கானது](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![வலை உருவாக்கம் தொடக்கத்திற்கானது](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT தொடக்கத்திற்கானது](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR மேம்பாடு தொடக்கத்திற்கானது](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
### முதன்மை கற்றல்
[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst)
[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst)
[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst)
[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung)
[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst)
[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst)
[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst)
---
### கோபைலட் தொடர்
[![ஏ.ஐ. இணைக்கப்பட்ட நிரல் எழுத்துக்காக கோபைலட்](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![C#/.NET க்கான கோபைலட்](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![கோபைலட் அனுபவம்](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst)
[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## உதவி பெறுதல்
வேலை முழுவதும் தடையோ அல்லது AI செயலிகளை உருவாக்குவதில் ஏதேனும் கேள்விகள் என்றால், MCP பற்றி fellow கற்றுகொள்பவர்களும் அனுபவ மிக்க டெவலப்பர்களும் கலந்துரையாடல்களில் இணைக. இது கேள்விகள் வரவேற்கப்படும் மற்றும் அறிவு சுதந்திரமாக பகிரப்படும் ஆதரவான சமூகம் ஆகும்.
இயந்திர கற்றல் கற்கும் போது அல்லது ஏஐ பயன்பாடுகளை உருவாக்கும்போது நீங்கள் சிக்கலில் அல்லது கேள்விகளில் இருந்தால், கவலைப்பட வேண்டாம் — உதவி கிடைக்கிறது.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
நீங்கள் மற்ற கற்றுக்கொள்ளும் மற்றும் டெவலப்பர்களுடன் பேசலாம், கேள்விகள் கேட்கலாம், மற்றும் உங்கள் கருத்துக்களை சமூகத்துடன் பகரலாம்.
- கேள்விகள் கேட்டு மற்றவர்களுடன் கற்றுக்கொள்ள சமூகத்தில் சேர்ந்துகொள்ளுங்கள்
- இயந்திரக் கற்றல் கருத்துக்களை மற்றும் திட்ட யோசனைகளை விவாதிக்கவும்
- அனுபவம் வாய்ந்த டெவலப்பர்களிடமிருந்து வழிகாட்டுதலை பெறவும்
ஒரு ஆதரவான சமூகத்தைப் பெற்றிருப்பது உங்கள் திறன்களை மேம்படுத்தவும் பிரச்சினைகளை விரைவாக தீர்க்கவும் சிறந்த வழி.
உற்பத்தி பின்னூட்டம் அல்லது பிழைகள் இருந்தால் கீழ்காணும் முகவரிக்கு செல்லவும்:
[Microsoft Foundry Discord Community](https://discord.gg/nTYy5BXMWG)
பிழைகள், தவறுகள் இருந்தால் அல்லது மேம்படுத்தல் பரிந்துரைகள் இருப்பின், நீங்கள் இந்த சேமிப்பகம் வாயிலாக ஒரு **Issue** ஐத் திறந்து புகாரை தெரிவித்துக் கொள்ளலாம்.
தயாரிப்பு கருத்து அல்லது தற்போதைய சமூக பதிவுகளை தேட:
[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum)
## கூடுதல் கற்றல் குறிப்புகள்
- ஒவ்வொரு பாடத்திற்குப் பிறகும் நோட்புக்களை பரிசீலிக்கவும், மேலும் புரிந்துகொள்ளவும்.
- சொந்தமாகக் கோடுகளை நடைமுறைப்படுத்த முயற்சி செய்யவும்.
- கற்றுள்ள கருத்துக்களைப் பயன்படுத்தி உண்மையான தரவுத் தொகுப்புகளை ஆராயவும்.
- ஒவ்வொரு பாடத்தையும் முடித்த பின் நோட்ட்புக்குகளை மறுபார்வையிடுக.
- உங்கள் சொந்தமாக ஆல்ொரிதங்களை நடைமுறைப்படுத்தவும்.
- கற்றுக் கொண்ட கருத்துக்களை பயன்படுத்தி உண்மையான தரவுத் தொகுப்புகளை ஆராயவும்.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**முன்னுரிமை**:
இந்த ஆவணம் AI மொழி மாற்ற சேவை [Co-op Translator](https://github.com/Azure/co-op-translator) பயன்படுத்தி மொழி மாற்றப்பட்டது. நாங்கள் துல்லியத்திற்காக முயற்சித்தாலும், தானியங்கி மொழி மாற்றங்களில் பிழைகள் அல்லது தவறுகள் உள்ளிருக்க வாய்ப்புள்ளது என்பதை கவனத்தில் கொள்ளவும். தாய்மொழியில் உள்ள அசல் ஆவணம் அதிகாரப்பூர்வ மூலமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழி மாற்றம் பரிந்துரைக்கப்படுகிறது. இந்த மொழி மாற்றத்தை பயன்படுத்தியதனால் ஏற்பட்ட எந்தவொரு புரிதல் குறைபாடுகளுக்கும் அல்லது தவறான விளக்கங்களுக்கும் நாங்கள் பொறுப்பாயில்லை.
**பயன்பாட்டு அறிக்கை**:
இந்த ஆவணம் [Co-op Translator](https://github.com/Azure/co-op-translator) என்ற ஏஐ மொழி மாற்ற சேவையைப் பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சித்தாலும், தானியங்கி மொழி மாற்றங்களில் பிழைகள் அல்லது தவறான தகவல்கள் இருக்கக்கூடும். அசல் ஆவணம் அதன் உள்ளூர் மொழியில் அதிகாரப்பூர்வமான மூலமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்துறை மனித மொழி மொழியாக்கம் பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பின் பயன்பாட்டால் ஏற்படும் எந்தவொரு தவறான புரிதல்கள் அல்லது தவறான விளக்கங்களுக்கு நாங்கள் பொறுப்பேற்கமாட்டோம்.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save