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

pull/966/head
localizeflow[bot] 3 months ago
parent e31186367e
commit 099125979f

@ -90,8 +90,8 @@
"language_code": "cs"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T10:03:24+00:00",
"original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
"translation_date": "2026-04-20T19:34:25+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "cs"
},
@ -168,8 +168,8 @@
"language_code": "cs"
},
"4-Classification/2-Classifiers-1/README.md": {
"original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b",
"translation_date": "2025-09-05T00:42:34+00:00",
"original_hash": "cb761595e5b6c42b99bb81bd13683311",
"translation_date": "2026-04-20T19:35:29+00:00",
"source_file": "4-Classification/2-Classifiers-1/README.md",
"language_code": "cs"
},
@ -552,8 +552,8 @@
"language_code": "cs"
},
"README.md": {
"original_hash": "7fb48097f57e680b380cd9aae988d317",
"translation_date": "2026-04-06T16:00:33+00:00",
"original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0",
"translation_date": "2026-04-20T19:32:31+00:00",
"source_file": "README.md",
"language_code": "cs"
},

@ -2,95 +2,97 @@
## Poznámka pro začátečníky
Lineární regrese se používá, když chceme předpovědět **číselnou hodnotu** (například cenu domu, teplotu nebo prodeje). Funguje tak, že najde přímku, která nejlépe reprezentuje vztah mezi vstupními rysy a výstupem.
Lineární regrese se používá tehdy, když chceme predikovat **číselnou hodnotu** (například cenu domu, teplotu nebo tržby).
Funguje tak, že najde přímku, která nejlépe reprezentuje vztah mezi vstupními vlastnostmi a výstupem.
V této lekci se zaměříme na pochopení konceptu před tím, než prozkoumáme pokročilejší regresní techniky.
![Infografika lineární vs. polynomiální regrese](../../../../translated_images/cs/linear-polynomial.5523c7cb6576ccab.webp)
V této lekci se zaměříme na pochopení konceptu, než přejdeme k pokročilejším regresním technikám.
![Lineární vs polynomiální regrese infographic](../../../../translated_images/cs/linear-polynomial.5523c7cb6576ccab.webp)
> Infografika od [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Přednáškový kvíz](https://ff-quizzes.netlify.app/en/ml/)
> ### [Tato lekce je dostupná také v R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [Tato lekce je dostupná i v R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Úvod
Dosud jste prozkoumali, co je regrese, na ukázkových datech ze sady dat o cenách dýní, kterou budeme používat v celé této lekci. Také jste si ji vizualizovali pomocí Matplotlib.
Dosud jste prozkoumali, co regrese je, s použitím ukázkových dat získaných z datasetu s cenami dýní, který budeme používat v celé této lekci. Také jste data vizualizovali pomocí Matplotlib.
Nyní jste připraveni ponořit se hlouběji do regrese pro strojové učení. Zatímco vizualizace vám umožní porozumět datům, skutečná síla strojového učení spočívá v _trénování modelů_. Modely jsou trénovány na historických datech, aby automaticky zachytily závislosti v datech, a umožňují vám předpovídat výsledky pro nová data, která model dosud neviděl.
Nyní jste připraveni ponořit se hlouběji do regrese pro strojové učení. Zatímco vizualizace vám umožňuje data lépe pochopit, skutečná síla strojového učení spočívá ve _tréninku modelů_. Modely jsou trénovány na historických datech, aby automaticky zachytily závislosti v datech a umožnily vám predikovat výsledky pro nová data, která model ještě neviděl.
V této lekci se naučíte více o dvou typech regrese: _základní lineární regresi_ a _polynomiální regresi_, společně s některou z matematiky, která stojí za těmito technikami. Tyto modely nám umožní předpovídat ceny dýní v závislosti na různých vstupních datech.
V této lekci se dozvíte více o dvou typech regrese: _základní lineární regresi_ a _polynomiální regresi_, spolu s některou z matematiky, která tyto techniky podkládá. Tyto modely nám umožní predikovat ceny dýní podle různých vstupních dat.
[![Strojové učení pro začátečníky Pochopení lineární regrese](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "Strojové učení pro začátečníky Pochopení lineární regrese")
[![Strojové učení pro začátečníky - Pochopení lineární regrese](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "Strojové učení pro začátečníky - Pochopení lineární regrese")
> 🎥 Klikněte na obrázek výše pro krátké video přehled lineární regrese.
> 🎥 Klikněte na obrázek výše pro krátké video shrnutí lineární regrese.
> V celém tomto kurzu předpokládáme minimální znalost matematiky a snažíme se ji zpřístupnit studentům z jiných oborů, proto sledujte poznámky, 🧮 upozornění, diagramy a další učební pomůcky pro lepší porozumění.
> V celém tomto kurikulu předpokládáme minimální znalosti matematiky a snažíme se ji zpřístupnit studentům z jiných oborů, proto sledujte poznámky, 🧮 doplňky, diagramy a další výukové pomůcky pro usnadnění pochopení.
### Předpoklady
Měli byste už být obeznámeni se strukturou dat o dýních, která zkoumáme. Najdete je přednačtená a předvyčištěná v souboru _notebook.ipynb_ této lekce. V souboru je cena dýní zobrazena za bushel v novém datovém rámci. Ujistěte se, že můžete spouštět tyto notebooky v kernelu ve Visual Studio Code.
Nyní byste měli být obeznámeni se strukturou dat o dýních, která zkoumáme. Najdete je přednačtená a předčištěná v souboru _notebook.ipynb_ této lekce. V souboru je cena dýně zobrazena za koš (bushel) v novém datovém rámci. Ujistěte se, že tyto notebooky můžete spustit v jádrech ve Visual Studio Code.
### Příprava
Pro připomenutí, tato data načítáte proto, abyste si na ně mohli klást otázky.
Jako připomínku, tato data načítáte proto, abyste na ně mohli klást otázky.
- Kdy je nejlepší čas koupit dýně?
- Kdy je nejlepší doba na nákup dýní?
- Jakou cenu mohu očekávat za balení mini dýní?
- Měl bych je kupovat v polovině bushelového koše, nebo v 1 1/9 bushelové krabici?
Pojďme v tomto zkoumání dat pokračovat.
- Měl bych je koupit v koších o půl bushelu, nebo v krabici o 1 1/9 bushelu?
V předchozí lekci jste vytvořili Pandas datový rámec a naplnili jej částí původních dat, přičemž jste ceny standardizovali za bushel. Tím jste však získali pouze asi 400 datových bodů a jen pro podzimní měsíce.
Pojďme dále prozkoumat tato data.
Podívejte se na data, která jsme přednačetli v přidruženém notebooku této lekce. Data jsou přednačtená a je vykreslen prvotní scatterplot zobrazující data podle měsíců. Možná můžeme získat podrobnější informace o povaze dat jejich dalším čištěním.
V předchozí lekci jste vytvořili Pandas data frame a naplnili ho částí původního datasetu, standardizovali ceny na bushel. Tím jste však získali asi 400 datových bodů, a to pouze pro podzimní měsíce.
Podívejte se na data, která jsme přednačetli v notebooku doprovázejícím tuto lekci. Data jsou přednačtená a zobrazený je počáteční scatterplot dle měsíce. Možná získáme více podrobností o povaze dat jejich důkladnějším vyčištěním.
## Lineární regresní přímka
Jak jste se naučili v Lekci 1, cílem lineární regrese je být schopen vykreslit přímku, která:
Jak jste se naučili v lekci 1, cílem cvičení lineární regrese je umět nakreslit přímku, která:
- **Ukáže vztahy proměnných**. Ukáže vztah mezi proměnnými
- **Umožní předpovědi**. Umožní přesně předpovědět, kde by se nový datový bod mohl nacházet vzhledem k této přímce.
Je typické pro **metodu nejmenších čtverců**, že se takováto přímka kreslí. Termín "nejmenší čtverce" odkazuje na proces minimalizace celkové chyby v našem modelu. Pro každý datový bod měříme vertikální vzdálenost (nazývanou reziduál) mezi skutečným bodem a naší regresní přímkou.
- **Ukáže vztahy mezi proměnnými**.
- **Umožní predikce**. Přesně predikovat, kde by se nový datový bod nacházel vzhledem k této přímce.
Tyto vzdálenosti umocňujeme na druhou ze dvou hlavních důvodů:
Typickým přístupem u **regrese nejmenších čtverců** (Least-Squares Regression) je nakreslit právě tento typ přímky. Termín "nejmenších čtverců" odkazuje na proces minimalizace celkové chyby v našem modelu. Pro každý datový bod měříme vertikální vzdálenost (zvanou reziduum) mezi skutečným bodem a naší regresní přímkou.
1. **Velikost nad směrem:** Chceme, aby chyba -5 byla stejně vážná jako chyba +5. Umocnění na druhou zaručí, že všechny hodnoty jsou kladné.
Tyto vzdálenosti umocníme na druhou ze dvou hlavních důvodů:
2. **Trestání odlehlých hodnot:** Umocnění na druhou dává větší váhu větším chybám, což nutí přímku být blíže k bodům, které jsou daleko.
1. **Velikost nad směrem:** Chceme, aby chyba -5 byla považována za stejnou jako chyba +5. Umocněním získáme všechny hodnoty kladné.
Poté všechny tyto umocněné hodnoty sečteme. Naším cílem je najít specifickou přímku, kde je tenhle součet nejmenší (nejmenší možná hodnota) - odtud název "nejmenší čtverce".
2. **Trestat odlehlé hodnoty:** Umocnění dá větší váhu větším chybám, díky čemuž se přímka snaží zůstat blíže k bodům, které jsou vzdálené.
> **🧮 Ukázat matematiku**
>
> Tato přímka, nazývaná _přímka nejlepšího přizpůsobení_, může být vyjádřena pomocí [rovnice](https://en.wikipedia.org/wiki/Simple_linear_regression):
Poté všechny tyto umocněné hodnoty sečteme. Naším cílem je najít právě tu přímku, kde je tento součet nejmenší (možná nejmenší hodnota) — odtud název "nejmenších čtverců".
> **🧮 Ukázat mi matematiku**
>
> Tuto přímku, nazývanou _přímka nejlepšího přizpůsobení_, lze vyjádřit [rovnicí](https://cs.wikipedia.org/wiki/Line%C3%A1rn%C3%AD_regrese#Jednoduch%C3%A1_line%C3%A1rn%C3%AD_regrese):
>
> ```
> Y = a + bX
> ```
>
> `X` je 'vysvětlující proměnná'. `Y` je 'závislá proměnná'. Směrnice přímky je `b` a `a` je průsečík s osou y, což je hodnota `Y`, když `X = 0`.
> `X` je 'vysvětlující proměnná'. `Y` je 'závislá proměnná'. Směrnice přímky je `b` a `a` je průsečík s osou y, který odpovídá hodnotě `Y` když `X = 0`.
>
>![výpočet směrnice](../../../../translated_images/cs/slope.f3c9d5910ddbfcf9.webp)
>
> Nejprve vypočítejte směrnici `b`. Infografika od [Jen Looper](https://twitter.com/jenlooper)
> Nejprve spočítejte směrnici `b`. Infografika od [Jen Looper](https://twitter.com/jenlooper)
>
> Jinými slovy, a s odkazem na naši původní otázku ohledně dat o dýních: "předpověď ceny dýně za bushel podle měsíce", `X` by odkazovalo na měsíc a `Y` by odkazovalo na cenu.
> Jinými slovy, a s ohledem na původní otázku k našim datům o dýních: "predikujte cenu dýně za bushel podle měsíce", pak `X` představuje cenu a `Y` měsíc prodeje.
>
>![dokončení rovnice](../../../../translated_images/cs/calculation.a209813050a1ddb1.webp)
>![doplnění rovnice](../../../../translated_images/cs/calculation.a209813050a1ddb1.webp)
>
> Vypočítejte hodnotu Y. Pokud platíte kolem 4 dolarů, musí to být duben! Infografika od [Jen Looper](https://twitter.com/jenlooper)
> Spočítejte hodnotu `Y`. Pokud platíte kolem 4 dolarů, musí být duben! Infografika od [Jen Looper](https://twitter.com/jenlooper)
>
> Matematika počítající přímku musí demonstrovat směrnici přímky, která také závisí na průsečíku, tedy kde je `Y` situováno, když `X = 0`.
> Matematika, která vypočítá přímku, musí zohlednit směrnici této přímky, která také závisí na průsečíku, tedy místě, kde je `Y`, když `X = 0`.
>
> Metodu výpočtu těchto hodnot můžete vidět na webu [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Navštivte také [tuto kalkulačku metody nejmenších čtverců](https://www.mathsisfun.com/data/least-squares-calculator.html) a sledujte, jak hodnoty čísel ovlivňují přímku.
> Metodu výpočtu těchto hodnot můžete sledovat na webu [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Navštivte také [tento kalkulátor nejmenších čtverců](https://www.mathsisfun.com/data/least-squares-calculator.html), který ukazuje, jak hodnoty čísel ovlivňují přímku.
## Korelace
Ještě jeden termín k pochopení je **koeficient korelace** mezi danými proměnnými X a Y. Pomocí scatterplotu můžete tento koeficient rychle vizualizovat. Graf s body rozprostřenými po úhledné přímce má vysokou korelaci, ale graf s body rozptýlenými všude po ose X a Y má korelaci nízkou.
Ještě jeden termín, který je dobré pochopit, je **korelační koeficient** mezi proměnnými X a Y. Pomocí scatterplotu můžete rychle tento koeficient vizualizovat. Graf s body roztroušenými v pěkné přímce má vysokou korelaci, zatímco graf s body rozesetými všude má nízkou korelaci.
Dobrý model lineární regrese bude ten, který má vysoký (blíže k 1 než k 0) koeficient korelace používající metodu nejmenších čtverců s regresní přímkou.
Dobrý lineární regresní model bude ten, který má vysoký (blíže jedné než nule) korelační koeficient pomocí metody nejmenších čtverců.
✅ Spusťte si notebook přidružený k této lekci a podívejte se na scatterplot spojení Měsíc vs. Cena. Zdá se podle vašeho vizuálního hodnocení scatterplotu, že data spojující měsíc s cenou pro prodej dýní mají vysokou nebo nízkou korelaci? Změní se to, když použijete jemnější měřítko namísto `Month`, např. *den v roce* (tedy počet dní od začátku roku)?
✅ Spusťte notebook doprovázející tuto lekci a podívejte se na scatterplot měsíce vs. ceny. Zdá se, že data spojující měsíc s cenou při prodeji dýní mají vysokou nebo nízkou korelaci podle vaší vizuální interpretace scatterplotu? Změní se to, pokud použijete jemnější měřítko než `Month`, např. *den v roce* (tj. počet dní od začátku roku)?
V níže uvedeném kódu předpokládáme, že jsme data vyčistili a získali datový rámec nazvaný `new_pumpkins`, podobný následujícímu:
V níže uvedeném kódu budeme předpokládat, že jsme data vyčistili a získali datový rámec nazvaný `new_pumpkins`, podobný tomuto:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
@ -100,36 +102,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
> Kód pro vyčištění dat je dostupný v [`notebook.ipynb`](notebook.ipynb). Provedli jsme stejné kroky čištění jako v předchozí lekci a dopočítali sloupec `DayOfYear` pomocí následujícího výrazu:
> Kód na čištění dat je k dispozici v [`notebook.ipynb`](notebook.ipynb). Provedli jsme stejné kroky čištění jako v předchozí lekci a vypočítali sloupec `DayOfYear` pomocí následujícího výrazu:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Nyní, když máte pochopení matematiky stojící za lineární regresí, vytvoříme regresní model, abychom zjistili, zda můžeme předpovědět, které balení dýní bude mít nejlepší ceny. Někdo, kdo kupuje dýně pro sváteční dýňovou zahradu, by mohl chtít tyto informace, aby mohl optimalizovat nákupy balení dýní pro svou zahradu.
Nyní, když máte pochopení matematiky za lineární regresí, vytvoříme regresní model, abychom zjistili, jestli dokážeme předpovědět, které balení dýní bude mít nejlepší cenu. Někdo, kdo kupuje dýně pro záhony na svátky, by tuto informaci mohl chtít, aby mohl optimalizovat nákupy.
## Hledání korelace
[![Strojové učení pro začátečníky Hledání korelace: Klíč k lineární regresi](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Strojové učení pro začátečníky Hledání korelace: Klíč k lineární regresi")
[![Strojové učení pro začátečníky - Hledání korelace: Klíč k lineární regresi](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Strojové učení pro začátečníky - Hledání korelace: Klíč k lineární regresi")
> 🎥 Klikněte na obrázek výše pro krátké video přehled korelace.
> 🎥 Klikněte na obrázek výše pro krátké video shrnutí korelace.
Z předchozí lekce jste pravděpodobně viděli, že průměrná cena za různé měsíce vypadá takto:
Z předchozí lekce jste pravděpodobně viděli, že průměrná cena v různých měsících vypadá takto:
<img alt="Průměrná cena podle měsíce" src="../../../../translated_images/cs/barchart.a833ea9194346d76.webp" width="50%"/>
To naznačuje, že by měla být nějaká korelace, a můžeme vyzkoušet natrénovat lineární regresní model k předpovědi vztahu mezi `Month` a `Price`, nebo mezi `DayOfYear` a `Price`. Zde je scatter plot, který ukazuje druhý zmíněný vztah:
To naznačuje, že existuje nějaká korelace a můžeme zkusit vytrénovat lineární regresní model k předpovědi vztahu mezi `Month` a `Price`, nebo mezi `DayOfYear` a `Price`. Zde je scatter plot ukazující druhý vztah:
<img alt="Scatter plot Cena vs. Den v roce" src="../../../../translated_images/cs/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot Price vs. Day of Year" src="../../../../translated_images/cs/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Podívejme se, zda existuje korelace pomocí funkce `corr`:
Podívejme se, jestli existuje korelace pomocí funkce `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Zdá se, že korelace je poměrně malá, -0.15 podle `Month` a -0.17 podle `DayOfMonth`, ale mohlo by existovat jiné důležité spojení. Zdá se, že existují různé shluky cen odpovídající různým odrůdám dýní. Abychom tuto hypotézu potvrdili, vykreslíme každou kategorii dýní s jinou barvou. Předáním parametru `ax` do funkce `scatter` můžeme vykreslit všechny body na stejném grafu:
Zdá se, že korelace je poměrně malá, -0.15 podle `Month` a -0.17 podle `DayOfMonth`, ale může být ještě nějaký důležitý vztah. Zdá se, že existují různé shluky cen odpovídající různým odrůdám dýní. Abychom tuto hypotézu potvrdili, vykreslíme každou kategorii dýní jinou barvou. Předáním parametru `ax` do funkce `scatter` můžeme všechny body vykreslit do stejného grafu:
```python
ax=None
@ -139,42 +141,42 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Scatter plot Cena vs. Den v roce s barvami" src="../../../../translated_images/cs/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Scatter plot Price vs. Day of Year color" src="../../../../translated_images/cs/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Naše vyšetřování naznačuje, že odrůda má větší vliv na celkovou cenu než skutečné datum prodeje. Vidíme to i na sloupcovém grafu:
Naše vyšetřování naznačuje, že odrůda má větší vliv na celkovou cenu než skutečné datum prodeje. Vidíme to na sloupcovém diagramu:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Sloupcový graf cen podle odrůdy" src="../../../../translated_images/cs/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Sloupcový graf cena podle odrůdy" src="../../../../translated_images/cs/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Zaměříme se prozatím pouze na jednu odrůdu dýní, 'pie type', a podíváme se, jaký vliv má datum na cenu:
Zaměříme se nyní pouze na jednu odrůdu dýní, 'pie type', a podíváme se, jaký vliv má datum na cenu:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Scatter plot Cena vs. Den v roce pro dýně pie type" src="../../../../translated_images/cs/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Scatter plot Price vs. Day of Year" src="../../../../translated_images/cs/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Pokud nyní vypočítáme korelaci mezi `Price` a `DayOfYear` pomocí funkce `corr`, dostaneme asi `-0.27` což znamená, že trénování prediktivního modelu dává smysl.
Pokud nyní spočítáme korelaci mezi `Price` a `DayOfYear` pomocí funkce `corr`, dostaneme hodnotu cca `-0.27` - což znamená, že má smysl trénovat prediktivní model.
> Před trénováním modelu lineární regrese je důležité mít jistotu, že jsou data vyčištěná. Lineární regrese nefunguje dobře s chybějícími hodnotami, proto je vhodné se zbavit všech prázdných buněk:
> Než začnete trénovat lineární regresní model, je důležité zajistit, že naše data jsou čistá. Lineární regrese nefunguje dobře s chybějícími hodnotami, proto je rozumné odstranit všechny prázdné buňky:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Dalším přístupem by bylo nahradit tyto chybějící hodnoty průměrnými hodnotami příslušného sloupce.
Jiný přístup by byl tyto prázdné hodnoty vyplnit průměrnými hodnotami z příslušného sloupce.
## Jednoduchá lineární regrese
[![Strojové učení pro začátečníky Lineární a polynomiální regrese pomocí Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "Strojové učení pro začátečníky Lineární a polynomiální regrese pomocí Scikit-learn")
[![Strojové učení pro začátečníky - Lineární a polynomiální regrese pomocí Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "Strojové učení pro začátečníky - Lineární a polynomiální regrese pomocí Scikit-learn")
> 🎥 Klikněte na obrázek výše pro krátké video přehled lineární a polynomiální regrese.
> 🎥 Klikněte na obrázek výše pro krátké video shrnutí lineární a polynomiální regrese.
Pro natrénování našeho modelu lineární regrese použijeme knihovnu **Scikit-learn**.
Pro trénink našeho modelu lineární regrese použijeme knihovnu **Scikit-learn**.
```python
from sklearn.linear_model import LinearRegression
@ -182,69 +184,69 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Začneme oddělením vstupních hodnot (rysy) a očekávaných výstupů (štítky) do samostatných numpy polí:
Začneme oddělením vstupních hodnot (vlastností) a očekávaného výstupu (štítku) do samostatných numpy polí:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Všimněte si, že jsme museli provést změnu tvaru (`reshape`) vstupních dat, aby je balíček lineární regrese správně pochopil. Lineární regrese očekává 2D pole jako vstup, kde každý řádek pole odpovídá vektoru vstupních rysů. V našem případě, protože máme pouze jeden vstup - potřebujeme pole o tvaru N&times;1, kde N je velikost datové sady.
> Všimněte si, že jsme museli provést `reshape` vstupních dat, aby je balíček lineární regrese správně pochopil. Lineární regrese očekává jako vstup 2D pole, kde každý řádek pole odpovídá vektoru vstupních vlastností. V našem případě, protože máme jen jeden vstup, potřebujeme pole s rozměrem N×1, kde N je velikost datasetu.
Následně je třeba data rozdělit na trénovací a testovací sady, abychom mohli model po tréninku ověřit:
Poté musíme data rozdělit na trénovací a testovací sady, abychom mohli ověřit náš model po tréninku:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Nakonec samotné trénování lineárního regresního modelu trvá jen dva řádky kódu. Definujeme objekt `LinearRegression` a přizpůsobíme ho našim datům pomocí metody `fit`:
Nakonec trénink samotného modelu lineární regrese zabere jen dva řádky kódu. Definujeme objekt `LinearRegression` a přizpůsobíme ho našim datům pomocí metody `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Objekt `LinearRegression` po provedení `fit` obsahuje všechny koeficienty regrese, ke kterým lze přistupovat pomocí vlastnosti `.coef_`. V našem případě je jen jeden koeficient, který by měl být přibližně `-0.017`. To znamená, že ceny se zdají s časem mírně snižovat, ale ne příliš, kolem 2 centů za den. K průsečíku regrese s osou Y se lze také dostat pomocí `lin_reg.intercept_` - v našem případě bude přibližně `21`, což ukazuje cenu na začátku roku.
Objekt `LinearRegression` po `fit`-ování obsahuje všechny koeficienty regrese, ke kterým lze přistupovat pomocí vlastnosti `.coef_`. V našem případě je zde pouze jeden koeficient, který by měl být kolem `-0.017`. To znamená, že se ceny s časem zdají mírně snižovat, ale ne příliš, asi o 2 centy za den. K průsečíku regrese s osou Y můžeme přistoupit pomocí `lin_reg.intercept_` - v našem případě bude kolem `21`, což znamená cenu na začátku roku.
Abychom mohli zjistit, jak přesný náš model je, můžeme předpovídat ceny na testovací datové sadě a pak změřit, jak blízko jsou naše předpovědi ke skutečným hodnotám. To lze provést pomocí metriky střední kvadratické chyby (MSE), což je průměr všech druhých mocnin rozdílů mezi očekávanou a předpovězenou hodnotou.
Abychom zjistili, jak přesný náš model je, můžeme předpovídat ceny na testovacím datasetu a poté změřit, jak blízko jsou naše předpovědi očekávaným hodnotám. To lze provést pomocí metriky root mean square error (RMSE), což je odmocnina průměru všech čtverců rozdílů mezi očekávanou a předpovězenou hodnotou.
```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}%)')
```
Naše chyba se zdá být kolem 2 bodů, což je asi 17 %. Není to moc dobré. Dalším ukazatelem kvality modelu je **koeficient determinace**, který lze získat takto:
Naše chyba se zdá být kolem 2 bodů, což je přibližně 17 %. Ne příliš dobré. Dalším ukazatelem kvality modelu je **koeficient determinace**, který lze získat takto:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Pokud je hodnota 0, znamená to, že model nevnímá vstupní data a chová se jako *nejhorší lineární prediktor*, což je jednoduše průměr výsledku. Hodnota 1 znamená, že můžeme dokonale předpovědět všechny očekávané výstupy. V našem případě je koeficient kolem 0,06, což je poměrně nízké.
Pokud je hodnota 0, znamená to, že model nebere vstupní data v úvahu a funguje jako *nejhorší lineární prediktor*, kterým je jednoduše průměrná hodnota výsledku. Hodnota 1 znamená, že můžeme dokonale předpovědět všechny očekávané výstupy. V našem případě je koeficient kolem 0,06, což je celkem nízké.
Můžeme také vykreslit testovací data spolu s regresní přímkou, abychom lépe viděli, jak regrese v našem případě funguje:
Můžeme také nakreslit testovací data spolu s regresní přímkou, abychom lépe viděli, jak regrese v našem případě funguje:
```python
plt.scatter(X_test,y_test)
plt.plot(X_test,pred)
```
<img alt="Linear regression" src="../../../../translated_images/cs/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
<img alt="Lineární regrese" src="../../../../translated_images/cs/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Polynomická regrese
Dalším typem lineární regrese je polynomická regrese. Zatímco někdy existuje mezi veličinami lineární vztah čím větší dýně objemem, tím vyšší cena jindy tyto vztahy nelze zobrazit jako rovinu nebo přímku.
Dalším typem Lineární regrese je Polynomická regrese. Zatímco někdy existuje lineární vztah mezi proměnnými - čím větší objem dýně, tím vyšší cena - někdy tyto vztahy nelze vykreslit jako rovinu nebo přímku.
✅ Zde je [několik dalších příkladů](https://online.stat.psu.edu/stat501/lesson/9/9.8) dat, která by mohla využít polynomickou regresi
✅ Zde jsou [některé další příklady](https://online.stat.psu.edu/stat501/lesson/9/9.8) dat, která by mohla využít Polynomickou regresi
Podívejte se znovu na vztah mezi Datem a Cenou. Zdá se, že by tento bodový graf nutně měl být analyzován pomocí přímky? Nemohou ceny kolísat? V takovém případě můžete vyzkoušet polynomickou regresi.
Podívejte se znovu na vztah mezi Datem a Cenou. Zdá se, že tento scatterplot by nutně měl být analyzován pomocí přímky? Nemohou ceny kolísat? V takovém případě můžete zkusit polynomickou regresi.
✅ Polynom jsou matematické výrazy, které mohou obsahovat jednu nebo více proměnných a koeficientů
✅ Polynomické výrazy jsou matematické výrazy, které mohou sestávat z jedné nebo více proměnných a koeficientů.
Polynomická regrese vytváří zakřivenou křivku, aby lépe seděla na nelineární data. V našem případě, pokud do vstupních dat zahrneme druhou mocninu proměnné `DayOfYear`, měli bychom být schopni přizpůsobit naše data parabole, která bude mít minimum v určitém bodě během roku.
Polynomická regrese vytváří zakřivenou čáru, aby lépe seděla na nelineární data. V našem případě, pokud do vstupních dat zahrneme druhou mocninu proměnné `DayOfYear`, měli bychom být schopni fitovat naše data parabolickou křivkou, která bude mít minimum v určitém bodě během roku.
Scikit-learn obsahuje užitečné [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) pro spojování různých kroků zpracování dat dohromady. **Pipeline** je řetězec **estimatorů**. V našem případě vytvoříme pipeline, která nejprve přidá polynomické rysy k našemu modelu a pak natrénuje regresi:
Knihovna Scikit-learn obsahuje užitečné [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) pro spojení různých kroků zpracování dat. **Pipeline** je řetězec **estimatorů**. V našem případě vytvoříme pipeline, která nejprve přidá polynomické funkce k našemu modelu a pak provede trénování regrese:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -255,36 +257,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
Použití `PolynomialFeatures(2)` znamená, že zahrneme všechny polynomy druhého stupně ze vstupních dat. V našem případě to bude jen `DayOfYear`<sup>2</sup>, ale pokud máme dvě vstupní proměnné X a Y, přidá to X<sup>2</sup>, XY a Y<sup>2</sup>. Můžeme také použít vyšší mocniny, pokud chceme.
Použití `PolynomialFeatures(2)` znamená, že zahrneme všechny druhé mocniny polynomů z vstupních dat. V našem případě to bude jen `DayOfYear`<sup>2</sup>, ale pokud máme dvě vstupní proměnné X a Y, přidá to X<sup>2</sup>, XY a Y<sup>2</sup>. Můžeme také použít polynomy vyššího stupně, pokud chceme.
Pipeline lze používat stejným způsobem jako původní objekt `LinearRegression`, tj. můžeme pipeline `fit`-nout a pak použít `predict` pro získání predikcí. Zde je graf ukazující testovací data a aproximační křivku:
Pipeline lze používat stejným způsobem jako původní objekt `LinearRegression`, tj. můžeme pipeline `fit`-nout a pak použít `predict` pro získání výsledků predikce. Zde je graf ukazující testovací data a aproximační křivku:
<img alt="Polynomial regression" src="../../../../translated_images/cs/poly-results.ee587348f0f1f60b.webp" width="50%" />
<img alt="Polynomická regrese" src="../../../../translated_images/cs/poly-results.ee587348f0f1f60b.webp" width="50%" />
S využitím polynomické regrese můžeme získat mírně nižší MSE a vyšší koeficient determinace, ale ne dramaticky. Musíme vzít v úvahu i další rysy!
Použitím polynomické regrese můžeme získat mírně nižší MSE a vyšší koeficient determinace, ale nikoliv výrazně. Musíme vzít v úvahu také další vlastnosti!
> Vidíte, že minimální ceny dýní jsou pozorovány někde kolem Halloweenu. Jak byste tento jev vysvětlili?
> Můžete vidět, že minimální ceny dýní se zaznamenávají někde kolem Halloweenu. Jak byste to vysvětlili?
🎃 Gratulujeme, právě jste vytvořili model, který může pomoci předpovědět cenu dýní na koláče. Pravděpodobně byste stejný postup mohli opakovat pro všechny druhy dýní, ale to by bylo zdlouhavé. Naučme se nyní, jak brát v úvahu odrůdu dýně v našem modelu!
🎃 Gratulujeme, právě jste vytvořili model, který může pomoci předpovědět cenu dýňových koláčů. Pravděpodobně můžete zopakovat stejný postup pro všechny typy dýní, ale to by bylo únavné. Naučíme se nyní, jak zohlednit odrůdu dýně v našem modelu!
## Kategorické rysy
## Kategorie vlastností
V ideálním světě chceme být schopni předpovídat ceny pro různé odrůdy dýní pomocí stejného modelu. Sloupec `Variety` je však trochu odlišný od sloupců jako `Month`, protože obsahuje nečíselné hodnoty. Takové sloupce se nazývají **kategorické**.
V ideálním světě chceme být schopni předpovídat ceny různých odrůd dýní pomocí jednoho modelu. Sloupec `Variety` je však poněkud odlišný od sloupců jako `Month`, protože obsahuje nenumerické hodnoty. Takové sloupce se nazývají **kategoriální**.
[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
[![ML pro začátečníky - Předpovědi kategoriálních vlastností pomocí lineární regrese](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML pro začátečníky - Předpovědi kategoriálních vlastností pomocí lineární regrese")
> 🎥 Klikněte na obrázek výše pro krátké video o použití kategorických rysů.
> 🎥 Klikněte na obrázek výše pro krátký video přehled použití kategoriálních vlastností.
Zde vidíte, jak průměrná cena závisí na odrůdě:
<img alt="Average price by variety" src="../../../../translated_images/cs/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Průměrná cena podle odrůdy" src="../../../../translated_images/cs/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Abychom mohli zohlednit odrůdu, musíme ji nejdříve převést do číselné podoby, tedy **zakódovat** ji. Existuje několik způsobů, jak to udělat:
Abychom vzali odrůdu v úvahu, musíme ji nejprve převést do numerické formy, tj. **zakódovat** ji. Existuje několik způsobů, jak toho dosáhnout:
* Jednoduché **číselné kódování** vytvoří tabulku různých odrůd a pak nahradí název odrůdy indexem v této tabulce. To však není nejlepší nápad pro lineární regresi, protože lineární regrese vezme skutečnou číselnou hodnotu indexu a přidá ji k výsledku, vynásobí nějakým koeficientem. V našem případě je vztah mezi číslem indexu a cenou jasně nelineární, i když zajistíme, že indexy jsou uspořádány nějak specificky.
* **One-hot encoding** nahradí sloupec `Variety` čtyřmi různými sloupci, jedním pro každou odrůdu. Každý sloupec bude obsahovat `1`, pokud příslušný řádek odpovídá dané odrůdě, a `0` jinak. To znamená, že v lineární regresi budou čtyři koeficienty, po jednom pro každou odrůdu dýní, zodpovědné za "startovací cenu" (nebo spíše "přídavnou cenu") pro danou odrůdu.
* Jednoduché **číselné kódování** vytvoří tabulku různých odrůd, a pak nahradí název odrůdy indexem z této tabulky. To ale není nejlepší nápad pro lineární regresi, protože lineární regrese vezme skutečnou číselnou hodnotu indexu a přidá ji k výsledku, násobenou nějakým koeficientem. Ve našem případě je vztah mezi číslem indexu a cenou zjevně nelineární, i když zajistíme, že indexy budou v určitém specifickém pořadí.
* **One-hot encoding** nahradí sloupec `Variety` čtyřmi různými sloupci, každým pro jednu odrůdu. Každý sloupec bude obsahovat `1`, pokud odpovídající řádek patří dané odrůdě, a `0` jinak. To znamená, že v lineární regresi budou čtyři koeficienty, každý pro jednu odrůdu dýně, odpovědné za "počáteční cenu" (spíše "příplatek") za tuto konkrétní odrůdu.
Níže uvedený kód ukazuje, jak lze odrůdu zakódovat one-hot metodou:
Níže uvedený kód ukazuje, jak můžeme one-hot kódovat odrůdu:
```python
pd.get_dummies(new_pumpkins['Variety'])
@ -301,14 +303,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
Pro trénování lineární regrese s one-hot zakódovanou odrůdou jako vstupem stačí správně inicializovat `X` a `y` data:
K natrénování lineární regrese s one-hot kódovanou odrůdou jako vstupem stačí správně inicializovat data `X` a `y`:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
Zbytek kódu je stejný jako ten, který jsme použili výše pro trénování lineární regrese. Pokud to vyzkoušíte, uvidíte, že střední kvadratická chyba je přibližně stejná, ale koeficient determinace je podstatně vyšší (~77 %). Pro ještě přesnější předpovědi můžeme vzít v úvahu více kategorických rysů i číselné rysy, jako jsou `Month` nebo `DayOfYear`. Pro získání jedné velké množiny rysů můžeme použít `join`:
Zbytek kódu je stejný jako ten, který jsme použili výše k trénování lineární regrese. Pokud to vyzkoušíte, uvidíte, že střední kvadratická chyba je přibližně stejná, ale získáme výrazně vyšší koeficient determinace (~77 %). Pro ještě přesnější předpovědi můžeme vzít v úvahu více kategoriálních vlastností, stejně jako číselné vlastnosti, například `Month` nebo `DayOfYear`. Pro získání jednoho velkého pole vlastností můžeme použít `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -318,14 +320,14 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Zde také bereme v úvahu `City` a typ `Package`, což nám dává MSE 2,84 (10 %) a koeficient determinace 0,94!
Zde také vezmeme v úvahu `City` a typ `Package`, což nám dává MSE 2.84 (10 %) a determinaci 0.94!
## Spojení všeho dohromady
Pro vytvoření nejlepšího modelu můžeme použít kombinovaná (one-hot zakódovaná kategorická + číselná) data z výše uvedeného příkladu společně s polynomickou regresí. Pro vaše pohodlí je zde úplný kód:
Pro nejlepší model můžeme použít kombinovaná (one-hot kódovaná kategoriální + numerická) data z výše uvedeného příkladu společně s polynomickou regresí. Zde je kompletní kód pro vaše pohodlí:
```python
# připravit tréninková data
# nastavit tréninková data
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
@ -335,14 +337,14 @@ y = new_pumpkins['Price']
# provést rozdělení na tréninkovou a testovací sadu
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# nastavit a natrénovat pipeline
# nastavit a trénovat pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# předpovědět výsledky pro testovací data
pred = pipeline.predict(X_test)
# vypočítat MSE a koeficient determinace
# vypočítat střední kvadratickou chybu a koeficient determinace
mse = np.sqrt(mean_squared_error(y_test,pred))
print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
@ -350,36 +352,36 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
To by mělo dát nejlepší koeficient determinace téměř 97 % a MSE=2,23 (~8 % chybovost předpovědi).
Toto by nám mělo dát nejlepší koeficient determinace téměř 97 % a MSE=2.23 (~8% chyba předpovědi).
| Model | MSE | Determinace |
|-------|-----|---------------|
| Lineární s `DayOfYear` | 2,77 (17,2 %) | 0,07 |
| Polynomická s `DayOfYear` | 2,73 (17,0 %) | 0,08 |
| Lineární s `Variety` | 5,24 (19,7 %) | 0,77 |
| Lineární se všemi rysy | 2,84 (10,5 %) | 0,94 |
| Polynomická se všemi rysy | 2,23 (8,25 %) | 0,97 |
|-------|-----|-------------|
| Lineární `DayOfYear` | 2.77 (17,2 %) | 0.07 |
| Polynomický `DayOfYear` | 2.73 (17,0 %) | 0.08 |
| Lineární `Variety` | 5.24 (19,7 %) | 0.77 |
| Lineární všechny vlastnosti | 2.84 (10,5 %) | 0.94 |
| Polynomický všechny vlastnosti | 2.23 (8,25 %) | 0.97 |
🏆 Výborně! Vytvořili jste čtyři regresní modely v jedné lekci a vylepšili kvalitu modelu na 97 %. V poslední části o regresi se naučíte o logistické regresi pro určení kategorií.
🏆 Dobrá práce! Vytvořili jste čtyři regresní modely v jedné lekci a zlepšili kvalitu modelu na 97 %. V závěrečné části o regresi se naučíte o logistické regresi pro určení kategorií.
---
## 🚀Výzva
Otestujte v tomto notebooku několik různých proměnných a sledujte, jak korelace odpovídá přesnosti modelu.
Otestujte v tomto notebooku několik různých proměnných a zjistěte, jak korelace odpovídá přesnosti modelu.
## [Kvíz po přednášce](https://ff-quizzes.netlify.app/en/ml/)
## Recenze a samostudium
## Přezkum a samostudium
V této lekci jsme se naučili o lineární regresi. Existují i jiné důležité typy regrese. Přečtěte si o postupech Stepwise, Ridge, Lasso a Elasticnet. Dobrým kurzem, který se můžete dále učit, je [Stanfordský kurz statistického učení](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
V této lekci jsme se naučili o lineární regresi. Existují další důležité typy regrese. Přečtěte si o technikách Stepwise, Ridge, Lasso a Elasticnet. Dobrým kurzem ke studiu je [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Zadání
## Zadání
[Vybuduj model](assignment.md)
[Postavte model](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Zřeknutí se odpovědnosti**:
Tento dokument byl přeložen pomocí automatické překladové služby [Co-op Translator](https://github.com/Azure/co-op-translator). Přestože usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za autoritativní zdroj. Pro kritické informace doporučujeme profesionální lidský překlad. Nejsme odpovědní za jakékoliv nedorozumění nebo nesprávné interpretace vzniklé použitím tohoto překladu.
**Prohlášení o vyloučení odpovědnosti**:
Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho mateřském jazyce by měl být považován za autoritativní zdroj. Pro zásadní informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoli nedorozumění nebo nesprávné výklady vzniklé použitím tohoto překladu.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,17 +1,17 @@
# Klasifikátory kuchyní 1
V této lekci použijete dataset, který jste si uložili z minulé lekce, plný vyvážených a čistých dat o kuchyních.
V této lekci použijete dataset, který jste si uložili z minulé lekce, plný vyvážených, čistých dat o kuchyních.
Tento dataset použijete s různými klasifikátory k _predikci národní kuchyně na základě skupiny ingrediencí_. Přitom se dozvíte více o některých způsobech, jak lze algoritmy využít pro klasifikační úlohy.
Tento dataset použijete s různými klasifikátory k _predikci dané národní kuchyně na základě skupiny surovin_. Při tom se dozvíte více o některých způsobech, jak lze algoritmy využít pro klasifikační úlohy.
## [Kvíz před lekcí](https://ff-quizzes.netlify.app/en/ml/)
## [Přednáškový kvíz](https://ff-quizzes.netlify.app/en/ml/)
# Příprava
Za předpokladu, že jste dokončili [Lekci 1](../1-Introduction/README.md), ujistěte se, že soubor _cleaned_cuisines.csv_ existuje v kořenové složce `/data` pro tyto čtyři lekce.
Pokud jste dokončili [Lekci 1](../1-Introduction/README.md), ujistěte se, že soubor _cleaned_cuisines.csv_ existuje v kořenové složce `/data` pro tyto čtyři lekce.
## Cvičení - predikce národní kuchyně
1. Pracujte ve složce _notebook.ipynb_ této lekce, importujte tento soubor spolu s knihovnou Pandas:
1. Pracujte ve složce _notebook.ipynb_ v této lekci, importujte tento soubor spolu s knihovnou Pandas:
```python
import pandas as pd
@ -40,14 +40,14 @@ Za předpokladu, že jste dokončili [Lekci 1](../1-Introduction/README.md), uji
import numpy as np
```
1. Rozdělte souřadnice X a y do dvou datových rámců pro trénování. `cuisine` může být datový rámec s označeními:
1. Rozdělte X a y do dvou dataframe pro trénování. `cuisine` může být dataframe s popisky:
```python
cuisines_label_df = cuisines_df['cuisine']
cuisines_label_df.head()
```
Bude vypadat takto:
Bude to vypadat takto:
```output
0 indian
@ -75,75 +75,75 @@ Za předpokladu, že jste dokončili [Lekci 1](../1-Introduction/README.md), uji
| 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 |
Nyní jste připraveni trénovat svůj model!
Nyní jste připraveni na trénování modelu!
## Výběr klasifikátoru
## Volba klasifikátoru
Nyní, když jsou vaše data čistá a připravená k trénování, musíte se rozhodnout, jaký algoritmus použít.
Nyní, když jsou data čistá a připravená k tréninku, musíte se rozhodnout, který algoritmus použít.
Scikit-learn zařazuje klasifikaci pod Supervised Learning, a v této kategorii najdete mnoho způsobů klasifikace. [Rozmanitost](https://scikit-learn.org/stable/supervised_learning.html) je na první pohled docela ohromující. Následující metody zahrnují techniky klasifikace:
Scikit-learn řadí klasifikaci pod Supervised Learning a v této kategorii najdete mnoho způsobů, jak klasifikovat. [Pestrá nabídka](https://scikit-learn.org/stable/supervised_learning.html) může být zpočátku ohromující. Následující metody zahrnují klasifikační techniky:
- Lineární modely
- Support Vector Machines
- Stochastic Gradient Descent
- Nejbližší sousedé
- Gaussovské procesy
- Gaussian procesy
- Rozhodovací stromy
- Ensemble metody (hlasovací klasifikátor)
- Multiclass a multioutput algoritmy (multiclass a multilabel klasifikace, multiclass-multioutput klasifikace)
- Ensemble metody (voting Classifier)
- Multitřídní a vícevýstupové algoritmy (multitřídní a multilabel klasifikace, multitřídní vícevýstupová klasifikace)
> Můžete také použít [neuronové sítě k klasifikaci dat](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), ale to je mimo rozsah této lekce.
> Můžete také použít [neurální sítě k klasifikaci dat](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), ale to je mimo rozsah této lekce.
### Jaký klasifikátor zvolit?
Takže, jaký klasifikátor byste měli zvolit? Často je dobré vyzkoušet několik a hledat dobrý výsledek. Scikit-learn nabízí [srovnání vedle sebe](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) na vytvořeném datasetu, kde porovnává KNeighbors, SVC dvěma způsoby, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB a QuadraticDiscriminationAnalysis, a vizualizuje výsledky:
Takže, jaký klasifikátor zvolit? Často je dobré zkusit několik a hledat dobrý výsledek. Scikit-learn nabízí [porovnání vedle sebe](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) na vytvořeném datasetu, kde porovnává KNeighbors, SVC dvěma způsoby, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB a QuadraticDiscrinationAnalysis a výsledky vizualizuje:
![srovnání klasifikátorů](../../../../4-Classification/2-Classifiers-1/images/comparison.png)
> Grafy generované na dokumentaci Scikit-learn
![comparison of classifiers](../../../../translated_images/cs/comparison.edfab56193a85e7f.webp)
> Grafy vytvořené v dokumentaci Scikit-learn
> AutoML tento problém elegantně řeší tím, že provádí tato srovnání v cloudu, což vám umožňuje vybrat nejlepší algoritmus pro vaše data. Vyzkoušejte to [zde](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML tento problém elegantně řeší tím, že tyto porovnání provádí v cloudu, což vám umožňuje vybrat nejlepší algoritmus pro vaše data. Vyzkoušejte to [zde](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
### Lepší přístup
Lepší způsob než náhodné hádání je však řídit se nápady z této stahovatelné [ML Cheat Sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Zde zjistíme, že pro náš problém s více třídami máme několik možností:
Lepší než hádat naslepo je sledovat nápady z tohoto stahovatelného [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Zde zjistíte, že pro náš multitřídní problém máme několik možností:
![cheatsheet pro problémy s více třídami](../../../../4-Classification/2-Classifiers-1/images/cheatsheet.png)
> Část Microsoft Algorithm Cheat Sheet, popisující možnosti klasifikace s více třídami
![cheatsheet for multiclass problems](../../../../translated_images/cs/cheatsheet.07a475ea444d2223.webp)
> Úsek z Microsoft Algorithm Cheat Sheet, zobrazující možnosti multitřídní klasifikace
✅ Stáhněte si tento cheat sheet, vytiskněte ho a pověste na zeď!
✅ Stáhněte si tento cheat sheet, vytiskněte si ho a pověste na zeď!
### Úvahy
### Uvažování
Podívejme se, jestli dokážeme logicky projít různé přístupy vzhledem k omezením, která máme:
Podívejme se, zda můžeme logicky projít různými přístupy vzhledem k daným omezením:
- **Neuronové sítě jsou příliš náročné**. Vzhledem k našemu čistému, ale minimálnímu datasetu a skutečnosti, že trénování provádíme lokálně pomocí notebooků, jsou neuronové sítě pro tuto úlohu příliš náročné.
- **Žádný klasifikátor pro dvě třídy**. Nepoužíváme klasifikátor pro dvě třídy, takže to vylučuje one-vs-all.
- **Rozhodovací strom nebo logistická regrese by mohly fungovat**. Rozhodovací strom by mohl fungovat, nebo logistická regrese pro data s více třídami.
- **Multiclass Boosted Decision Trees řeší jiný problém**. Multiclass Boosted Decision Tree je nejvhodnější pro neparametrické úlohy, např. úlohy určené k vytváření pořadí, takže pro nás není užitečný.
- **Neurální sítě jsou příliš náročné**. Vzhledem k našemu čistému, ale minimálnímu datasetu a tomu, že trénink probíhá lokálně přes notebooky, jsou neurální sítě příliš těžkopádné na tento úkol.
- **Žádný klasifikátor pro dvě třídy**. Nepoužíváme klasifikátor pro dvě třídy, takže vylučujeme one-vs-all.
- **Rozhodovací strom nebo logistická regrese by mohly fungovat**. Rozhodovací strom může fungovat, nebo logistická regrese pro multitřídní data.
- **Multitřídní Boosted Decision Trees řeší jiný problém**. Multitřídní boosted decision tree je nejvhodnější pro neparametrické úlohy, např. úlohy navržené pro budování žebříčků, takže pro nás není užitečný.
### Použití Scikit-learn
### Použití Scikit-learn
Budeme používat Scikit-learn k analýze našich dat. Existuje však mnoho způsobů, jak použít logistickou regresi v Scikit-learn. Podívejte se na [parametry k předání](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Budeme používat Scikit-learn k analýze našich dat. Existuje však mnoho způsobů, jak v Scikit-learn použít logistickou regresi. Podívejte se na [parametry, které lze předat](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
V podstatě existují dva důležité parametry - `multi_class` a `solver` - které musíme specifikovat, když požádáme Scikit-learn o provedení logistické regrese. Hodnota `multi_class` aplikuje určité chování. Hodnota solveru určuje, jaký algoritmus použít. Ne všechny solvery lze kombinovat se všemi hodnotami `multi_class`.
V zásadě jsou dva důležité parametry - `multi_class` a `solver` - které musíme specifikovat, když požadujeme, aby Scikit-learn provedl logistickou regresi. Hodnota `multi_class` určuje chování. Hodnota `solver` určuje, jaký algoritmus se použije. Ne všechny solvery lze použít se všemi hodnotami `multi_class`.
Podle dokumentace v případě klasifikace s více třídami trénovací algoritmus:
Podle dokumentace v případě multitřídy:
- **Používá schéma one-vs-rest (OvR)**, pokud je možnost `multi_class` nastavena na `ovr`
- **Používá ztrátu křížové entropie**, pokud je možnost `multi_class` nastavena na `multinomial`. (V současné době je možnost `multinomial` podporována pouze solvery lbfgs, sag, saga a newton-cg.)
- **Používá schéma one-vs-rest (OvR)**, pokud je volba `multi_class` nastavena na `ovr`
- **Používá funkci ztráty křížové entropie**, pokud je volba `multi_class` nastavena na `multinomial`. (Momentálně jsou volby `multinomial` podporovány pouze solvery lbfgs, sag, saga a newton-cg)."
> 🎓 'Schéma' zde může být buď 'ovr' (one-vs-rest) nebo 'multinomial'. Vzhledem k tomu, že logistická regrese je skutečně navržena pro podporu binární klasifikace, tato schémata jí umožňují lépe zvládat úlohy klasifikace s více třídami. [zdroj](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 Schéma zde může být buď 'ovr' (one-vs-rest) nebo 'multinomial'. Jelikož je logistická regrese primárně navržena pro binární klasifikaci, tato schémata jí umožňují lépe zvládat multitřídní klasifikační úkoly. [zdroj](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'Solver' je definován jako "algoritmus použitý v optimalizačním problému". [zdroj](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 Solver je definován jako „algoritmus použitý v optimalizačním problému“. [zdroj](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Scikit-learn nabízí tuto tabulku, která vysvětluje, jak solvery zvládají různé výzvy, které představují různé typy datových struktur:
Scikit-learn nabízí tuto tabulku, která vysvětluje, jak jednotlivé solvery zvládají různé výzvy datových struktur:
![solvery](../../../../4-Classification/2-Classifiers-1/images/solvers.png)
![solvers](../../../../translated_images/cs/solvers.5fc648618529e627.webp)
## Cvičení - rozdělení dat
Můžeme se zaměřit na logistickou regresi pro náš první pokus o trénování, protože jste se o ní nedávno učili v předchozí lekci.
Rozdělte svá data na trénovací a testovací skupiny pomocí `train_test_split()`:
Můžeme se zaměřit na logistickou regresi pro náš první tréninkový pokus, protože jste se o ní nedávno učili v předchozí lekci.
Rozdělte svá data do tréninkových a testovacích skupin voláním funkce `train_test_split()`:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
@ -151,9 +151,9 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine
## Cvičení - aplikace logistické regrese
Vzhledem k tomu, že používáte případ s více třídami, musíte si vybrat, jaké _schéma_ použít a jaký _solver_ nastavit. Použijte LogisticRegression s nastavením multi_class na `ovr` a solverem na **liblinear** pro trénování.
Protože používáte multitřídní případ, musíte zvolit, jaké _schéma_ použít a jaký _solver_ nastavit. Použijte LogisticRegression s multitřídním nastavením a **liblinear** solverem k tréninku.
1. Vytvořte logistickou regresi s multi_class nastaveným na `ovr` a solverem nastaveným na `liblinear`:
1. Vytvořte logistickou regresi s multi_class nastaveným na `ovr` a solverem `liblinear`:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
@ -164,26 +164,27 @@ Vzhledem k tomu, že používáte případ s více třídami, musíte si vybrat,
```
✅ Vyzkoušejte jiný solver, například `lbfgs`, který je často nastaven jako výchozí
> Poznámka: Použijte funkci Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) k vyrovnání vašich dat, když je to potřeba.
Přesnost je dobrá na více než **80 %**!
1. Můžete vidět tento model v akci testováním jednoho řádku dat (#50):
> Poznámka: použijte funkci Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) k zploštění dat v případě potřeby.
Přesnost je dobrá, přes **80 %**!
1. Model si můžete vyzkoušet na jednom řádku dat (#50):
```python
print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
print(f'cuisine: {y_test.iloc[50]}')
```
Výsledek je vytištěn:
Výsledek je vytisknut:
```output
ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
cuisine: indian
```
✅ Vyzkoušejte jiný číslo řádku a zkontrolujte výsledky.
1. Pokud se ponoříte hlouběji, můžete ověřit přesnost této predikce:
✅ Vyzkoušejte jiný řádek a ověřte výsledky
1. Pokud se do toho ponoříte hlouběji, můžete zkontrolovat přesnost tohoto předpovědního výsledku:
```python
test= X_test.iloc[50].values.reshape(-1, 1).T
@ -195,7 +196,7 @@ Přesnost je dobrá na více než **80 %**!
topPrediction.head()
```
Výsledek je vytištěn - indická kuchyně je nejlepší odhad s dobrou pravděpodobností:
Výsledek je vytištěn - indická kuchyně je jeho nejlepší odhad s dobrou pravděpodobností:
| | 0 |
| -------: | -------: |
@ -205,9 +206,9 @@ Přesnost je dobrá na více než **80 %**!
| korean | 0.017277 |
| thai | 0.007634 |
Dokážete vysvětlit, proč si model je docela jistý, že se jedná o indickou kuchyni?
Můžete vysvětlit, proč je model docela jistý, že se jedná o indickou kuchyni?
1. Získejte více detailů vytištěním klasifikační zprávy, stejně jako jste to udělali v lekcích o regresi:
1. Získejte více podrobností vytištěním klasifikační zprávy, jak jste to dělali v lekcích o regresi:
```python
y_pred = model.predict(X_test)
@ -221,24 +222,27 @@ Přesnost je dobrá na více než **80 %**!
| 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 |
## 🚀Výzva
## 🚀 Výzva
V této lekci jste použili svá vyčištěná data k vytvoření modelu strojového učení, který dokáže předpovědět národní kuchyni na základě série ingrediencí. Věnujte nějaký čas prozkoumání mnoha možností, které Scikit-learn nabízí pro klasifikaci dat. Ponořte se hlouběji do konceptu 'solver', abyste pochopili, co se děje v zákulisí.
V této lekci jste použili vyčištěná data k vytvoření modelu strojového učení, který dokáže předpovědět národní kuchyni na základě řady ingrediencí. Věnujte čas přečtení si mnoha možností, které Scikit-learn poskytuje pro klasifikaci dat. Ponořte se hlouběji do konceptu „solver“ (řešiče), abyste pochopili, co se děje za scénou.
## [Kvíz po přednášce](https://ff-quizzes.netlify.app/en/ml/)
## Přehled & Samostudium
## Přehled a samostudium
Ponořte se více do matematiky za logistickou regresí v [této lekci](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf).
Prozkoumejte trochu více matematiku za logistickou regresí v [této lekci](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Úkol
## Zadání
[Prostudujte solvery](assignment.md)
[Studujte řešiče](assignment.md)
---
**Prohlášení**:
Tento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Upozornění**:
Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). Přestože usilujeme o přesnost, mějte prosím na paměti, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho rodném jazyce by měl být považován za autoritativní zdroj. Pro kritické informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoli nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -10,14 +10,14 @@
### 🌐 Podpora více jazyků
#### Podporováno prostřednictvím GitHub Action (automatické a vždy aktuální)
#### Podporováno přes GitHub Action (automatizováno a vždy aktuální)
<!-- 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](./README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md)
> **Raději chcete klonovat lokálně?**
> **Raději chcete naklonovat lokálně?**
>
> Tento repozitář zahrnuje více než 50 jazykových překladů, což výrazně zvětšuje velikost stahování. Pro klonování bez překladů použijte sparse checkout:
> Toto repozitář obsahuje více než 50 jazykových překladů, což výrazně zvětšuje velikost ke stažení. Pro naklonování bez překladů použijte sparse checkout:
>
> **Bash / macOS / Linux:**
> ```bash
@ -33,63 +33,63 @@
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> To vám poskytne vše potřebné k dokončení kurzu a mnohem rychlejší stažení.
> Tím získáte vše potřebné pro absolvování kurzu s mnohem rychlejším stažením.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Připojte se k naší komunitě
#### Přidejte se k naší komunitě
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Máme probíhající sérii Learn with AI na Discordu, dozvíte se více a připojte se k nám na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. září 2025. Získáte tipy a triky pro používání GitHub Copilot pro Data Science.
Na Discordu probíhá série Learn with AI, dozvíte se více a připojit se můžete na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. září 2025. Získáte tipy a triky jak používat GitHub Copilot pro Data Science.
![Learn with AI series](../../translated_images/cs/3.9b58fd8d6c373c20.webp)
# Strojové učení pro začátečníky - učební plán
# Strojové učení pro začátečníky vzdělávací program
> 🌍 Cestujte po celém světě, zatímco zkoumáme strojové učení prostřednictvím kultur světa 🌍
> 🌍 Procestujte svět a prozkoumejte strojové učení prostřednictvím světových kultur 🌍
Cloud Advocates ve společnosti Microsoft vám s potěšením představují 12týdenní učební plán se 26 lekcemi, které se věnují **strojovému učení**. V tomto učebním plánu se naučíte, co se někdy nazývá **klasické strojové učení**, přičemž používáme především knihovnu Scikit-learn a vyhýbáme se hlubokému učení, které je pokryto v našem [učebním plánu AI pro začátečníky](https://aka.ms/ai4beginners). Tyto lekce zkombinujte také s naším [učebním plánem Data Science pro začátečníky](https://aka.ms/ds4beginners).
Cloud Advocates v Microsoftu s potěšením nabízejí 12týdenní vzdělávací program o 26 lekcích zaměřený na **strojové učení**. V tomto programu se naučíte to, čemu se někdy říká **klasické strojové učení**, přičemž jako knihovnu použijeme převážně Scikit-learn a vyhneme se hlubokému učení, které je předmětem našeho [AI for Beginners programu](https://aka.ms/ai4beginners). Tyto lekce můžete také kombinovat s naším ['Data Science for Beginners' kurzem](https://aka.ms/ds4beginners).
Cestujte s námi po celém světě, když aplikujeme tyto klasické techniky na data z mnoha oblastí světa. Každá lekce obsahuje před a po lekci kvízy, písemné pokyny k dokončení lekce, řešení, úkol a další. Naše projektově orientovaná pedagogika vám umožňuje učit se při budování, což je osvědčený způsob, jak nové znalosti "ulpí".
Cestujte s námi po celém světě a aplikujte tyto klasické techniky na data z různých oblastí světa. Každá lekce obsahuje před- a po-lekční kvízy, psané instrukce k dokončení lekce, řešení, úkoly a další. Naše projektově orientovaná pedagogika vám umožňuje učit se při tvorbě, což je osvědčený způsob, jak si nové dovednosti lépe osvojit.
**✍️ Srdečné díky našim autorům** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu a Amy Boyd
**🎨 Také díky našim ilustrátorům** Tomomi Imura, Dasani Madipalli a Jen Looper
**🎨 Také děkujeme ilustrátorům** Tomomi Imura, Dasani Madipalli a Jen Looper
**🙏 Zvláštní díky 🙏 našim autorům, recenzentům a přispěvatelům obsahu ze studentské ambasady Microsoftu**, zejména Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila a Snigdha Agarwal
**🙏 Zvláštní poděkování 🙏 patří Microsoft Student Ambassador autorům, recenzentům a přispěvatelům obsahu**, zejména Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila a Snigdha Agarwal
**🤩 Extra poděkování patří také ambasadorům Microsoft Student Ericu Wanjauovi, Jasleen Sondhi a Vidushi Guptě za naše lekce v jazyce R!**
**🤩 Extra poděkování Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi a Vidushi Gupta za naše lekce v R!**
# Začínáme
Postupujte takto:
1. **Vytvořte Fork repozitáře**: Klikněte na tlačítko „Fork“ v pravém horním rohu této stránky.
2. **Klonujte repozitář**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
Postupujte podle těchto kroků:
1. **Forkněte repozitář**: Klikněte na tlačítko "Fork" v pravém horním rohu této stránky.
2. **Naklonujte repozitář**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [najděte všechny doplňkové zdroje pro tento kurz v naší kolekci Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [všechny doplňkové zdroje k tomuto kurzu najdete v naší kolekci Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Potřebujete pomoc?** Podívejte se do našeho [Průvodce řešením problémů](TROUBLESHOOTING.md) pro řešení běžných problémů s instalací, nastavením a spouštěním lekcí.
> 🔧 **Potřebujete pomoc?** Podívejte se na [Průvodce řešením problémů](TROUBLESHOOTING.md) pro řešení běžných problémů s instalací, nastavením a spouštěním lekcí.
**[Studenti](https://aka.ms/student-page)**, pro použití tohoto učebního plánu si vytvořte fork celého repozitáře na svůj vlastní GitHub účet a cvičení dokončujte sami nebo ve skupině:
**[Studenti](https://aka.ms/student-page)**, pro využití tohoto programu si forknete celý repozitář na svůj vlastní GitHub účet a plňte cvičení sami nebo ve skupině:
- Začněte před-lecturním kvízem.
- Přečtěte si lekci a dokončete aktivity, zastavujte se a přemýšlejte u každé kontroly znalostí.
- Pokuste se vytvářet projekty tak, že pochopíte lekce místo pouhého spuštění řešení; zda řešení najdete v adresáři `/solution` v každé lekci orientované na projekt.
- Udělejte post-lecturní kvíz.
- Dokončete výzvu.
- Dokončete úkol.
- Po dokončení skupiny lekcí navštivte [Diskusní fórum](https://github.com/microsoft/ML-For-Beginners/discussions) a „učte se nahlas“ vyplněním příslušného hodnotícího formuláře PAT. 'PAT' je nástroj hodnocení pokroku, který vyplníte pro zvýšení svého učení. Můžete také reagovat na další PATy, abychom se mohli učit společně.
- Začněte přednáškovým kvízem.
- Přečtěte si přednášku a dokončete aktivity, zastavujte se a zamýšlejte u každé kontroly znalostí.
- Snažte se projekty vytvořit pochopením lekcí místo pouhého spuštění kódu řešení; nicméně ten je k dispozici ve složkách `/solution` u každé lekce zaměřené na projekty.
- Dejte si po přednášce kvíz.
- Vyřešte výzvu.
- Dokončete zadání.
- Po dokončení skupiny lekcí navštivte [Diskusní fórum](https://github.com/microsoft/ML-For-Beginners/discussions) a "učte se nahlas" vyplněním příslušné rubriky PAT. PAT je nástroj pro hodnocení pokroku rubrika, kterou vyplníte k dalšímu prohloubení učení. Můžete také reagovat na další PATy, abychom se učili společně.
> Pro další studium doporučujeme sledovat tyto [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduly a vzdělávací cesty.
> Pro další studium doporučujeme sledovat tyto [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduly a výukové cesty.
**Učitelé**, máme [několik doporučení](for-teachers.md) o tom, jak používat tento učební plán.
**Učitelé**, do [pro vás máme zahrnuté některé návrhy](for-teachers.md) jak využívat tento vzdělávací program.
---
## Video průvodci
Některé lekce jsou k dispozici jako krátká videa. Najdete je přímo v lekcích nebo na [playlistu ML for Beginners na kanálu Microsoft Developer na YouTube](https://aka.ms/ml-beginners-videos) kliknutím na obrázek níže.
Některé lekce jsou dostupné jako krátká videa. Najdete je přímo v lekcích nebo na [ML for Beginners playlistu na YouTube kanále Microsoft Developer](https://aka.ms/ml-beginners-videos) kliknutím na obrázek níže.
[![ML for beginners banner](../../translated_images/cs/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -99,76 +99,76 @@ Některé lekce jsou k dispozici jako krátká videa. Najdete je přímo v lekc
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif od** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif vytvořil** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Klikněte na obrázek výše pro zhlédnutí videa o projektu a lidech, kteří jej vytvořili!
> 🎥 Klikněte na obrázek výše pro video o projektu a lidech, kteří jej vytvořili!
---
## Pedagogika
Při budování tohoto učebního plánu jsme zvolili dva pedagogické principy: zajistit, aby byl **praktický a projektově orientovaný** a aby obsahoval **četné kvízy**. Navíc má tento učební plán společné **téma** pro soudržnost.
Při tvorbě tohoto programu jsme zvolili dvě pedagogické zásady: zajištění praktické **projektové výuky** a časté **kvízy**. Navíc má celý program společné **téma** pro zajištění soudržnosti.
Zajištěním souladu obsahu s projekty je proces pro studenty poutavější a zvyšuje se uchování konceptů. Kromě toho nízkorizikový kvíz před lekcí nastavuje studentovi úmysl učit se dané téma, zatímco druhý kvíz po lekci zajišťuje další uchování znalostí. Tento učební plán je navržen tak, aby byl flexibilní a zábavný a může být absolvován celý nebo částečně. Projekty začínají malé a ke konci 12týdenního cyklu se postupně stávají složitějšími. Tento učební plán také obsahuje poscriptum o reálných aplikacích ML, které může být použito jako extra kredit nebo jako základ pro diskusi.
Zajištěním sladění obsahu s projekty je proces pro studenty zajímavější a retence konceptů se zlepší. Nízkorychlostní kvíz před lekcí nastaví motivaci studenta k učení a druhý kvíz po lekci podporuje další zapamatování. Program je navržen jako flexibilní a zábavný, lze ho absolvovat celý nebo po částech. Projekty začínají jednoduše a postupně se během 12týdenního cyklu zvyšuje jejich složitost. Program obsahuje také posléze doplněk o použití ML v reálném světě, který lze použít jako bonusové zadání nebo základ pro diskusi.
> Najděte naše [Pravidla chování](CODE_OF_CONDUCT.md), [Příspěvky](CONTRIBUTING.md), [Překlady](..) a [Řešení problémů](TROUBLESHOOTING.md). Vítáme vaši konstruktivní zpětnou vazbu!
> Najdete zde naše [Kodex chování](CODE_OF_CONDUCT.md), [Příspěvky](CONTRIBUTING.md), [Překlady](..) a [Řešení problémů](TROUBLESHOOTING.md). Vítáme vaše konstruktivní připomínky!
## Každá lekce obsahuje
- volitelnou sketchnotu
- volitelnou skicu v poznámce
- volitelné doplňkové video
- video průvodce (jen některé lekce)
- [před-lecturní rozcvičovací kvíz](https://ff-quizzes.netlify.app/en/ml/)
- písemnou lekci
- u lekcí orientovaných na projekty krok za krokem průvodce, jak projekt vytvořit
- [přednáškový warmup kvíz](https://ff-quizzes.netlify.app/en/ml/)
- psanou lekci
- u projektových lekcí detailní návod krok za krokem, jak projekt vytvořit
- kontroly znalostí
- výzvu
- doplňkové čtení
- doplňující četbu
- úkol
- [post-lecturní kvíz](https://ff-quizzes.netlify.app/en/ml/)
> **Poznámka o jazycích**: Tyto lekce jsou primárně napsané v Pythonu, ale mnoho z nich je také dostupných v R. Pro dokončení lekce v R přejděte do složky `/solution` a hledejte lekce v R. Ty mají příponu .rmd, která představuje **R Markdown** soubor, což lze jednoduše definovat jako vložení `kódových bloků` (v R nebo jiných jazycích) a `YAML záhlaví` (které určuje, jak formátovat výstupy jako PDF) v rámci `Markdown dokumentu`. Takto slouží jako příkladný autorský rámec pro datovou vědu, protože umožňuje kombinovat váš kód, jeho výstup a vaše myšlenky tím, že vám dovolí je psát v Markdownu. Navíc R Markdown dokumenty lze vyrenderovat do výstupních formátů, jako je PDF, HTML nebo Word.
> **Poznámka o kvízech**: Všechny kvízy jsou obsaženy ve [složce Quiz App](../../quiz-app), dohromady 52 kvízů po třech otázkách. Jsou propojeny z lekcí, ale kvízovou aplikaci lze spustit lokálně; postupujte podle instrukcí ve složce `quiz-app` pro lokální hostování nebo nasazení na Azure.
| Číslo lekce | Téma | Skupina lekcí | Výukové cíle | Propojená lekce | Autor |
| :---------: | :----------------------------------------------------------: | :------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |
| 01 | Úvod do strojového učení | [Úvod](1-Introduction/README.md) | Naučte se základní pojmy strojového učení | [Lekce](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Historie strojového učení | [Úvod](1-Introduction/README.md) | Seznamte se s historií tohoto oboru | [Lekce](1-Introduction/2-history-of-ML/README.md) | Jen a Amy |
| 03 | Spravedlnost a strojové učení | [Úvod](1-Introduction/README.md) | Jaké jsou důležité filozofické otázky kolem spravedlnosti, které by studenti měli zvážit při vytváření a aplikaci ML modelů? | [Lekce](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Techniky strojového učení | [Úvod](1-Introduction/README.md) | Jaké techniky používají výzkumníci strojového učení pro stavbu ML modelů? | [Lekce](1-Introduction/4-techniques-of-ML/README.md) | Chris a Jen |
| 05 | Úvod do regrese | [Regrese](2-Regression/README.md) | Začněte s Pythonem a Scikit-learn pro regresní modely | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Vizualizace a čištění dat pro ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Stavba lineárních a polynomiálních regresních modelů | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen a Dmitry • Eric Wanjau |
| 08 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Stavba logistického regresního modelu | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Webová aplikace 🔌 | [Web App](3-Web-App/README.md) | Vytvořte webovou aplikaci, která využívá váš vytrénovaný model | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Úvod do klasifikace | [Klasifikace](4-Classification/README.md) | Čištění, příprava a vizualizace dat; úvod do klasifikace | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen a Cassie • Eric Wanjau |
| 11 | Lahodná asijská a indická kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Úvod do klasifikátorů | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen a Cassie • Eric Wanjau |
| 12 | Lahodná asijská a indická kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Další klasifikátory | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen a Cassie • Eric Wanjau |
| 13 | Lahodná asijská a indická kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Vytvoření doporučovací webové aplikace s vaším modelem | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Úvod do shlukování | [Shlukování](5-Clustering/README.md) | Čištění, příprava a vizualizace dat; úvod do shlukování | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Průzkum nigerijských hudebních chutí 🎧 | [Shlukování](5-Clustering/README.md) | Prozkoumejte metodu shlukování K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Úvod do zpracování přirozeného jazyka ☕️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Naučte se základy NLP vytvořením jednoduchého bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Běžné úlohy NLP ☕️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Prohlubte své znalosti NLP pochopením běžných úloh nezbytných pro práci s jazykovými strukturami | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Překlad a analýza sentimentu ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Překlad a analýza sentimentu s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantické hotely Evropy ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Analýza sentimentu na recenzích hotelů 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantické hotely Evropy ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Analýza sentimentu na recenzích hotelů 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Úvod do predikce časových řad | [Časové řady](7-TimeSeries/README.md) | Úvod do předpovídání časových řad | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Světová spotřeba energie ⚡️ - předpovídání časových řad s ARIMA | [Časové řady](7-TimeSeries/README.md) | Předpovídání časových řad s ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Světová spotřeba energie ⚡️ - předpovídání časových řad s SVR | [Časové řady](7-TimeSeries/README.md) | Předpovídání časových řad pomocí Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Úvod do posilovaného učení | [Posilované učení](8-Reinforcement/README.md) | Úvod do posilovaného učení s Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Pomozte Peterovi vyhnout se vlkovi! 🐺 | [Posilované učení](8-Reinforcement/README.md) | Posilované učení Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Posloupnost | Reálné scénáře a aplikace ML v praxi | [ML v praxi](9-Real-World/README.md) | Zajímavé a poučné reálné aplikace klasického ML | [Lekce](9-Real-World/1-Applications/README.md) | Tým |
| Posloupnost | Ladění modelů ML pomocí RAI dashboardu | [ML v praxi](9-Real-World/README.md) | Ladění modelů ve strojovém učení pomocí komponent dashboardu Responsible AI | [Lekce](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [najděte všechny další zdroje k tomuto kurzu v naší kolekci Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
- [po-přednáškový kvíz](https://ff-quizzes.netlify.app/en/ml/)
> **Poznámka o jazycích**: Tyto lekce jsou primárně napsány v Pythonu, ale mnoho z nich je také dostupných v R. Pro dokončení lekce v R přejděte do složky `/solution` a hledejte lekce v R. Mají příponu .rmd, která představuje **R Markdown** soubor, což lze jednoduše definovat jako vložení `kódových bloků` (v R nebo jiných jazycích) a `YAML hlavičky` (která určuje, jak formátovat výstupy jako PDF) do `Markdown dokumentu`. Jako takový slouží jako vzorový autorský rámec pro datovou vědu, protože vám umožňuje kombinovat váš kód, jeho výstup a vaše myšlenky tím, že vám umožní je zapisovat v Markdownu. Navíc lze dokumenty R Markdown vyrenderovat do výstupních formátů jako PDF, HTML nebo Word.
> **Poznámka o kvízech**: Všechny kvízy jsou obsaženy ve [složce Quiz App](../../quiz-app), celkem je zde 52 kvízů po třech otázkách. Jsou propojené z lekcí, ale kvízovou aplikaci lze spustit lokálně; následujte instrukce ve složce `quiz-app` pro lokální hostování nebo nasazení na Azure.
| Číslo lekce | Téma | Skupina lekcí | Učební cíle | Propojená lekce | Autor |
| :---------: | :-----------------------------------------------------------: | :-----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: |
| 01 | Úvod do strojového učení | [Úvod](1-Introduction/README.md) | Naučit se základní koncepty strojového učení | [Lekce](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Historie strojového učení | [Úvod](1-Introduction/README.md) | Naučit se historii tohoto oboru | [Lekce](1-Introduction/2-history-of-ML/README.md) | Jen a Amy |
| 03 | Spravedlnost a strojové učení | [Úvod](1-Introduction/README.md) | Jaké jsou důležité filozofické otázky kolem spravedlnosti, které by studenti měli zvážit při tvorbě a aplikaci ML modelů? | [Lekce](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Techniky strojového učení | [Úvod](1-Introduction/README.md) | Jaké techniky používají výzkumníci ML k vytváření ML modelů? | [Lekce](1-Introduction/4-techniques-of-ML/README.md) | Chris a Jen |
| 05 | Úvod do regrese | [Regrese](2-Regression/README.md) | Začít s Pythonem a Scikit-learn pro regresní modely | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Vizualizovat a čistit data pro přípravu na ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Vytvořit lineární a polynomiální regresní modely | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen a Dmitry • Eric Wanjau |
| 08 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Vytvořit logistický regresní model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Webová aplikace 🔌 | [Web App](3-Web-App/README.md) | Vytvořit webovou aplikaci pro použití vašeho natrénovaného modelu | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Úvod do klasifikace | [Klasifikace](4-Classification/README.md) | Čistit, připravit a vizualizovat data; úvod do klasifikace | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen a Cassie • Eric Wanjau |
| 11 | Lahodné asijské a indické kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Úvod do klasifikátorů | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen a Cassie • Eric Wanjau |
| 12 | Lahodné asijské a indické kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Další klasifikátory | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen a Cassie • Eric Wanjau |
| 13 | Lahodné asijské a indické kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Vytvořit doporučovací webovou aplikaci pomocí vašeho modelu | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Úvod do shlukování | [Shlukování](5-Clustering/README.md) | Čistit, připravit a vizualizovat data; Úvod do shlukování | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Prozkoumávání nigerických hudebních chutí 🎧 | [Shlukování](5-Clustering/README.md) | Prozkoumat metodu shlukování K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Úvod do zpracování přirozeného jazyka ☕️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Naučit se základy NLP vytvořením jednoduchého bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Běžné NLP úkoly ☕️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Prohloubit své znalosti NLP pochopením běžných úkolů potřebných pro práci s jazykovými strukturami | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Překlad a analýza sentimentu ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Překlad a analýza sentimentu na základě Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantické hotely Evropy ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Analýza sentimentu na základě hodnocení hotelů 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantické hotely Evropy ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Analýza sentimentu na základě hodnocení hotelů 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Úvod do prognózování časových řad | [Časové řady](7-TimeSeries/README.md) | Úvod do prognózování časových řad | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Světová spotřeba energie ⚡️ - prognózování časových řad s ARIMA | [Časové řady](7-TimeSeries/README.md) | Prognózování časových řad pomocí ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Světová spotřeba energie ⚡️ - prognózování časových řad s SVR | [Časové řady](7-TimeSeries/README.md) | Prognózování časových řad pomocí Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Úvod do posilovaného učení | [Posilované učení](8-Reinforcement/README.md) | Úvod do posilovaného učení s Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Pomozte Petrovi vyhnout se vlkovi! 🐺 | [Posilované učení](8-Reinforcement/README.md) | Posilované učení ve Gymu | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Scénáře a aplikace ML v reálném světě | [ML v praxi](9-Real-World/README.md) | Zajímavé a odhalující aplikace klasického ML v reálném světě | [Lekce](9-Real-World/1-Applications/README.md) | Tým |
| Postscript | Ladění modelů v ML pomocí RAI dashboardu | [ML v praxi](9-Real-World/README.md) | Ladění modelů v strojovém učení pomocí komponent dashboardu Responsible AI | [Lekce](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [najděte všechny další zdroje pro tento kurz v naší kolekci Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Offline přístup
Tuto dokumentaci můžete spouštět offline pomocí [Docsify](https://docsify.js.org/#/). Naklonujte si tento repozitář, [nainstalujte Docsify](https://docsify.js.org/#/quickstart) na místní počítač a pak v kořenové složce repozitáře zadejte `docsify serve`. Webová stránka bude dostupná na portu 3000 na vaší lokální adrese: `localhost:3000`.
Tuto dokumentaci můžete spustit offline pomocí [Docsify](https://docsify.js.org/#/). Vytvořte fork tohoto repozitáře, [nainstalujte Docsify](https://docsify.js.org/#/quickstart) na svůj lokální počítač a pak v kořenové složce tohoto repozitáře zadejte příkaz `docsify serve`. Web bude dostupný na portu 3000 na vašem localhostu: `localhost:3000`.
## PDF
Najděte pdf osnovy s odkazy [zde](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
Najdete pdf osnovy s odkazy [zde](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Další kurzy
@ -182,11 +182,11 @@ Náš tým vytváří i další kurzy! Podívejte se:
[![LangChain pro začátečníky](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
### Azure / Edge / MCP / Agenti
[![AZD pro začátečníky](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 pro začátečníky](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 pro začátečníky](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 Agent pro začátečníky](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 agenti pro začátečníky](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)
---
@ -205,7 +205,7 @@ Náš tým vytváří i další kurzy! Podívejte se:
[![Kybernetická bezpečnost pro začátečníky](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)
[![Webový vývoj pro začátečníky](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 pro začátečníky](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 vývoj pro začátečníky](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)
[![Vývoj XR pro začátečníky](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)
---
@ -217,16 +217,27 @@ Náš tým vytváří i další kurzy! Podívejte se:
## Získání pomoci
Pokud se zaseknete nebo máte otázky ohledně vývoje AI aplikací. Připojte se k ostatním studentům a zkušeným vývojářům v diskuzích o MCP. Je to podpůrná komunita, kde jsou otázky vítány a znalosti se sdílejí volně.
Pokud se zaseknete nebo máte otázky při učení strojového učení nebo při vytváření AI aplikací, nebojte se — pomoc je k dispozici.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Můžete se připojit k diskuzím s dalšími studenty a vývojáři, klást otázky a sdílet své nápady s komunitou.
- Připojte se ke komunitě, abyste mohli klást otázky a učit se s ostatními
- Diskutujte o konceptech strojového učení a nápadech na projekty
- Získejte vedení od zkušených vývojářů
Podpůrná komunita je skvělý způsob, jak rozvíjet své dovednosti a rychleji řešit problémy.
Pokud máte zpětnou vazbu k produktu nebo zaznamenáte chyby při vývoji, navštivte:
[Microsoft Foundry Discord Community](https://discord.gg/nTYy5BXMWG)
Pokud narazíte na chyby, problémy nebo máte návrhy na vylepšení, můžete také otevřít **Issue** v tomto repozitáři a nahlásit problém.
Pro zpětnou vazbu k produktu nebo pro hledání existujících příspěvků v komunitě navštivte Vývojářské fórum:
[![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)
## Další tipy pro učení
- Projděte si bloky poznámek po každé lekci pro lepší pochopení.
- Po každé lekci si projděte poznámkové bloky pro lepší pochopení.
- Procvičujte implementaci algoritmů sami.
- Prozkoumejte reálné datové sady pomocí naučených konceptů.
@ -234,5 +245,5 @@ Pokud máte zpětnou vazbu k produktu nebo zaznamenáte chyby při vývoji, nav
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Prohlášení o vyloučení odpovědnosti**:
Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). Ačkoli usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Originální dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro kritické informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoli nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu.
Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, berte prosím na vědomí, že automatické překlady mohou obsahovat chyby nebo nepřesnosti. Originální dokument v jeho mateřském jazyce by měl být považován za autoritativní zdroj. Pro zásadní informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakákoliv nedorozumění nebo mylné výklady vyplývající z použití tohoto překladu.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -90,8 +90,8 @@
"language_code": "hu"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T10:00:15+00:00",
"original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
"translation_date": "2026-04-20T19:29:15+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "hu"
},
@ -168,8 +168,8 @@
"language_code": "hu"
},
"4-Classification/2-Classifiers-1/README.md": {
"original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b",
"translation_date": "2025-09-05T16:17:35+00:00",
"original_hash": "cb761595e5b6c42b99bb81bd13683311",
"translation_date": "2026-04-20T19:30:13+00:00",
"source_file": "4-Classification/2-Classifiers-1/README.md",
"language_code": "hu"
},
@ -552,8 +552,8 @@
"language_code": "hu"
},
"README.md": {
"original_hash": "7fb48097f57e680b380cd9aae988d317",
"translation_date": "2026-04-06T15:58:33+00:00",
"original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0",
"translation_date": "2026-04-20T19:27:40+00:00",
"source_file": "README.md",
"language_code": "hu"
},

@ -1,137 +1,139 @@
# Regressziós modell építése Scikit-learn használatával: regresszió négyféleképpen
# Regressziós modell építése Scikit-learn segítségével: regresszió négyféle módon
## Kezdő megjegyzés
## Kezdő jegyzet
Lineáris regressziót akkor használunk, amikor egy **numerikus értéket** akarunk megjósolni (például ház árát, hőmérsékletet vagy értékesítést).
Ez úgy működik, hogy megkeresi azt a legjobb egyenest, amely legjobban reprezentálja a bemeneti jellemzők és a kimenet közötti kapcsolatot.
A lineáris regressziót akkor használjuk, amikor egy **numerikus értéket** szeretnénk előre jelezni (például ház árát, hőmérsékletet vagy eladásokat).
Az a működése, hogy megkeresi azt a legjobb egyenest, amely bemeneti jellemzők és a kimenet közötti kapcsolatot leginkább reprezentálja.
Ebben a leckében a fogalom megértésére koncentrálunk, mielőtt további, fejlettebb regressziós technikákat vizsgálnánk.
![Lineáris vs polinomiális regresszió infografika](../../../../translated_images/hu/linear-polynomial.5523c7cb6576ccab.webp)
Ebben a leckében a koncepció megértésére fókuszálunk, mielőtt fejlettebb regressziós technikákba merülnénk.
![Lineáris vs polinomiális regresszió infografika](../../../../translated_images/hu/linear-polynomial.5523c7cb6576ccab.webp)
> Infografika készítője: [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
> ### [Ez a lecke elérhető R nyelven is!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [Ez a lecke elérhető R-ben is!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Bevezetés
Eddig megvizsgáltad, mi az a regresszió, és mintákat néztél meg a sütőtök árképzési adatbázisból, amelyet az egész lecke során fogunk használni. Meg is jelenítetted azt a Matplotlib segítségével.
Eddig megvizsgáltad, hogy mi az a regresszió, mint fogalom, mintapéldákon keresztül a sütőtök árképzési adatkészletéből, amelyet a leckén át használni fogunk. Vizualizáltad is az adatokat Matplotlib segítségével.
Most készen állsz arra, hogy mélyebben beleásd magad a regresszió témájába a gépi tanuláshoz. Míg a megjelenítés lehetővé teszi az adatok megértését, a gépi tanulás valódi ereje a _modellek betanításában_ rejlik. A modelleket történeti adatokon tanítjuk meg, hogy automatikusan megragadják az adatok közötti összefüggéseket, és lehetővé tegyék, hogy új adatokra előrejelzéseket készítsünk, melyekkel a modell még nem találkozott.
Most készen állsz, hogy mélyebbre áss a gépi tanulás regressziós modelljeiben. Míg a vizualizáció segít az adatok értelmezésében, a gépi tanulás valódi ereje az _modellek betanításából_ ered. A modelleket történelmi adatokra tanítjuk, hogy automatikusan megragadják az adatok közötti összefüggéseket, és lehetővé tegyék, hogy előrejelzéseket készítsenek új, korábban nem látott adatokról.
Ebben a leckében két regressziótípust fogsz megismerni: az _alapvető lineáris regressziót_ és a _polinomiális regressziót_, néhány matematikai háttérrel együtt. Ezek a modellek lehetővé teszik, hogy előre jelezzük a sütőtök árakat különböző bemeneti adatok alapján.
Ebben a leckében két regressziótípusról tanulsz: az _alap lineáris regresszióról_ és a _polinomiális regresszióról_, illetve ezek mögött álló matematikáról. Ezek a modellek lehetővé teszik, hogy előre jelezzük a sütőtök árakat a különböző bemeneti adatok alapján.
[![Gépi tanulás kezdőknek A lineáris regresszió megértése](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "Gépi tanulás kezdőknek A lineáris regresszió megértése")
> 🎥 Kattints a fenti képre egy rövid videós áttekintésért a lineáris regresszióról.
> A tananyag során minimális matematikai ismerettel számolunk, és arra törekszünk, hogy a más területekről érkező diákok számára is érthető legyen, ezért figyelj a megjegyzésekre, 🧮 kiemelésekre, ábrákra és egyéb tanulási segédeszközökre, amelyek segítik a megértést.
> Az egész tananyag során minimális matematikai előismeretet feltételezünk, és más területekről érkező hallgatók számára is érthetővé tesszük, ezért figyelj a jegyzetekre, 🧮 hívásokra, diagramokra és más tanulást segítő eszközökre.
### Előfeltétel
Már meg kell ismerned a sütőtök adatok szerkezetét, amelyeket megvizsgálunk. Ezek előre betöltve és megtisztítva szerepelnek ennél a leckénél az _notebook.ipynb_ fájlban. Ebben a fájlban a sütőtök ár bushelenként jelenik meg egy új adatkeretben. Győződj meg róla, hogy futtatni tudod ezeket a jegyzetfüzeteket a Visual Studio Code kerneljeiben.
Már ismerned kell a sütőtök adatstruktúráját, amelyet vizsgálunk. Ezt megtalálod előbetöltve és előtisztítva a leckéhez tartozó _notebook.ipynb_ fájlban. Ebben a fájlban a sütőtök árát bushelenként jelenítjük meg egy új adatkeretben. Győződj meg róla, hogy futtatni tudod ezeket a notebookokat a Visual Studio Code kerneljeiben.
### Előkészület
### Előkészítés
Emlékeztetőül: ezt az adatot azért töltöd be, hogy kérdéseket tehess fel vele kapcsolatban.
Emlékeztetőül, az adatokat azért töltöd be, hogy kérdéseket tehess fel velük kapcsolatban.
- Mikor a legjobb idő sütőtököt vásárolni?
- Milyen árat várhatok mini sütőtökök egy csomagjára?
- Érdemes-e fél bushel kosárban vagy inkább 1 1/9 bushel dobozban venni?
- Mikor a legjobb idő sütőtököt vásárolni?
- Milyen árat várhatok egy kisebb sütőtökös dobozra?
- Érdemes fél busheles kosárban vagy 1 1/9 busheles dobozban vásárolni?
Nézzük tovább ezt az adatot.
Folytassuk az adatok vizsgálatát.
Az előző leckében létrehoztál egy Pandas adatkeretet, amelybe betöltötted az eredeti adatállomány egy részét és egységesítetted az árakat bushelenként. Így azonban csak kb. 400 adatpontot nyertél, és csak a őszi hónapokra vonatkozóan.
Az előző leckében létrehoztál egy Pandas adatkeretet és feltöltötted azt az eredeti adatkészlet egy részével, szabványosítva az árakat bushel alapján. Ez azonban csak kb. 400 adatpontot eredményezett, és csak az őszi hónapokra.
Nézd meg az ebben a leckében előre betöltött adatot a jegyzetfüzet mellékleteként. Az adat már be van töltve, és egy kezdeti pontdiagram is készült a hónap adatainak megjelenítésére. Talán sikerül a tisztítással árnyaltabb képet kapni az adat természetéről.
Nézd meg a leckéhez tartozó előre betöltött adatokat és az első szórásdiagramot a hónapok megjelenítésére. Talán részletesebben megérthetjük az adat természettét, ha jobban megtisztítjuk azt.
## Egy lineáris regressziós egyenes
Ahogy az 1. leckében tanultad, a lineáris regressziós feladat célja egy olyan egyenes ábrázolása, amely:
Amint az 1. leckében tanultad, egy lineáris regressziós gyakorlat célja, hogy egy egyenest tudjunk ábrázolni, amely:
- **Variable kapcsolatok bemutatása**. Megmutatja a változók közötti kapcsolatot
- **Előrejelzés készítése**. Pontosan megjósolja, hogy az új adatpont hol fog elhelyezkedni az egyeneshez képest.
- **Változók közötti kapcsolatot mutat.** Bemutatja a változók közötti összefüggést
- **Előrejelzést tesz lehetővé.** Pontosan megjósolja, hol esik egy új adatpont az egyeneshez képest.
Tipikusan a **legkisebb négyzetek regresszió** alkalmazása révén rajzolunk ilyen egyenest. A "legkisebb négyzetek" kifejezés arra a folyamatra utal, amely során minimalizáljuk a modell összes hibáját. Minden adatpontra megmérjük a függőleges távolságot (reziduális), mely az adott pont és a regressziós egyenes közötti távolság.
Tipikusan a **legkisebb négyzetes regresszió** rajzol ilyen egyenest. A "legkisebb négyzetes" kifejezés arra utal, hogy minimalizáljuk a modell összes hibáját. Minden adatok ponthoz lemérjük a vertikális távolságot (reziduális), azaz a tényleges pont és az egyenes közötti függőleges távolságot.
Ezeket a távolságokat négyzetre emeljük két fő okból:
1. **Iránynál fontosabb a nagyság:** Az a hibát, ha -5 vagy +5, egyformán kezeljük. A négyzetre emeléssel az összes érték pozitívvá válik.
1. **Nagyság irány helyett:** Az -5 hibát ugyanúgy kezeljük, mint a +5 hibát, mert a négyzetre emelés minden értéket pozitívvá tesz.
2. **Eltérő értékek büntetése:** A négyzetre emelés nagyobb súlyt ad a nagyobb hibáknak, így az egyenes közelebb kerül az eltérő pontokhoz.
2. **Kiemelt büntetés a kiugró értékeknek:** A négyzetre emelés nagyobb súlyt ad a nagyobb hibáknak, így az egyenes közelebbi marad a távolabbi pontokhoz.
Mindezek után összeadjuk az összes négyzetre emelt értéket. A cél az, hogy megtaláljuk azt az egyenest, amelynél ez az összeg a legkisebb (legkisebb lehetséges érték) innen ered a "Legkisebb négyzetek" név.
Ezek után összeadjuk az összes négyzetre emelt távolságot. Célunk, hogy megtaláljuk azt az egyenest, amelynél ez az összeg a legkisebb (legkisebb érték) — innen a név: "legkisebb négyzetes".
> **🧮 Mutasd a képletet**
>
> Ezt az egyenest, az úgynevezett _legjobb illeszkedésű egyenest_, a [következő képlettel](https://en.wikipedia.org/wiki/Simple_linear_regression) lehet leírni:
>
> **🧮 Mutasd a matematikát**
>
> Ezt az egyenest, amit _legjobb illeszkedő egyenesnek_ nevezünk, a [következő egyenlettel](https://en.wikipedia.org/wiki/Simple_linear_regression) kifejezhetjük:
>
> ```
> Y = a + bX
> ```
>
> `X` a magyarázó változó. `Y` a függő változó. Az egyenes meredeksége `b`, az `a` pedig az y-tengely metszete, vagyis az `Y` értéke, amikor `X = 0`.
>
>![a meredekség kiszámítása](../../../../translated_images/hu/slope.f3c9d5910ddbfcf9.webp)
>
> Először számítsuk ki a `b` meredekséget. Infografika készítője: [Jen Looper](https://twitter.com/jenlooper)
>
> Más szóval, és utalva a sütőtök adataink eredeti kérdésére: "jósoljuk meg a sütőtök bushelenkénti árát hónapra lebontva", az `X` az árra, az `Y` pedig az értékesítés hónapjára utalna.
>
>![egyenlet kitöltése](../../../../translated_images/hu/calculation.a209813050a1ddb1.webp)
>
> Számítsuk ki az `Y` értékét. Ha körülbelül 4 dollárt fizetsz, bizonyára április van! Infografika készítője: [Jen Looper](https://twitter.com/jenlooper)
>
> A képletnek ki kell számolnia az egyenes meredekségét, amely az y-metszettől, azaz attól függ, hol helyezkedik el az `Y`, amikor `X = 0`.
>
> Megfigyelheted a számítási módot a [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) weboldalon. Látogass el erre [a legkisebb négyzetek számológépre](https://www.mathsisfun.com/data/least-squares-calculator.html), hogy lásd, miként befolyásolják az értékek az egyenest.
>
> `X` az 'magyarázó változó', `Y` a 'függő változó'. Az egyenes meredeksége `b`, az `a` az y-tengely metszéspontja, vagyis az `Y` értéke, amikor `X = 0`.
>
>![meredekség kiszámítása](../../../../translated_images/hu/slope.f3c9d5910ddbfcf9.webp)
>
> Először számítsd ki a `b` meredekséget. Infografika készítője: [Jen Looper](https://twitter.com/jenlooper)
>
> Más szóval, a sütőtök adataink eredeti kérdése alapján: "előre jelezzük a sütőtök árát bushelre vetítve hónap szerint", itt az `X` az árra, az `Y` az eladási hónapra utalna.
>
>![egyenlet kiegészítése](../../../../translated_images/hu/calculation.a209813050a1ddb1.webp)
>
> Számítsd ki az Y értékét. Ha kb. 4 dollárt fizetsz, az bizonyára április! Infografika készítője: [Jen Looper](https://twitter.com/jenlooper)
>
> Az egyenes számításánál a meredekséget mutatja a formula, amely az y-metszési értéken is múlik, vagyis hol helyezkedik el az `Y`, amikor `X = 0`.
>
> A számítási módszert megtekintheted a [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) weboldalon. Használd a [Legkisebb négyzetek kalkulátort](https://www.mathsisfun.com/data/least-squares-calculator.html) is, hogy lásd, hogyan befolyásolják a számok az egyenest.
## Korreláció
Van még egy fogalom, amit meg kell érteni, ez pedig a **korrelációs együttható** az adott X és Y változók között. Egy pontdiagram segítségével könnyen meg lehet jeleníteni ezt az együtthatót. Ha az adatpontok szépen egy egyenes mentén helyezkednek el, akkor magas a korreláció, ha pedig mindenfelé szóródnak az X és Y között, akkor alacsony.
Az utolsó fontos fogalom, amit érdemes megérteni, az adott X és Y változók közötti **korrelációs együttható**. A szórásdiagram segítségével ezt gyorsan meg tudjuk jeleníteni. Ha a pontok rendezett vonal mentén helyezkednek el, magas korrelációról beszélhetünk, míg ha szétszórtak mindenhol az X és Y között, akkor alacsony korrelációról beszélünk.
Egy jó lineáris regressziós modell lesz olyan, amely szoros (inkább 1-hez, semmint 0-hoz közeli) korrelációs együtthatóval rendelkezik a legkisebb négyzetek regressziós módszerével egy regressziós vonal mellett.
Egy jó lineáris regressziós modell magas (közelebb 1-hez, mint 0-hoz) korrelációs együtthatóval rendelkezik, a Legkisebb Négyzetes Regresszió módszerével és regressziós egyenessel.
✅ Futtasd az ehhez a leckéhez mellékelt jegyzetfüzetet, és nézd meg a Hónap-Arány pontdiagramot. A hónap és ára közötti kapcsolat a sütőtök értékesítésében szerinted magas vagy alacsony korrelációjú a pontdiagram vizuális értelmezése alapján? Változik-e, ha finomabb mértéket használunk a `Month` helyett, például az *év napja* (az év első napja óta eltelt napok száma) alapján?
✅ Futtasd a leckéhez mellékelt jegyzetet, és nézd meg a Hónap és Ár szórásdiagramját. A süvőtökeladások hónap és ár közötti adatai szerinted magas vagy alacsony korrelációt mutatnak a diagram vizuális értelmezése alapján? Változik ez, ha a `Month` helyett finomabb időmérő mértéket használunk, pl. *az év napja* (az év eleje óta eltelt napok száma)?
A lentebbi kódban azt feltételezzük, hogy megtisztítottuk az adatot, és létrejött egy `new_pumpkins` nevű adatkeret az alábbi módon:
Az alábbi kódban feltételezzük, hogy megtisztítottuk az adatokat, és egy `new_pumpkins` nevű adatkeretet kaptunk, amely hasonló az alábbihoz:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364
> Az adatok tisztítására szolgáló kód elérhető a [`notebook.ipynb`](notebook.ipynb) fájlban. Ugyanazokat a tisztítási lépéseket hajtottuk végre, mint az előző leckében, és kiszámoltuk a `DayOfYear` oszlopot a következő kifejezés használatával:
> Az adatok tisztítására vonatkozó kód a [`notebook.ipynb`](notebook.ipynb) fájlban található. Ugyanazokat a tisztítási lépéseket hajtottuk végre, mint az előző leckében, és a `DayOfYear` oszlopot a következő kifejezés segítségével számoltuk ki:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Most, hogy érted a lineáris regresszió mögötti matematikát, hozzunk létre egy regressziós modellt, hogy megnézzük, meg tudjuk-e jósolni, melyik sütőtök csomag árazása lesz a legjobb. Valaki, aki ünnepi sütőtök díszhez vásárol, ezt az információt használhatja vásárlási döntések optimalizálására.
Most, hogy megértetted a lineáris regresszió mögötti matematikát, hozzunk létre egy regressziós modellt, hogy megnézzük, tudjuk-e megjósolni, melyik sütőtökcsomagnak lesz a legjobb ára. Valaki, aki egy ünnepi sütőtöksátorba vásárol, biztosan szeretné ezt az információt, hogy optimalizálhassa vásárlásait.
## Korreláció keresése
[![Gépi tanulás kezdőknek - Korreláció keresése: Az összefüggés a lineáris regresszió kulcsa](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Gépi tanulás kezdőknek - Korreláció keresése: Az összefüggés a lineáris regresszió kulcsa")
[![Gépi tanulás kezdőknek Korreláció keresése: a lineáris regresszió kulcsa](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "Gépi tanulás kezdőknek Korreláció keresése: a lineáris regresszió kulcsa")
> 🎥 Kattints a fenti képre egy rövid videós áttekintésért a korrelációról.
Az előző leckéből valószínűleg láttad, hogy különböző hónapok átlagára így néz ki:
Az előző leckéből valószínűleg láttad, hogy az átlagárak hónaponként így néznek ki:
<img alt="Átlagár hónapokra bontva" src="../../../../translated_images/hu/barchart.a833ea9194346d76.webp" width="50%"/>
<img alt="Átlagár hónaponként" src="../../../../translated_images/hu/barchart.a833ea9194346d76.webp" width="50%"/>
Ez arra utal, hogy van összefüggés, és megpróbálhatjuk a lineáris regresszió modellt betanítani a `Month` és az ár, vagy a `DayOfYear` és az ár kapcsolatára. Az alábbi szórásterület ábrán ennek az utóbbinak a viszonya látható:
Ez arra utal, hogy van valamilyen korreláció, és megpróbálhatunk egy lineáris regressziós modellt tanítani, amely előrejelzi a `Month` és `Price`, vagy a `DayOfYear` és `Price` közötti kapcsolatot. Az alábbi szórásdiagram az utóbbi kapcsolatot mutatja be:
<img alt="Szórásdiagram az ár és az év napja szerint" src="../../../../translated_images/hu/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Ár szórásdiagram az év napja szerint" src="../../../../translated_images/hu/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Nézzük meg, milyen korreláció van az `corr` függvénnyel:
Nézzük meg, van-e korreláció a `corr` függvénnyel:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Úgy tűnik, a korreláció meglehetősen kicsi, -0,15 a hónap szerint és -0,17 az év napja szerint, de lehet, hogy egy másik fontos összefüggés is létezik. Úgy tűnik, különböző árkategóriák léteznek a sütőtök fajták szerint. Ennek megerősítésére próbáljuk meg az egyes sütőtök kategóriákat különböző színnel megjeleníteni. Az `ax` paraméter átadásával a `scatter` függvénynek az összes pont ugyanazon a grafikonon ábrázolható:
Úgy tűnik, hogy a korreláció meglehetősen kicsi, -0,15 a `Month`, és -0,17 a `DayOfMonth` szerint, de lehet egy másik fontos összefüggés. Úgy tűnik, hogy különböző árklaszterek vannak a sütőtök fajták szerint. Ennek megerősítésére ábrázoljuk az egyes sütőtökkategóriákat más-más színnel. Az `ax` paraméter átadásával a `scatter` függvénynek az összes pont ugyanabban a grafikonban jelenik meg:
```python
ax=None
@ -140,92 +142,94 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
df = new_pumpkins[new_pumpkins['Variety']==var]
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
<img alt="Ár szórásdiagram az év napja szerint, színesen" src="../../../../translated_images/hu/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Szórásdiagram az ár és az év napja színkódolt" src="../../../../translated_images/hu/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Vizsgálatunk arra utal, hogy a fajta hatása nagyobb az ár összértékére, mint az eladási időponté. Ezt egy oszlopdiagramon is megláthatjuk:
Vizsgálatunk azt sugallja, hogy a fajta nagyobb hatással van a teljes árra, mint az eladási időpont. Ezt egy oszlopdiagramon is láthatjuk:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Ár oszlopdiagram fajta szerint" src="../../../../translated_images/hu/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Oszlopdiagram az ár és a fajta szerint" src="../../../../translated_images/hu/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Most egyelőre csak az egyik sütőtök fajtára, a pie type-ra koncentráljunk, és nézzük meg, milyen hatása van az értékesítési dátumnak az árra:
Most csak egy sütőtökfajtára, a 'pie type'-ra (pite típusra) koncentrálunk, és megnézzük, milyen hatása van az eladási dátumnak az árra:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Szórásdiagram az ár és az év napja a pie típusú sütőtöknél" src="../../../../translated_images/hu/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Ár szórásdiagram az év napja szerint, pite típus" src="../../../../translated_images/hu/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Ha most kiszámoljuk a korrelációt a `Price` és a `DayOfYear` között az `corr` függvénnyel, az kb. `-0.27` lesz ami azt jelenti, hogy érdemes prediktív modellt tanítani.
Ha most kiszámoljuk a korrelációt a `Price` és a `DayOfYear` között a `corr` függvénnyel, valami ilyesmit kapunk: `-0.27` - ami azt jelenti, hogy érdemes predikciós modellt tanítani.
> A lineáris regressziós modell betanítása előtt fontos, hogy az adatunk tiszta legyen. A lineáris regresszió nem működik jól hiányzó értékekkel, ezért érdemes megszabadulni minden hiányzó adattól:
> Egy lineáris regressziós modell betanítása előtt fontos, hogy az adataink tiszták legyenek. Mivel a lineáris regresszió nem működik jól hiányzó értékekkel, ezért érdemes eltávolítani az összes üres cellát:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Másik megközelítés lehet a hiányzó értékek kitöltése az adott oszlop átlagával.
Egy másik megközelítés lehet, hogy az üres értékeket az adott oszlop átlagával töltjük fel.
## Egyszerű lineáris regresszió
[![Gépi tanulás kezdőknek Lineáris és polinomiális regresszió Scikit-learn segítségével](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "Gépi tanulás kezdőknek Lineáris és polinomiális regresszió Scikit-learn segítségével")
[![Gépi tanulás kezdőknek Lineáris és polinomiális regresszió Scikit-learn használatával](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "Gépi tanulás kezdőknek Lineáris és polinomiális regresszió Scikit-learn használatával")
> 🎥 Kattints a fenti képre egy rövid videós áttekintésért a lineáris és polinomiális regresszióról.
Lineáris regressziós modellünk betanításához a **Scikit-learn** könyvtárat fogjuk használni.
A lineáris regressziós modellünk betanításához a **Scikit-learn** könyvtárat fogjuk használni.
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Kezdjük azzal, hogy a bemeneti értékeket (jellemzők) és a várt kimenetet (címkét) külön numpy tömbökbe rendezzük:
Először szétválasztjuk a bemeneti értékeket (jellemzők) és a várt kimenetet (címkét) külön numpy tömbökbe:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Figyeld meg, hogy a bemeneti adaton `reshape` műveletet kellett végeznünk, hogy a Linear Regression csomag helyesen értelmezze azt. A lineáris regresszió 2D tömböt vár bemenetként, ahol a tömb minden sora egy bemeneti jellemzővektort képvisel. Mivel esetünkben csak egy bemenet van, N×1 alakú tömböt kell biztosítanunk, ahol N az adatkészlet mérete.
> Figyeld meg, hogy a bemeneti adatokat át kellett formáznunk (`reshape`), hogy a Lineáris Regresszió csomag helyesen értelmezze őket. A Lineáris Regresszió 2D tömböt vár bemenetként, ahol a tömb minden sora egy vektor a bemeneti jellemzőkről. Mivel nekünk csak egy bemenetünk van, egy N×1 alakú tömböt kell adnunk, ahol N az adatkészlet mérete.
Ezután az adatot szét kell osztanunk tanító és teszt halmazokra, hogy a modell betanítása után tesztelni tudjuk azt:
Ezután az adatokat szét kell osztani tanuló (train) és teszt (test) adathalmazra, hogy a modell betanítása után ellenőrizni tudjuk azt:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Végül a lineáris regressziós modell tényleges betanítása csak két kód sorból áll. Létrehozzuk a `LinearRegression` objektumot, és betanítjuk az adatainkra a `fit` metódussal:
Végül, a lineáris regressziós modell tényleges betanítása csak két kód sor. Definiáljuk a `LinearRegression` objektumot, és megtanítjuk az adatokra a `fit` metódussal:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
A `LinearRegression` objektum a `fit`-elés után tartalmazza a regresszió összes együtthatóját, amelyekhez a `.coef_` tulajdonságon keresztül férhetünk hozzá. Esetünkben csak egy együttható van, amely körülbelül `-0.017` körül várható. Ez azt jelenti, hogy az árak idővel kissé csökkennek, de nem sokat, körülbelül 2 centet naponta. A regresszió Y tengellyel való metszéspontját is elérhetjük a `lin_reg.intercept_` segítségével ami nálunk körülbelül `21` lesz, jelezve az év eleji árat.
A `LinearRegression` objektum a `fit`-elés után tartalmazza az összes regressziós együtthatót, amelyek a `.coef_` tulajdonsággal érhetők el. Esetünkben csak egyetlen együttható van, amely nagyjából `-0.017` körül kell, hogy legyen. Ez azt jelenti, hogy az árak idővel kissé csökkennek, de nem túl sokat, körülbelül napi 2 centtel. A regresszió Y-tengellyel való metszéspontját a `lin_reg.intercept_`-tel érhetjük el nálunk ez kb. `21` lesz, ami az év eleji árat jelzi.
Hogy lássuk, mennyire pontos a modellünk, először árakat jósolhatunk egy tesztadatállományra, majd mérhetjük, mennyire közel vannak a jóslataink a várt értékekhez. Ezt elvégezhetjük a négyzetes hibák átlagával, azaz a mean square error (MSE) metrikával, amely a várt és a jósolt értékek közötti négyzetes különbségek átlaga.
Annak megmutatására, hogy a modellünk mennyire pontos, megjósolhatjuk az árakat egy teszt adathalmazon, majd mérhetjük, mennyire közel vannak az előrejelzéseink a várt értékekhez. Ez az átlagos négyzetes hiba négyzetgyökével (RMSE - root mean square error) tehető meg, ami az összes négyzetes különbség átlaga és gyöke.
```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}%)')
```
A hibánk úgy tűnik, körülbelül 2 pont körül van, ami kb. 17%. Nem túl jó. A modell minőségének másik mutatója az **elszámolási együttható (coefficient of determination)**, amely így határozható meg:
Az általunk kapott hiba körülbelül 2 pont, ami ~17%. Nem túl jó. A modell minőségének másik mutatója a **determinációs együttható**, amely így szerezhető meg:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Ha az érték 0, az azt jelenti, hogy a modell nem veszi figyelembe a bemeneti adatokat, és a *legrosszabb lineáris prediktorként* működik, ami egyszerűen az eredmény átlagértéke. Ha az érték 1, az azt jelenti, hogy tökéletesen tudjuk előre jelezni az összes várt kimenetet. Nálunk az együttható körülbelül 0.06, ami elég alacsony.
A tesztadatokat a regressziós vonallal együtt is ábrázolhatjuk, hogy jobban lássuk, hogyan működik a regresszió a mi esetünkben:
Ha az érték 0, az azt jelenti, hogy a modell nem veszi figyelembe a bemeneti adatokat, és egy *legrosszabb lineáris prediktorként* működik, ami egyszerűen az eredmény átlagértéke. Az 1-es érték azt jelenti, hogy tökéletesen meg tudjuk jósolni az összes elvárt kimenetet. Nálunk a koefficiens körülbelül 0,06, ami elég alacsony.
A tesztadatokat is ábrázolhatjuk a regressziós egyenessel együtt, hogy jobban lássuk a regresszió működését a mi esetünkben:
```python
plt.scatter(X_test,y_test)
@ -236,17 +240,17 @@ plt.plot(X_test,pred)
## Polinomiális regresszió
A lineáris regressziónak egy másik típusa a polinomiális regresszió. Bár néha a változók közt lineáris kapcsolat van például minél nagyobb a tök térfogata, annál magasabb az ára , előfordul, hogy ezek a kapcsolatok nem ábrázolhatók egy síkkal vagy egyenes vonallal.
A lineáris regresszió másik típusa a polinomiális regresszió. Bár néha lineáris kapcsolat van a változók között minél nagyobb a tök térfogata, annál magasabb az ár , előfordul, hogy ezeket a kapcsolatokat nem lehet egy síkkal vagy egyenes vonallal ábrázolni.
✅ Itt vannak [további példák](https://online.stat.psu.edu/stat501/lesson/9/9.8) olyan adatokra, amelyek esetében polinomiális regresszió alkalmazható.
✅ Itt van néhány [további példa](https://online.stat.psu.edu/stat501/lesson/9/9.8) adatokról, amelyekhez polinomiális regressziót lehet használni.
Nézzük újra az összefüggést a Dátum és az Ár között. Ez a pontfelhő úgy tűnik, hogy feltétlenül egyenes vonallal kellene elemezni? Nem ingadozhatnak az árak? Ilyen esetben polinomiális regressziót próbálhatunk ki.
Nézzük meg újra a Date és Price kapcsolatát. Ez a szórt diagram feltétlenül úgy néz ki, hogy egyenes vonallal kellene elemezni? Nem ingadozhatnak-e az árak? Ebben az esetben érdemes kipróbálni a polinomiális regressziót.
✅ A polinomok matematikai kifejezések, amelyek egy vagy több változóból és együtthatóból állhatnak.
✅ A polinomok olyan matematikai kifejezések, amelyek egy vagy több változóból és együtthatóból állhatnak.
A polinomiális regresszió egy görbe vonalat hoz létre, hogy jobban illeszkedjen a nemlineáris adatokra. Nálunk, ha a bemeneti adathoz hozzáadjuk a `DayOfYear` négyzetét, akkor képesek leszünk egy parabolikus görbével illeszteni az adatokat, amelynek a minimuma az év egy bizonyos pontján lesz.
A polinomiális regresszió egy görbült vonalat hoz létre, hogy jobban illeszkedjen nemlineáris adatokra. A mi esetünkben, ha bevonjuk a négyzetes `DayOfYear` változót a bemeneti adatok közé, képesek leszünk az adatokat egy parabolikus görbével illeszteni, amelynek minimuma egy adott pontban lesz az éven belül.
A Scikit-learn tartalmaz egy hasznos [pipeline API-t](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), amellyel több adatfeldolgozási lépést is összekapcsolhatunk. Egy **pipeline** egy **becslők** láncolata. Nálunk egy olyan pipeline-t hozunk létre, amely először polinomiális jellemzőket ad a modellhez, majd megtanítja a regressziót:
A Scikit-learn tartalmaz egy hasznos [pipeline API-t](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline), amely lehetővé teszi a különböző adatfeldolgozási lépések együttes használatát. Egy **pipeline** egy **becslők** láncolata. A mi esetünkben olyan pipeline-t hozunk létre, amely először polinomiális jellemzőket ad a modellhez, majd betanítja a regressziót:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -257,36 +261,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
A `PolynomialFeatures(2)` azt jelenti, hogy az összes másodfokú polinomot belefoglaljuk a bemeneti adatból. Nálunk ez csak a `DayOfYear`<sup>2</sup>-t jelenti, de ha két bemeneti változónk, X és Y van, akkor hozzáadódik az X<sup>2</sup>, XY és Y<sup>2</sup> is. Természetesen magasabb fokú polinomokat is használhatunk.
A `PolynomialFeatures(2)` használata azt jelenti, hogy a bemeneti adatokból az összes másodfokú polinomot bevonjuk. Esetünkben ez csak a `DayOfYear`<sup>2</sup> változót jelenti, de ha két bemeneti változó X és Y, akkor hozzáadja az X<sup>2</sup>, XY és Y<sup>2</sup> kifejezéseket is. Magasabb fokú polinomokat is használhatunk, ha akarunk.
A pipeline-okat ugyanúgy használhatjuk, mint az eredeti `LinearRegression` objektumot, azaz illeszthetjük (`fit`), majd jósolhatunk (`predict`). Itt látható egy grafikon a tesztadatokról és az illesztett görbéről:
A pipeline-okat ugyanúgy használhatjuk, mint az eredeti `LinearRegression` objektumot, azaz `fit`-elhetjük a pipeline-t, majd `predict`-tel lekérhetjük az előrejelzéseket. Íme egy grafikon, amely a tesztadatokat és az illesztett görbét mutatja:
<img alt="Polynomial regression" src="../../../../translated_images/hu/poly-results.ee587348f0f1f60b.webp" width="50%" />
A polinomiális regresszióval kissé alacsonyabb MSE-t és magasabb determinációt érhetünk el, de nem jelentősen. Más jellemzőket is figyelembe kell vennünk!
Polinomiális regresszióval kicsit alacsonyabb MSE és magasabb determináció érhető el, de nem jelentősen. Más jellemzőket is figyelembe kell vennünk!
> Látható, hogy a legkisebb tökárak nagyjából Halloween környékén vannak. Hogyan magyaráznád ezt?
> Látható, hogy a tök árak legalacsonyabbak valahol Halloween körül. Hogyan magyarázhatod ezt?
🎃 Gratulálok, most egy olyan modellt hoztál létre, amely segít előre jelezni a sütőtök árát. Valószínűleg ugyanígy eljárhatsz az összes tökfajtával, de ez fárasztó lenne. Tanuljuk meg inkább, hogyan vegyük figyelembe a tökfajtát a modellünkben!
🎃 Gratulálok, most hoztál létre egy modellt, ami segíthet előre jelezni a sütőtök árát. Valószínűleg ugyanezt a módszert megismételheted az összes tökfajtánál, de az egy kicsit fárasztó lenne. Most tanuljuk meg, hogyan vegyük figyelembe a tökfajta különbségeket a modellben!
## Kategorizált jellemzők
## Kategóriás jellemzők
Az ideális világban ugyanazzal a modellel szeretnénk különböző tökfajták árát előrejelezni. Azonban a `Variety` oszlop eltér a `Month`-hoz hasonló oszlopoktól, mert nem numerikus értékeket tartalmaz. Az ilyen oszlopokat **kategóriális** oszlopoknak nevezzük.
Az ideális világban képesek vagyunk ugyanazt a modellt használni különböző tökfajták árának előrejelzésére. A `Variety` oszlop azonban némileg eltér a `Month`-től, mert nem numerikus értékeket tartalmaz. Az ilyen oszlopokat **kategóriásnak** nevezzük.
[![ML kezdőknek - Kategóriás jellemzők előrejelzése lineáris regresszióval](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML kezdőknek - Kategóriás jellemzők előrejelzése lineáris regresszióval")
[![ML for beginners - Kategóriás jellemzők előrejelzése lineáris regresszióval](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Kategóriás jellemzők előrejelzése lineáris regresszióval")
> 🎥 Kattints a fenti képre a kategóriás jellemzők használatát bemutató rövid videóért.
> 🎥 Kattints a fenti képre egy rövid videós bemutatóért kategóriás jellemzők használatáról.
Itt látható, hogyan függ az átlagár a fajtától:
<img alt="Average price by variety" src="../../../../translated_images/hu/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Átlagár fajta szerint" src="../../../../translated_images/hu/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Ahhoz, hogy figyelembe vegyük a fajtát, először numerikus formába kell konvertálnunk, vagyis **kódolnunk** kell. Többféleképpen tehetjük ezt meg:
A fajta figyelembevételéhez először számmá kell alakítanunk, vagyis **kódolnunk** kell. Többféle módon megtehetjük ezt:
* Az egyszerű **numerikus kódolás** egy táblázatot épít a különböző fajtákról, majd a fajta nevét a táblázatbeli indexére cseréli. Ez nem a legjobb módszer a lineáris regresszióhoz, mert a regresszió a kód numerikus értékét veszi figyelembe és szorozza együtthatóval. Nálunk az indexszám és az ár közötti kapcsolat egyértelműen nem lineáris, még akkor sem, ha az indexeket valamilyen sorrendbe rendezzük.
* A **one-hot kódolás** a `Variety` oszlop helyett 4 külön oszlopot készít, egyet-egyet minden fajtára. Minden oszlop 1-et tartalmaz, ha az adott sor az adott fajta, különben 0-t. Ez azt jelenti, hogy a lineáris regresszióban négy együttható lesz, egy-egy minden tökfajtára, amelyek az adott fajta "kiinduló ára" (vagy inkább "további ára") felelős.
* Egyszerű **numerikus kódolás** egy táblázatot épít az eltérő fajtákról, majd a fajta nevét egy indexre cseréli ebben a táblázatban. Ez nem a legjobb ötlet lineáris regresszióhoz, mert a lineáris regresszió az index tényleges numerikus értékét veszi figyelembe, amit egy együtthatóval megszoroz, majd hozzáad az eredményhez. Nálunk az indexszám és az ár közötti kapcsolat jól láthatóan nemlineáris, még akkor sem, ha az indexeket valamilyen specifikus sorrendbe rendezzük.
* **One-hot kódolás** a `Variety` oszlopot 4 külön oszlopra bontja, egy-egy minden fajtához. Mindegyik oszlopban `1` lesz, ha az adott sor a szóban forgó fajta, és `0` egyébként. Ez azt jelenti, hogy négy regressziós együtthatónk lesz, egyenként minden tökfajta esetében, amelyek az adott fajta "kezdő ára" (vagy inkább "kiegészítő ára") felelnek.
Az alábbi kód megmutatja, hogyan kódolhatjuk one-hot módszerrel a fajtát:
Az alábbi kód megmutatja, hogyan lehet one-hot kódolni a fajtát:
```python
pd.get_dummies(new_pumpkins['Variety'])
@ -303,14 +307,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
A lineáris regresszió tanításához one-hot kódolt fajtával csak helyesen kell inicializálni az `X` és `y` adatokat:
A lineáris regresszió tanításához one-hot kódolt fajtára egyszerűen csak helyesen kell inicializálni az `X` és `y` adatokat:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
A további kód ugyanaz, mint amit fent használtunk a lineáris regresszió tanításához. Ha kipróbálod, azt látod, hogy a négyzetes hiba nagyjából ugyanaz marad, viszont jóval magasabb lesz az elszámolási együttható (~77%). Még pontosabb jóslatokhoz több kategóriás jellemzőt is bevonhatunk, illetve numerikus jellemzőket, például `Month` vagy `DayOfYear`. Az adatok egyetlen nagy tömbbé egyesítéséhez a `join` használható:
A kód többi része ugyanaz, mint amit fent használtunk a lineáris regresszió tanításához. Ha kipróbálod, látni fogod, hogy az átlagos négyzetes hiba nagyjából ugyanaz marad, de a determinációs együttható sokkal magasabb lesz (~77%). Az még pontosabb előrejelzésekhez több kategóriás jellemzőt és egyben numerikus jellemzőket is figyelembe vehetünk, például `Month` vagy `DayOfYear`. Az összes jellemzőt egy nagy tömbbe egyesíthetjük a `join` segítségével:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -320,31 +324,31 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Itt a `City`-t és a `Package` típust is figyelembe vesszük, ami MSE=2.84 (10%) és determináció=0.94 eredményt ad!
Itt szintén figyelembe vesszük a `City` és a `Package` típust, melyeknek az eredménye 2.84 MSE (10%) és 0.94 determináció!
## Összeillesztés
## Összefoglalás
A legjobb modell elkészítéséhez egyesíthetjük a fent említett (one-hot kódolt kategóriás + numerikus) adatokat a polinomiális regresszióval. Alább a teljes kód a könnyebb használathoz:
A legjobb modell készítéséhez kombinált (one-hot kódolt kategóriás + numerikus) adatokat használhatunk a fenti példából, együtt a polinomiális regresszióval. Íme az egész kód az egyszerűség kedvéért:
```python
# tréning adatok előkészítése
# beállítja a tanító adatokat
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']
# tanuló-teszt adatfelosztás végrehajtása
# készít egy tanító-teszt felosztást
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# pipeline beállítása és betanítása
# beállítja és tanítja a folyamatot
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
# tesztadatokra történő eredményjóslás
# megjósolja az eredményeket a teszt adatokra
pred = pipeline.predict(X_test)
# MSE és determináció kiszámítása
# kiszámítja az MSE-t és a determinációt
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 +356,7 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
Ez megközelítőleg 97% determinációs együtthatót és MSE=2.23 (~8% előrejelzési hibát) eredményez.
Ez az eredmény majdnem 97%-os determinációs együtthatót, és MSE=2.23-at (~8% előrejelzési hibát) ad.
| Modell | MSE | Determináció |
|-------|-----|---------------|
@ -362,26 +366,26 @@ Ez megközelítőleg 97% determinációs együtthatót és MSE=2.23 (~8% előrej
| Minden jellemző lineáris | 2.84 (10.5%) | 0.94 |
| Minden jellemző polinomiális | 2.23 (8.25%) | 0.97 |
🏆 Szép munka! Ebben a leckében négy regressziós modellt hoztál létre, és a modellminőséget 97%-ra javítottad. Az utolsó fejezetben a logisztikus regresszióról tanulsz majd a kategóriák meghatározásához.
🏆 Szép munka! Egy órán belül négy regressziós modellt hoztál létre, és a modell minőségét 97%-ra javítottad. A regresszió záró részében a logisztikus regresszióról fogsz tanulni, ami kategóriák meghatározására szolgál.
---
## 🚀Kihívás
Tesztelj különböző változókat ebben a jegyzetfüzetben, és figyeld meg, hogyan tükröződik a korreláció a modell pontosságában.
Tesztelj több különböző változót ebben a jegyzetfüzetben, hogy lásd, hogyan függ a korreláció a modell pontosságától.
## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
## Összefoglalás és önálló tanulás
## Áttekintés & Önálló tanulás
Ebben a leckében a lineáris regresszióval ismerkedtünk meg. Más fontos regressziótípusok is vannak. Olvass a Stepwise, Ridge, Lasso és Elasticnet technikákról. Egy ajánlott tanfolyam további ismeretekért a [Stanford Statisztikai Tanulás kurzusa](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
Ebben a leckében a lineáris regressziót tanultuk meg. Vannak más fontos regressziós típusok is. Olvass a lépésenkénti, Ridge, Lasso és Elasticnet technikákról. Egy jó tanfolyam további tanulásra a [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
## Feladat
[Modell készítése](assignment.md)
[Modellezés](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Nyilatkozat**:
Jelen dokumentumot az AI fordító szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével fordítottuk. Bár igyekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az anyanyelvén tekintendő hivatalos forrásnak. Kritikus információk esetén professzionális, emberi fordítást javaslunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy félreértelmezésekért.
**Felmentés**:
Ez a dokumentum az [Co-op Translator](https://github.com/Azure/co-op-translator) AI fordító szolgáltatásával készült. Bár az pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum anyanyelvű változata tekinthető hivatalos forrásnak. Fontos információk esetén szakmai emberi fordítást javasolunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy félreértelmezésekért.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,17 +1,17 @@
# Konyhai osztályozók 1
# Konyhák osztályozói 1
Ebben a leckében az előző leckében elmentett, kiegyensúlyozott és tiszta adatokkal teli adatállományt fogod használni, amely a különböző konyhákról szól.
Ebben a leckében a legutóbbi leckéből mentett, kiegyensúlyozott, tiszta adatokat tartalmazó, konyhákról szóló adathalmazt fogod használni.
Ezt az adatállományt különféle osztályozókkal fogod használni, hogy _egy adott nemzeti konyhát megjósolj egy összetevőcsoport alapján_. Eközben többet megtudhatsz arról, hogyan lehet algoritmusokat alkalmazni osztályozási feladatokhoz.
Ezt az adathalmazt különféle osztályozókkal fogod használni, hogy _megjósolj egy adott nemzeti konyhát egy alapanyagcsoport alapján_. Miközben ezt teszed, többet megtudsz az algoritmusok osztályozási feladatokra való felhasználásának néhány módjáról.
## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
# Felkészülés
# Előkészület
Feltételezve, hogy befejezted az [1. leckét](../1-Introduction/README.md), győződj meg róla, hogy egy _cleaned_cuisines.csv_ fájl létezik a gyökér `/data` mappában ehhez a négy leckéhez.
Feltételezve, hogy befejezted az [1. leckét](../1-Introduction/README.md), győződj meg róla, hogy a _cleaned_cuisines.csv_ fájl létezik a négy leckét lefedő gyökér `/data` mappában.
## Gyakorlat - egy nemzeti konyha megjóslása
## Gyakorlat - egy nemzeti konyha előrejelzése
1. Dolgozz ebben a lecke _notebook.ipynb_ mappájában, és importáld a fájlt a Pandas könyvtárral együtt:
1. Az ebben a leckében található _notebook.ipynb_ mappában importáld be a fájlt a Pandas könyvtárral együtt:
```python
import pandas as pd
@ -30,7 +30,7 @@ Feltételezve, hogy befejezted az [1. leckét](../1-Introduction/README.md), gy
| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1. Most importálj több könyvtárat:
1. Most importálj be még több könyvtárat:
```python
from sklearn.linear_model import LogisticRegression
@ -40,14 +40,14 @@ Feltételezve, hogy befejezted az [1. leckét](../1-Introduction/README.md), gy
import numpy as np
```
1. Oszd fel az X és y koordinátákat két adatkeretre a tanításhoz. A `cuisine` lehet a címkéket tartalmazó adatkeret:
1. Oszd szét az X és y koordinátákat két adattáblára tanításhoz. A `cuisine` lehet a címke adattábla:
```python
cuisines_label_df = cuisines_df['cuisine']
cuisines_label_df.head()
```
Ez így fog kinézni:
Így fog kinézni:
```output
0 indian
@ -58,14 +58,14 @@ Feltételezve, hogy befejezted az [1. leckét](../1-Introduction/README.md), gy
Name: cuisine, dtype: object
```
1. Dobd el az `Unnamed: 0` és a `cuisine` oszlopokat a `drop()` hívásával. A többi adatot mentsd el tanítható jellemzőként:
1. Dobd el az `Unnamed: 0` oszlopot és a `cuisine` oszlopot `drop()` meghívásával. A maradék adatot mentsd el tanításra alkalmas jellemzőkként:
```python
cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
cuisines_feature_df.head()
```
A jellemzők így néznek ki:
A jellemzőid így néznek ki:
| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
@ -75,85 +75,85 @@ Feltételezve, hogy befejezted az [1. leckét](../1-Introduction/README.md), gy
| 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 |
Most készen állsz arra, hogy betanítsd a modelledet!
Most készen állsz a modell betanítására!
## Osztályozó kiválasztása
## Az osztályozó kiválasztása
Most, hogy az adataid tiszták és készen állnak a tanításra, el kell döntened, melyik algoritmust használod a feladathoz.
Most, hogy az adatok tiszták és készek a tanításra, el kell döntened, melyik algoritmust használod a feladathoz.
A Scikit-learn a felügyelt tanulás kategóriájába sorolja az osztályozást, és ebben a kategóriában számos módszert találsz az osztályozáshoz. [A választék](https://scikit-learn.org/stable/supervised_learning.html) elsőre meglehetősen zavarba ejtő. Az alábbi módszerek mind tartalmaznak osztályozási technikákat:
A Scikit-learn az osztályozást a Felügyelt tanulás (Supervised Learning) alá sorolja, és ezen a területen sokféle módszert találsz. [A választék](https://scikit-learn.org/stable/supervised_learning.html) először meglehetősen zavaró lehet. Az alábbi módszerek mind tartalmaznak osztályozási technikákat:
- Lineáris modellek
- Támogató vektorgépek
- Stochasztikus gradiens csökkenés
- Legközelebbi szomszédok
- Gauss-folyamatok
- Támogató vektor gépek (Support Vector Machines)
- Stokasztikus gradiens csökkenés (Stochastic Gradient Descent)
- Legközelebbi szomszédok (Nearest Neighbors)
- Gaussi folyamatok
- Döntési fák
- Együttes módszerek (szavazó osztályozó)
- Többosztályos és többkimenetes algoritmusok (többosztályos és többcímkés osztályozás, többosztályos-többkimenetes osztályozás)
- Együttes módszerek (voting Classifier)
- Többosztályos és többkimenetű algoritmusok (többosztályos és többcímkés osztályozás, többosztályos-többkimenetű osztályozás)
> Az adatok osztályozására [neurális hálózatokat is használhatsz](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), de ez a lecke keretein kívül esik.
> [Neurális hálókat](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) is használhatsz az adatok osztályozására, de ez nem része ennek a leckének.
### Melyik osztályozót válasszuk?
### Melyik osztályozót válasszam?
Tehát, melyik osztályozót válasszuk? Gyakran az a módszer, hogy több algoritmust kipróbálunk, és keresünk egy jó eredményt. A Scikit-learn kínál egy [összehasonlítást](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) egy létrehozott adatállományon, amely összehasonlítja a KNeighbors, SVC két módját, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB és QuadraticDiscriminationAnalysis algoritmusokat, és vizualizálja az eredményeket:
Tehát, melyik osztályozót válaszd? Gyakran jó módszer több osztályozó tesztelése, hogy melyik ad jó eredményt. A Scikit-learn kínál egy [oldal-by-oldal összehasonlítást](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) egy létrehozott adathalmazon, összehasonlítva KNeighbors, az SVC két módját, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB és QuadraticDiscrinationAnalysis eredményeit, vizualizálva:
![osztályozók összehasonlítása](../../../../4-Classification/2-Classifiers-1/images/comparison.png)
> Diagramok a Scikit-learn dokumentációjából
![osztályozók összehasonlítása](../../../../translated_images/hu/comparison.edfab56193a85e7f.webp)
> Grafikonok a Scikit-learn dokumentációjából
> Az AutoML elegánsan megoldja ezt a problémát azáltal, hogy ezeket az összehasonlításokat a felhőben futtatja, lehetővé téve, hogy kiválaszd a legjobb algoritmust az adataidhoz. Próbáld ki [itt](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> Az AutoML ezt a problémát szépen megoldja azáltal, hogy ezeket az összehasonlításokat a felhőben futtatja, lehetővé téve a legjobb algoritmus kiválasztását az adataidhoz. Próbáld ki [itt](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
### Egy jobb megközelítés
Egy jobb módszer, mint a vad találgatás, az, hogy követjük az ötleteket ezen letölthető [ML Cheat Sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) alapján. Itt felfedezzük, hogy a többosztályos problémánkhoz van néhány választási lehetőség:
Egy jobb, mint találomra próbálgatni, ha követed az ötleteket ezen a letölthető [ML Cheat sheet-en](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott). Itt megtudjuk, hogy szakítós problémánk esetén néhány lehetőségünk van:
![cheatsheet többosztályos problémákhoz](../../../../4-Classification/2-Classifiers-1/images/cheatsheet.png)
> A Microsoft Algoritmus Cheat Sheet egy szakasza, amely részletezi a többosztályos osztályozási lehetőségeket
![csalólap többosztályos problémákhoz](../../../../translated_images/hu/cheatsheet.07a475ea444d2223.webp)
> A Microsoft algoritmus csalólapjának egy része, a többosztályos osztályozási opciók részletezése
✅ Töltsd le ezt a cheat sheetet, nyomtasd ki, és tedd ki a faladra!
✅ Töltsd le ezt a csalólapot, nyomtasd ki, és tedd ki a faladra!
### Érvelés
Nézzük meg, hogy az adott korlátok alapján milyen megközelítéseket választhatunk:
Nézzük meg, hogy hogyan gondolkodhatunk különböző megközelítésekről az adott feltételek mellett:
- **A neurális hálózatok túl nehezek**. Tekintve, hogy az adatállományunk tiszta, de minimális, és hogy a tanítást helyben, notebookokon keresztül végezzük, a neurális hálózatok túl nehézkesek ehhez a feladathoz.
- **Nincs kétosztályos osztályozó**. Nem használunk kétosztályos osztályozót, így az egy-vs-minden kizárható.
- **Döntési fa vagy logisztikus regresszió működhet**. Egy döntési fa működhet, vagy logisztikus regresszió többosztályos adatokhoz.
- **Többosztályos Boosted Decision Trees más problémát old meg**. A többosztályos Boosted Decision Tree leginkább nemparaméteres feladatokhoz alkalmas, például rangsorok létrehozására, így számunkra nem hasznos.
- **A neurális hálók túl nehezek**. Adataink tiszták, de minimálisak, és mivel helyileg, notebookokban futtatjuk a tanítást, a neurális hálók túl nehézsúlyúak ehhez a feladathoz.
- **Nincs kétosztályos osztályozó**. Nem használunk kétosztályos osztályozót, ezért kizárjuk az egy-az-összes elleni módszert.
- **A döntési fa vagy a logisztikus regresszió működhet**. Egy döntési fa működhet, illetve a logisztikus regresszió többosztályos adatokra.
- **A többosztályos Boosted Decision Tree más problémát old meg**. Ez a módszer inkább nem-paraméteres feladatokra alkalmas, például rangsorok készítésére, így nem hasznos nekünk.
### Scikit-learn használata
### Scikit-learn használata
A Scikit-learn-t fogjuk használni az adataink elemzésére. Azonban számos módja van annak, hogy logisztikus regressziót használjunk a Scikit-learn-ben. Nézd meg a [paramétereket](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression), amelyeket megadhatsz.
A Scikit-learn-t használjuk adatelemzésre. Viszont számos módon lehet logisztikus regressziót alkalmazni benne. Nézd meg a [paramétereket](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Lényegében két fontos paraméter van - `multi_class` és `solver` -, amelyeket meg kell határoznunk, amikor arra kérjük a Scikit-learn-t, hogy végezzen logisztikus regressziót. A `multi_class` érték egy bizonyos viselkedést alkalmaz. A solver értéke az algoritmus, amelyet használni kell. Nem minden solver párosítható minden `multi_class` értékkel.
Alapvetően két fontos paraméter van a `multi_class` és a `solver` , amelyet meg kell adni a Scikit-learn-nek logisztikus regresszió kéréséhez. A `multi_class` egy bizonyos viselkedést határoz meg. A `solver` az alkalmazott algoritmust jelöli. Nem minden megoldó párosítható minden `multi_class` értékkel.
A dokumentáció szerint a többosztályos esetben a tanítási algoritmus:
A dokumentáció szerint többosztályos esetben az algoritmus:
- **Az egy-vs-minden (OvR) sémát használja**, ha a `multi_class` opció `ovr`-re van állítva
- **A keresztentrópia veszteséget használja**, ha a `multi_class` opció `multinomial`-ra van állítva. (Jelenleg a `multinomial` opciót csak az lbfgs, sag, saga és newton-cg solvers támogatják.)
- **Az egy-az-összes (OvR) sémát használja**, ha a `multi_class` opció `ovr` értékre van állítva
- **A keresztentrópia veszteséget használja**, ha a `multi_class` beállítás `multinomial`. (Jelenleg a `multinomial` opciót csak az lbfgs, sag, saga és newton-cg megoldók támogatják.)"
> 🎓 A 'séma' itt lehet 'ovr' (egy-vs-minden) vagy 'multinomial'. Mivel a logisztikus regresszió valójában bináris osztályozás támogatására lett tervezve, ezek a sémák lehetővé teszik, hogy jobban kezelje a többosztályos osztályozási feladatokat. [forrás](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 Az itt lévő 'séma' lehet 'ovr' (egy-az-összes) vagy 'multinomial'. Mivel a logisztikus regresszió eredetileg bináris osztályozásra készült, ezek a sémák lehetővé teszik számára a többosztályos feladatok hatékonyabb kezelését. [forrás](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 A 'solver' úgy van definiálva, mint "az algoritmus, amelyet az optimalizálási problémában használni kell". [forrás](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 A 'solver' az "optimalizációs probléma megoldására használt algoritmust" jelenti. [forrás](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
A Scikit-learn ezt a táblázatot kínálja, hogy megmagyarázza, hogyan kezelik a solvers a különböző kihívásokat, amelyeket a különböző adatstruktúrák jelentenek:
A Scikit-learn az alábbi táblázattal mutatja be, miként kezelik a különböző megoldók az eltérő adatszerkezeteket:
![solvers](../../../../4-Classification/2-Classifiers-1/images/solvers.png)
![megoldók](../../../../translated_images/hu/solvers.5fc648618529e627.webp)
## Gyakorlat - az adatok felosztása
## Gyakorlat - oszd fel az adatot
Koncentráljunk a logisztikus regresszióra az első tanítási próbánk során, mivel nemrég tanultál róla egy korábbi leckében.
Oszd fel az adataidat tanítási és tesztelési csoportokra a `train_test_split()` hívásával:
Az első tanítási próbánkhoz a logisztikus regresszióra koncentrálhatunk, hiszen ezt az előző leckében tanultad.
Oszd fel az adataidat tanító és tesztelő csoportokra a `train_test_split()` meghívásával:
```python
X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)
```
## Gyakorlat - logisztikus regresszió alkalmazása
## Gyakorlat - alkalmazz logisztikus regressziót
Mivel a többosztályos esetet használod, ki kell választanod, hogy milyen _sémát_ és milyen _solvert_ állíts be. Használj LogisticRegression-t többosztályos beállítással és a **liblinear** solverrel a tanításhoz.
Mivel többosztályos esetet használsz, ki kell választanod, hogy milyen _sémát_ és milyen _megoldót_ használj. Használd a LogisticRegression-t többosztályos beállítással és **liblinear** megoldóval a tanításhoz.
1. Hozz létre egy logisztikus regressziót, ahol a multi_class `ovr`-re van állítva, és a solver `liblinear`-re:
1. Hozz létre egy logisztikus regressziót, ahol `multi_class` értéke `ovr`, a `solver` pedig `liblinear`:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
@ -163,26 +163,27 @@ Mivel a többosztályos esetet használod, ki kell választanod, hogy milyen _s
print ("Accuracy is {}".format(accuracy))
```
✅ Próbálj ki egy másik solvert, például `lbfgs`, amelyet gyakran alapértelmezettként állítanak be
> Megjegyzés: Használja a Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) függvényt az adatok lapításához, amikor szükséges.
A pontosság **80%** felett jó!
✅ Próbálj ki egy másik megoldót, például az alapértelmezett gyakran használt `lbfgs`-t.
1. Ezt a modellt működés közben láthatod, ha tesztelsz egy adat sort (#50):
> Megjegyzés: használd a Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) függvényét, ha szükséges az adatok kiterítése.
Az pontosság jó, több mint **80%**!
1. Megnézheted ezt a modellt működés közben, ha megvizsgálsz egy adat sort (#50):
```python
print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
print(f'cuisine: {y_test.iloc[50]}')
```
Az eredmény ki van nyomtatva:
Az eredmény kiírásra kerül:
```output
ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
cuisine: indian
```
✅ Próbálj ki egy másik sor számot, és ellenőrizd az eredményeket.
✅ Próbálj ki egy másik sorszámot és nézd meg az eredményeket
1. Mélyebbre ásva ellenőrizheted ennek az előrejelzésnek a pontosságát:
```python
@ -195,7 +196,7 @@ A pontosság **80%** felett jó!
topPrediction.head()
```
Az eredmény ki van nyomtatva - az indiai konyha a legjobb tippje, jó valószínűséggel:
Az eredmény kiírásra kerül - az indiai konyha a legvalószínűbb találat:
| | 0 |
| -------: | -------: |
@ -205,40 +206,43 @@ A pontosság **80%** felett jó!
| korean | 0.017277 |
| thai | 0.007634 |
Meg tudod magyarázni, miért gondolja a modell, hogy ez biztosan indiai konyha?
El tudod magyarázni, miért biztos a modell abban, hogy ez egy indiai konyha?
1. Szerezz több részletet egy osztályozási jelentés kinyomtatásával, ahogy a regressziós leckékben tetted:
1. Részletesebb információért nyomtasd ki a besorolási jelentést, ahogy a regressziós leckékben is tettél:
```python
y_pred = model.predict(X_test)
print(classification_report(y_test,y_pred))
```
| | pontosság | visszahívás | f1-érték | támogatás |
| ------------ | --------- | ----------- | -------- | --------- |
| 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 |
| pontosság | 0.80 | 1199 | | |
| makro átlag | 0.80 | 0.80 | 0.80 | 1199 |
| súlyozott átlag | 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 |
## 🚀Kihívás
Ebben a leckében a megtisztított adataidat használtad egy gépi tanulási modell felépítéséhez, amely képes nemzeti konyhát előre jelezni egy sor összetevő alapján. Szánj időt arra, hogy átnézd a Scikit-learn által kínált számos lehetőséget az adatok osztályozására. Áss mélyebbre a 'solver' fogalmába, hogy megértsd, mi zajlik a háttérben.
Ebben a leckében a megtisztított adatoddal építettél egy gépi tanulási modellt, amely egy sor összetevő alapján meg tudja jósolni a nemzeti konyhát. Szánj egy kis időt arra, hogy áttekintsd a Scikit-learn számos lehetőségét az adatok osztályozására. Mélyedj el a 'solver' fogalmában, hogy megértsd, mi zajlik a háttérben.
## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
## Áttekintés és önálló tanulás
## Áttekintés & Önálló tanulás
Merülj el egy kicsit mélyebben a logisztikus regresszió mögötti matematikában ebben a [leckében](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
Áss egy kicsit mélyebbre a logisztikus regresszió matematikájában [ebben a leckében](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Feladat
## Házi feladat
[Tanulmányozd a solvereket](assignment.md)
[A solver-ek tanulmányozása](assignment.md)
---
**Felelősség kizárása**:
Ez a dokumentum az AI fordítási szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével lett lefordítva. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt professzionális emberi fordítást igénybe venni. Nem vállalunk felelősséget semmilyen félreértésért vagy téves értelmezésért, amely a fordítás használatából eredhet.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Nyilatkozat**:
Ezt a dokumentumot az AI fordító szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével fordítottuk. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum a saját nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt a szakmai emberi fordítás igénybevétele. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy félreértelmezésekért.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -10,14 +10,14 @@
### 🌐 Többnyelvű támogatás
#### GitHub Action által támogatott (Automatizált és Mindig Naprakész)
#### GitHub Action révén támogatott (Automatikus és Mindig Friss)
<!-- 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](./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)
> **Inkább helyben klónoznád?**
> **Inkább helyben klónozna?**
>
> Ez a tároló több mint 50 nyelvi fordítást tartalmaz, ami jelentősen növeli a letöltési méretet. Ha fordítások nélkül szeretnéd klónozni, használd a sparse checkout-ot:
> Ez a tárhely több mint 50 nyelvi fordítást tartalmaz, ami jelentősen megnöveli a letöltési méretet. Ha le akarja tölteni fordítások nélkül, használja a sparse checkout-ot:
>
> **Bash / macOS / Linux:**
> ```bash
@ -33,63 +33,62 @@
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Így minden szükséges dolgot megkap, hogy be tudd fejezni a tanfolyamot sokkal gyorsabb letöltéssel.
> Így minden megvan ahhoz, hogy gyorsabban töltse le a kurzust és elvégezze azt.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Csatlakozz közösségünkhöz
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Folyamatban van egy Discord „tanulj AI-val” sorozatunk, tanulj többet és csatlakozz hozzánk a [Tanulj AI-val sorozaton](https://aka.ms/learnwithai/discord) 2025. szeptember 18-tól 30-ig. Tippeket és trükköket fogsz kapni a GitHub Copilot adat tudományi használatához.
Folyamatban van egy Discord tanulás az AI-val sorozatunk, további információkért és csatlakozáshoz látogass el ide: [Learn with AI Series](https://aka.ms/learnwithai/discord) 2025. szeptember 18-30. között. Hasznos tippeket és trükköket kapsz a GitHub Copilot adat tudományi használatához.
![Learn with AI series](../../translated_images/hu/3.9b58fd8d6c373c20.webp)
# Gépi tanulás kezdőknek - Tanterv
# Gépi tanulás kezdőknek - egy tanterv
> 🌍 Utazz a világ körül, miközben a gépi tanulást a világ kultúrái segítségével fedezzük fel 🌍
> 🌍 Utazzunk a világ körül, miközben a gépi tanulást világkultúrák révén fedezzük fel 🌍
A Microsoft Cloud Advocates örömmel kínál egy 12 hetes, 26 leckéből álló tantervet, amely a **gépi tanulásról** szól. Ebben a tantervben megismerkedsz azzal, amit néha **klasszikus gépi tanulásnak** hívnak, főként a Scikit-learn könyvtár használatával, elkerülve a mély tanulást, amely az [AI kezdőknek tantervünkben](https://aka.ms/ai4beginners) található meg. Ezeket a leckéket párosítsd a ['Data Science kezdőknek' tantervünkkel](https://aka.ms/ds4beginners) is!
A Microsoft Cloud Advocates örömmel kínál egy 12 hetes, 26 leckéből álló tananyagot, amely a **Gépi tanulásról** szól. Ebben a tanfolyamban megismerkedhet a néha egyszerűen **klasszikus gépi tanulásnak** nevezett megközelítéssel, amely főként a Scikit-learn könyvtárat használja, és elkerüli a mélytanulást, amelyet a [AI kezdőknek tantervünk](https://aka.ms/ai4beginners) fed le. Ez a tananyag tökéletes kiegészítője a ['Adattudomány kezdőknek tantervnek'](https://aka.ms/ds4beginners).
Utazz velünk a világ körül, miközben ezeket a klasszikus technikákat a világ számos területéről származó adatokra alkalmazzuk. Minden lecke tartalmaz elő- és utóvizsgákat, írásos utasításokat a lecke elvégzéséhez, megoldást, feladatot és egyebeket. Projekt-alapú oktatásunk lehetővé teszi, hogy tanulj miközben építesz, ez egy bevált mód az új készségek elmélyítésére.
Utazz velünk a világ különböző részeire, és alkalmazzunk klasszikus gépi tanulási technikákat sokféle adatállományon. Minden lecke tartalmaz elő- és utóvizsgát, írásos útmutatót a feladat elvégzéséhez, megoldást, feladatot és még sok mást. Projekt-alapú tanítási módszerünk lehetővé teszi, hogy gyakorlás közben tanulj, ami bizonyítottan jobban rögzíti az új képességeket.
**✍️ Szívből köszönjük szerzőinknek:** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu és Amy Boyd
**✍️ Szívből köszönet szerzőinknek:** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu és Amy Boyd
**🎨 Köszönjük illusztrátorainknak is:** Tomomi Imura, Dasani Madipalli és Jen Looper
**🎨 Köszönet illusztrátorainknak is:** Tomomi Imura, Dasani Madipalli és Jen Looper
**🙏 Külön köszönetünk 🙏 a Microsoft Hallgatói Nagykövetei szerzőinknek, lektorainknak és tartalomközreműködőinknek**, különösen Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila és Snigdha Agarwal
**🙏 Kiemelt köszönet 🙏 Microsoft Hallgatói Nagykövet szerzőinknek, lektorainknak és tartalomközreműködőinknek, különösen Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, és Snigdha Agarwal**
**🤩 Külön köszönet a Microsoft Hallgatói Nagyköveteknek, Eric Wanjau-nak, Jasleen Sondhi-nak és Vidushi Gupta-nak a R leckéinkért!**
**🤩 Különös hála Microsoft Hallgatói Nagyköveteknek Eric Wanjau, Jasleen Sondhi, és Vidushi Gupta az R leckékért!**
# Kezdés
# Kezdjük el
Kövesd ezeket a lépéseket:
1. **Forkold le a tárolót**: Kattints a "Fork" gombra a jobb felső sarokban ezen az oldalon.
2. **Klónozd a tárolót**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
Kövesd az alábbi lépéseket:
1. **Forkold le a tárhelyet**: Kattints a "Fork" gombra a jobb felső sarokban.
2. **Klónozd a tárhelyet**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [Minden további erőforrást megtalálsz ehhez a tanfolyamhoz Microsoft Learn gyűjteményünkben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [Az összes további forrást megtalálod Microsoft Learn gyűjteményünkben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Segítségre van szükséged?** Nézd meg [Hibaelhárítási útmutatónkat](TROUBLESHOOTING.md) az általános telepítési, beállítási és lecke futtatási problémák megoldásáért.
> 🔧 **Segítségre van szükséged?** Nézd meg a [Hibaelhárítási útmutatót](TROUBLESHOOTING.md), amelyben megoldásokat találsz a telepítési, beállítási és futtatási problémákra.
**[Hallgatók](https://aka.ms/student-page)**, hogy használni tudjátok ezt a tantervet, forkold a teljes repo-t a saját GitHub fiókodra, és saját vagy csoportos munkában végezd el a feladatokat:
**[Tanulók](https://aka.ms/student-page)**, a tanterv használatához forkold le az egész repo-t a saját GitHub fiókodra, és végezd el a gyakorlatokat egyénileg vagy csoportban:
- Kezdd az előadás előtti kvízzel.
- Olvasd el az előadást, és végezd el a feladatokat, időnként megállva és átgondolva a tudásellenőrző pontokat.
- Próbáld meg a projekteket úgy elkészíteni, hogy megérted a leckék lényegét, ne csak a megoldást futtasd; a megoldások azonban megtekinthetők a /solution könyvtárban minden projekt-alapú leckénél.
- Tedd meg az előadás utáni kvízt.
- Végezd el a kihívást.
- Végezd el a házi feladatot.
- Miután befejeztél egy leckecsoportot, látogass el a [Fórum](https://github.com/microsoft/ML-For-Beginners/discussions) oldalra, és „tanulj hangosan” a megfelelő PAT értékelőlap kitöltésével. A 'PAT' egy előrehaladási értékelő eszköz, ami egy értékelőlap, amelyet kitöltesz a tanulás elősegítésére. Reagálhatsz más PAT-okra is, így együtt tanulhatunk.
- Kezdd előadási előkészítő kvízzel.
- Olvasd el az előadást és végezd el a feladatokat, megállva és átgondolva minden tudásellenőrzésnél.
- Próbáld meg a projekteket úgy elkészíteni, hogy érted a leckéket, és ne csak lefuttasd a megoldó kódot; a megoldások kódban is elérhetők a projekt alapú leckék `/solution` mappáiban.
- Tedd meg az utólagos előadási kvízt.
- Teljesítsd a kihívást.
- Teljesítsd a feladatot.
- Egy leckecsoport befejezése után látogasd meg a [Vita fórumot](https://github.com/microsoft/ML-For-Beginners/discussions), és "tanulj hangosan" a megfelelő PAT értékelőlap kitöltésével. A 'PAT' egy Haladási Értékelő Eszköz, amit kitöltesz a tanulás javítása érdekében. Mások PAT értékeléseire is reagálhatsz, hogy együtt tanulhassunk.
> További tanuláshoz ajánljuk, hogy kövesd ezeket a [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulokat és tanulási útvonalakat.
> További tanuláshoz ajánljuk ezeket a [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulokat és tanulási utakat.
**Tanárként** javaslatokat találsz [a tanterv használatához](for-teachers.md).
**Tanárok**, csatoltunk néhány [javaslatot](for-teachers.md) arra, hogyan használhatjátok ezt a tantervet.
---
## Videós bemutatók
Néhány lecke elérhető rövid videó formátumban. Ezeket megtalálhatod a leckék között, vagy a [ML kezdőknek lejátszási listán a Microsoft Developer YouTube csatornán](https://aka.ms/ml-beginners-videos), ha a képre kattintasz.
Néhány lecke rövid videó formájában is elérhető. Ezeket a leckékben közvetlenül, vagy a [ML for Beginners lejátszási listán a Microsoft Developer YouTube csatornán](https://aka.ms/ml-beginners-videos) találhatod meg, az alábbi képre kattintva.
[![ML for beginners banner](../../translated_images/hu/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
@ -99,81 +98,81 @@ Néhány lecke elérhető rövid videó formátumban. Ezeket megtalálhatod a le
[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif készítője:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
**Gif készítő:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
> 🎥 Kattints a fenti képre egy videó megtekintéséhez a projektről és az alkotókról!
> 🎥 Kattints a fenti képre a projektről és az alkotókról készült videó megtekintéséhez!
---
## Pedagógia
Két pedagógiai alapelvet választottunk ehhez a tantervhez: hogy gyakorlatias, **projekt-alapú** legyen, és hogy **gyakori kvízeket** tartalmazzon. Ezen kívül a tantervnek van egy közös **vonalvezető témája** az összefüggőség érdekében.
Két tanítási alapelvet választottunk ennek a tananyagnak az összeállításakor: hogy gyakorlati, **projekt-alapú** legyen, és hogy tartalmazzon **gyakori kvízeket**. Emellett egy közös **téma** köti össze.
Azáltal, hogy a tartalom projektekkel összhangban van, a folyamat érdekesebb lesz a tanulók számára és a fogalmak megőrzése javul. Emellett az órák előtti kis kockázatú kvíz irányt ad a tanuló szándékának a téma elsajátítására, míg az óra utáni második kvíz további rögzítést biztosít. Ez a tanterv rugalmas és szórakoztató, egészben vagy részben is végezhető. A projektek kicsiben indulnak, és egyre összetettebbek lesznek a 12 hetes ciklus végére. A tanterv tartalmaz egy utószót is a valós világban alkalmazott ML-ről, amit plusz pontként vagy vitatémaként lehet felhasználni.
Azáltal, hogy a tartalom projektekhez kapcsolódik, a tanulás motiválóbbá válik, és a fogalmak jobb megtartását segíti elő. Egy alacsony tétű kvíz az óra előtt elősegíti a tanulók szándékát egy téma elsajátítására, míg az óra utáni kvíz tovább erősíti a megtartást. Ez a tananyag rugalmas és szórakoztató, egészben vagy részleteiben is elvégezhető. A projektek kezdetben kisebbek, és a 12 hetes ciklus végére egyre bonyolultabbak lesznek. A tananyag tartalmaz egy utószót a gépi tanulás valós alkalmazásairól is, ami extra pontként vagy vitatéma alapként használható.
> Találd meg [Magatartási kódexünket](CODE_OF_CONDUCT.md), [Közreműködési irányelveinket](CONTRIBUTING.md), a [Fordításokat](..), és a [Hibaelhárítást](TROUBLESHOOTING.md). Szívesen fogadjuk építő visszajelzésed!
> Olvasd el a [Viselkedési Kódexünket](CODE_OF_CONDUCT.md), a [Hozzájárulási Útmutatót](CONTRIBUTING.md), a [Fordításokat](..) és a [Hibaelhárítást](TROUBLESHOOTING.md). Várjuk konstruktív visszajelzéseidet!
## Minden lecke tartalmaz
- opcionális vázlatjegyzet
- opcionális kiegészítő videó
- videós bemutató (néhány lecke csak)
- [elő-előadás bemelegítő kvíz](https://ff-quizzes.netlify.app/en/ml/)
- írásos lecke
- projekt-alapú leckéknél lépésről-lépésre útmutató a projekt elkészítéséhez
- tudásfelmérő
- kihívás
- kiegészítő olvasmány
- feladat
- [utó-előadás kvíz](https://ff-quizzes.netlify.app/en/ml/)
> **Megjegyzés a nyelvekről**: Ezek a leckék elsősorban Python nyelven íródtak, de sok elérhető R-ben is. Egy R leckét a befejezéshez menj a `/solution` mappába, és keresd az R leckéket. Ezek .rmd kiterjesztésű fájlok, amelyek egy **R Markdown** fájlt jelentenek, amely egyszerűen definiálható úgy, hogy `kódblokkokat` (R vagy más nyelvek kódjai) és egy `YAML fejlécet` (amely útmutatást ad a kimenetek, például PDF formázásához) ágyaz be egy `Markdown dokumentumba`. Így példamutató keretrendszert nyújt az adattudományhoz, mivel lehetővé teszi, hogy összekapcsold a kódodat, annak kimenetét és gondolataidat, mindezt Markdown formátumban írva le. Továbbá, az R Markdown dokumentumok PDF, HTML vagy Word kimeneti formátumokká alakíthatók.
> **Megjegyzés a tesztekről**: Az összes teszt a [Quiz App mappában](../../quiz-app) található, összesen 52 darab, három kérdésből álló teszt. Ezek linkelve vannak a leckékben, de a teszt alkalmazás helyileg is futtatható; a `quiz-app` mappában található utasításokat követve helyben hosztolhatod vagy telepítheted Azure-ra.
| Lecke száma | Téma | Lecke Csoportosítás | Tanulási célok | Kapcsolódó lecke | Szerző |
| :---------: | :----------------------------------------------------------: | :-----------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: |
| 01 | Bevezetés a gépi tanulásba | [Bevezetés](1-Introduction/README.md) | Ismerd meg a gépi tanulás alapfogalmait | [Lecke](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | A gépi tanulás története | [Bevezetés](1-Introduction/README.md) | Tanuld meg a terület mögötti történelmet | [Lecke](1-Introduction/2-history-of-ML/README.md) | Jen és Amy |
| 03 | Méltányosság és gépi tanulás | [Bevezetés](1-Introduction/README.md) | Melyek a fontos filozófiai kérdések a méltányosság terén, amiket a tanulóknak meg kell fontolniuk ML modellek létrehozásakor és alkalmazásakor? | [Lecke](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Gépi tanulási technikák | [Bevezetés](1-Introduction/README.md) | Milyen technikákat alkalmaznak az ML kutatók ML modellek építéséhez? | [Lecke](1-Introduction/4-techniques-of-ML/README.md) | Chris és Jen |
| 05 | Bevezetés a regresszióba | [Regresszió](2-Regression/README.md) | Kezdj el dolgozni Pythonnal és a Scikit-learn könyvtárral regressziós modellekhez | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Adatok vizualizálása és tisztítása gépi tanulásra való felkészüléshez | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Lineáris és polinomiális regressziós modellek építése | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen és Dmitry • Eric Wanjau |
| 08 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Logisztikus regressziós modell építése | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Webalkalmazás 🔌 | [Web App](3-Web-App/README.md) | Webalkalmazás építése a betanított modell használatához | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Bevezetés a klasszifikációba | [Klasszifikáció](4-Classification/README.md) | Tisztítsd, készítsd elő és vizualizáld az adataidat; bevezetés a klasszifikációba | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen és Cassie • Eric Wanjau |
| 11 | Finom ázsiai és indiai konyhák 🍜 | [Klasszifikáció](4-Classification/README.md) | Bevezetés a klasszifikátorokhoz | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen és Cassie • Eric Wanjau |
| 12 | Finom ázsiai és indiai konyhák 🍜 | [Klasszifikáció](4-Classification/README.md) | További klasszifikátorok | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen és Cassie • Eric Wanjau |
| 13 | Finom ázsiai és indiai konyhák 🍜 | [Klasszifikáció](4-Classification/README.md) | Ajánló webalkalmazás építése a modelled használatával | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Bevezetés a klaszterezésbe | [Klaszterezés](5-Clustering/README.md) | Tisztítsd, készítsd elő és vizualizáld az adataidat; bevezetés a klaszterezésbe | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Felfedező elemzés a nigériai zenei ízlésekről 🎧 | [Klaszterezés](5-Clustering/README.md) | Fedezd fel a K-means klaszterezési módszert | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Bevezetés a természetesnyelv-feldolgozásba ☕️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Tanuld meg az NLP alapjait egy egyszerű bot elkészítésével | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Gyakoribb NLP feladatok ☕️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Mélyítsd el NLP ismereteidet a nyelvi szerkezetek kezeléséhez szükséges gyakori feladatok megértésével | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Fordítás és hangulatelemzés ♥️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Fordítás és hangulatelemzés Jane Austen példáján keresztül | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantikus hotelek Európában ♥️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Hangulatelemzés hotelértékelésekkel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantikus hotelek Európában ♥️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Hangulatelemzés hotelértékelésekkel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Bevezetés az idősor előrejelzésbe | [Idősor](7-TimeSeries/README.md) | Bevezetés az idősor előrejelzésbe | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Világenergia-felhasználás ⚡️ - idősor előrejelzés ARIMA-val | [Idősor](7-TimeSeries/README.md) | Idősor előrejelzés ARIMA segítségével | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Világenergia-felhasználás ⚡️ - idősor előrejelzés SVR-rel | [Idősor](7-TimeSeries/README.md) | Idősor előrejelzés Támogatott Vektor Regresszorral | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Bevezetés a megerősítéses tanulásba | [Megerősítéses tanulás](8-Reinforcement/README.md) | Bevezetés a megerősítéses tanulásba Q-tanulás segítségével | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Segíts Péternek elkerülni a farkast! 🐺 | [Megerősítéses tanulás](8-Reinforcement/README.md) | Megerősítéses tanulás Gym környezetben | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Utószó | Valós világ gépi tanulás esetei és alkalmazásai | [ML a valóságban](9-Real-World/README.md) | Érdekes és feltáró valós világ klasszikus gépi tanulás alkalmazások | [Lecke](9-Real-World/1-Applications/README.md) | Csapat |
| Utószó | Modellhibázás gépi tanulásban RAI dashboarddal | [ML a valóságban](9-Real-World/README.md) | Modellhibázás gépi tanulásban a Responsible AI dashboard komponenseivel | [Lecke](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [találd meg az összes további forrást ehhez a kurzushoz a Microsoft Learn gyűjteményünkben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
- opcionális vázlatjegyzetet
- opcionális kiegészítő videót
- videós bemutatót (csak néhány leckénél)
- [előadás előtti bemelegítő kvízt](https://ff-quizzes.netlify.app/en/ml/)
- írásos leckét
- projekt-alapú leckéknél lépésről lépésre útmutatót a projekt elkészítéséhez
- tudásellenőrző kérdéseket
- kihívást
- kiegészítő olvasmányt
- házi feladatot
- [előadás utáni kvízt](https://ff-quizzes.netlify.app/en/ml/)
> **Megjegyzés a nyelvekről**: Ezek a leckék elsősorban Pythonban íródtak, de sok közülük elérhető R-ben is. Egy R lecke teljesítéséhez keresd meg a `/solution` mappát, és ott az R leckéket. Ezek .rmd kiterjesztésű fájlok, amelyek egy **R Markdown** fájlt jelentenek, amit egyszerűen úgy lehet definiálni, mint `kódrészletek` (R vagy más nyelvek) és egy `YAML fejléc` (amely irányítja a kimenetek formázását, például PDF esetén) beágyazását egy `Markdown dokumentumban`. Így kiváló szerkesztési keretként szolgálnak az adat tudományban, mivel lehetővé teszik a kód, annak kimenete és a gondolatok együttes írását Markdownban. Ezenkívül az R Markdown dokumentumok különböző kimeneti formátumokká is átalakíthatók, például PDF, HTML vagy Word formátummá.
> **Megjegyzés a kvízekről**: Minden kvíz a [Quiz App mappában](../../quiz-app) található, összesen 52 három kérdésből álló kvíz. Ezek elérhetők a leckékből, de a kvíz alkalmazás helyileg is futtatható; kövesd a `quiz-app` mappa utasításait a helyi hosztoláshoz vagy az Azure-ra való telepítéshez.
| Lecke száma | Téma | Lecke csoportosítás | Tanulási célok | Kapcsolódó lecke | Szerző |
| :---------: | :------------------------------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------: |
| 01 | Bevezetés a gépi tanulásba | [Bevezetés](1-Introduction/README.md) | Tanuld meg a gépi tanulás alapfogalmait | [Lecke](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | A gépi tanulás története | [Bevezetés](1-Introduction/README.md) | Ismerd meg a gépi tanulás mögötti történelmet | [Lecke](1-Introduction/2-history-of-ML/README.md) | Jen és Amy |
| 03 | Méltányosság és gépi tanulás | [Bevezetés](1-Introduction/README.md) | Mik a fontos filozófiai kérdések a méltányosság körül, amelyeket a diákoknak figyelembe kell venniük ML modellek építésekor? | [Lecke](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Gépi tanulási technikák | [Bevezetés](1-Introduction/README.md) | Milyen technikákat használnak a kutatók gépi tanulási modellek építésére? | [Lecke](1-Introduction/4-techniques-of-ML/README.md) | Chris és Jen |
| 05 | Bevezetés a regresszióba | [Regresszió](2-Regression/README.md) | Kezdj el dolgozni Python és Scikit-learn segítségével regressziós modellekhez | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Adatvizualizáció és tisztítás gépi tanulásra való felkészülésként | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Lineáris és polinomiális regressziós modellek építése | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen és Dmitry • Eric Wanjau |
| 08 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Logisztikus regressziós modell építése | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Egy webalkalmazás 🔌 | [Web App](3-Web-App/README.md) | Webalkalmazás építése a már betanított modell használatához | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Bevezetés az osztályozásba | [Classification](4-Classification/README.md) | Adattisztítás, előkészítés és vizualizáció; bevezetés az osztályozásba | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen és Cassie • Eric Wanjau |
| 11 | Finom ázsiai és indiai konyhák 🍜 | [Classification](4-Classification/README.md) | Bevezetés az osztályozókba | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen és Cassie • Eric Wanjau |
| 12 | Finom ázsiai és indiai konyhák 🍜 | [Classification](4-Classification/README.md) | Több osztályozó | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen és Cassie • Eric Wanjau |
| 13 | Finom ázsiai és indiai konyhák 🍜 | [Classification](4-Classification/README.md) | Ajánló webalkalmazás építése a modelled segítségével | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Bevezető a klaszterezéshez | [Clustering](5-Clustering/README.md) | Adattisztítás, előkészítés és vizualizáció; bevezetés a klaszterezésbe | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Nigériai zenei ízlések feltérképezése 🎧 | [Clustering](5-Clustering/README.md) | A K-Mean klaszterezési módszer felfedezése | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Bevezetés a természetes nyelvfeldolgozásba ☕️ | [Natural language processing](6-NLP/README.md) | Tanuld meg az NLP alapjait egy egyszerű bot építésével | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Gyakori NLP feladatok ☕️ | [Natural language processing](6-NLP/README.md) | Mélyítsd el az NLP tudásodat a nyelvi struktúrákkal kapcsolatos feladatok megértésével | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Fordítás és érzelemelemzés ♥️ | [Natural language processing](6-NLP/README.md) | Fordítás és érzelemelemzés Jane Austen segítségével | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Romantikus európai szállodák ♥️ | [Natural language processing](6-NLP/README.md) | Érzelemelemzés szállodai értékelésekkel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Romantikus európai szállodák ♥️ | [Natural language processing](6-NLP/README.md) | Érzelemelemzés szállodai értékelésekkel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Bevezetés az idősoros előrejelzésbe | [Time series](7-TimeSeries/README.md) | Bevezetés az idősoros előrejelzésbe | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Világ energiapiac ⚡️ - idősoros előrejelzés ARIMA-val | [Time series](7-TimeSeries/README.md) | Idősoros előrejelzés ARIMA-val | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Világ energiapiac ⚡️ - idősoros előrejelzés SVR-rel | [Time series](7-TimeSeries/README.md) | Idősoros előrejelzés Support Vector Regresszorral | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Bevezetés a megerősítéses tanulásba | [Reinforcement learning](8-Reinforcement/README.md) | Bevezetés megerősítéses tanulásba Q-Learning segítségével | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Segíts Peternek elkerülni a farkast! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Megerősítéses tanulás Gym-ban | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Utószó | Valós világ ML forgatókönyvek és alkalmazások | [ML in the Wild](9-Real-World/README.md) | Érdekes és szemléletes valós világban alkalmazott klasszikus gépi tanulási példák | [Lecke](9-Real-World/1-Applications/README.md) | Csapat |
| Utószó | Modellhibakeresés gépi tanulásban az RAI irányítópulttal | [ML in the Wild](9-Real-World/README.md) | Modellhibakeresés gépi tanulásban a Responsible AI irányítópult komponensek használatával | [Lecke](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [keresd meg az összes további erőforrást ehhez a tanfolyamhoz a Microsoft Learn gyűjteményünkben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Offline hozzáférés
Ezt a dokumentációt offline is futtathatod a [Docsify](https://docsify.js.org/#/) segítségével. Forkold ezt a repót, [telepítsd a Docsify-t](https://docsify.js.org/#/quickstart) a helyi gépeden, majd a repó gyökér mappájában írd be, hogy `docsify serve`. A weboldalt a localhost 3000-es portján szolgálja ki: `localhost:3000`.
Ezt a dokumentációt offline is futtathatod a [Docsify](https://docsify.js.org/#/) használatával. Forkold ezt a repo-t, telepítsd a Docsify-t ([Docsify telepítése](https://docsify.js.org/#/quickstart)) a helyi gépedre, majd a repo gyökérmappájában írd be a `docsify serve` parancsot. A weboldal a 3000-es porton lesz elérhető helyileg: `localhost:3000`.
## PDF-ek
A tananyag pdf változatát linkekkel [itt találod](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Egyéb kurzusok
## 🎒 Egyéb tanfolyamok
Csapatunk más kurzusokat is készít! Nézd meg:
Csapatunk további tanfolyamokat is készít! Nézd meg:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
@ -185,54 +184,65 @@ Csapatunk más kurzusokat is készít! Nézd meg:
### Azure / Edge / MCP / Ügynökök
[![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 kezdőknek](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 ügynökök kezdőknek](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst)
[![MCP 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)
---
### Generatív MI sorozat
[![Generatív MI kezdőknek](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)
[![Generatív MI (.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)
[![Generatív MI (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)
[![Generatív MI (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)
[![Generatív 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)
[![Generatív 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)
[![Generatív 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)
[![Generatív 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)
---
### Alapvető tanulás
[![Gépi tanulás kezdőknek](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)
[![Adattudomány kezdőknek](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)
[![MI kezdőknek](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)
[![Kiberbiztonság kezdőknek](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)
[![Webfejlesztés kezdőknek](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 kezdőknek](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 fejlesztés kezdőknek](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)
---
### Copilot sorozat
[![Copilot az MI páros programozáshoz](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-hez](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 kaland](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 -->
## Segítség kérése
## Segítségkérés
Ha elakadnál vagy kérdésed lenne AI alkalmazások építésével kapcsolatban, csatlakozz a tanulótársakhoz és tapasztalt fejlesztőkhöz a MCP-vel kapcsolatos beszélgetésekben. Ez egy támogató közösség, ahol a kérdések szívesen fogadottak, és a tudás szabadon megosztott.
Ha elakadnál vagy kérdéseid lennének a gépi tanulás tanulása vagy MI-alkalmazások készítése közben, ne aggódj — segítség elérhető.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Csatlakozhatsz más tanulókkal és fejlesztőkkel folytatott beszélgetésekhez, kérdezhetsz és megoszthatod ötleteidet a közösséggel.
- Csatlakozz a közösséghez, hogy kérdéseket tegyél fel és másokkal tanulj
- Beszéljétek meg a gépi tanulás fogalmait és projektötleteket
- Kapj útmutatást tapasztalt fejlesztőktől
Egy támogató közösség nagyszerű módja a készségeid fejlesztésének és a problémák gyorsabb megoldásának.
[Microsoft Foundry Discord közösség](https://discord.gg/nTYy5BXMWG)
Ha hibákat, problémákat tapasztalsz, vagy fejlesztési javaslataid vannak, egy **Issue** megnyitásával jelezheted a problémát ebben a tárolóban.
Termék visszajelzésekhez vagy meglévő közösségi bejegyzések kereséséhez látogass el a Fejlesztői Fórumra:
Ha termék-visszajelzésed vagy hibák jelentkeznek az építés során, látogass el ide:
[![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)
[![Microsoft Foundry Fejlesztői Fórum](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)
## További tanulási tippek
- Nézd át a jegyzetfüzeteket minden lecke után a jobb megértés érdekében.
- Gyakorold a algoritmusok önálló megvalósítását.
- Fedezz fel valós adatokat a tanult fogalmak alkalmazásával.
- Tekintsd át a jegyzetfüzeteket minden lecke után a jobb megértés érdekében.
- Gyakorold az algoritmusok önálló implementálását.
- Fedezz fel valós adatkészleteket a tanult koncepciók segítségével.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Nyilatkozat**:
Ezt a dokumentumot az AI fordító szolgáltatásával, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével fordítottuk. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítás hibákat vagy pontatlanságokat tartalmazhat. Az eredeti dokumentum anyanyelvű változata tekintendő hiteles forrásnak. Kritikus információk esetén professzionális emberi fordítást javaslunk. Nem vállalunk felelősséget az ezen fordítás használatából eredő félreértésekért vagy hibás értelmezésekért.
**Jogi nyilatkozat**:
Ez a dokumentum az [Co-op Translator](https://github.com/Azure/co-op-translator) AI fordító szolgáltatás használatával készült. Bár a pontosságra törekszünk, kérjük, vegye figyelembe, hogy az automatikus fordítások tartalmazhatnak hibákat vagy pontatlanságokat. Az eredeti dokumentum anyanyelvi változata tekintendő hivatalos forrásnak. Fontos információk esetén szakmai, emberi fordítás használata javasolt. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy félreértelmezésekért.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -90,8 +90,8 @@
"language_code": "sw"
},
"2-Regression/3-Linear/README.md": {
"original_hash": "9a8359f1945bd3beccccb2b46592580e",
"translation_date": "2026-02-28T09:57:04+00:00",
"original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
"translation_date": "2026-04-20T19:24:51+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "sw"
},
@ -168,8 +168,8 @@
"language_code": "sw"
},
"4-Classification/2-Classifiers-1/README.md": {
"original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b",
"translation_date": "2025-09-05T16:16:51+00:00",
"original_hash": "cb761595e5b6c42b99bb81bd13683311",
"translation_date": "2026-04-20T19:25:51+00:00",
"source_file": "4-Classification/2-Classifiers-1/README.md",
"language_code": "sw"
},
@ -552,8 +552,8 @@
"language_code": "sw"
},
"README.md": {
"original_hash": "7fb48097f57e680b380cd9aae988d317",
"translation_date": "2026-04-06T15:56:40+00:00",
"original_hash": "3e3a6c7e68e0afe7e2276ac046e4d7a0",
"translation_date": "2026-04-20T19:23:24+00:00",
"source_file": "README.md",
"language_code": "sw"
},

@ -1,113 +1,113 @@
# Jenga mfano wa urekebishaji ukitumia Scikit-learn: urekebishaji kwa njia nne
# Jenga mfano wa regression kwa kutumia Scikit-learn: namna nne za regression
## Kumbuka kwa Mwanzo
## Kumbusho kwa Waanzaji
Urekebishaji wa mstari hutumiwa tunapotaka kutabiri **thamani ya nambari** (kwa mfano, bei ya nyumba, joto, au mauzo).
Hufanya kazi kwa kupata mstari wa moja kwa moja unaowakilisha vizuri uhusiano kati ya vipengele vya ingizo na matokeo.
Linear regression hutumika tunapotaka kutabiri **thamani ya nambari** (kwa mfano, bei ya nyumba, joto, au mauzo).
Inafanya kazi kwa kupata mstari wa moja kwa moja unaowakilisha vizuri uhusiano kati ya vipengele vya ingizo na matokeo.
Katika somo hili, tunazingatia kuelewa dhana kabla ya kuchunguza mbinu za urekebishaji za hali ya juu.
Katika somo hili, tunazingatia kuelewa dhana kabla ya kuchunguza mbinu za regression zilizo juu zaidi.
![Linear vs polynomial regression infographic](../../../../translated_images/sw/linear-polynomial.5523c7cb6576ccab.webp)
> Picha ya taarifa na [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Mtihani kabla ya mihadhara](https://ff-quizzes.netlify.app/en/ml/)
> Infographic na [Dasani Madipalli](https://twitter.com/dasani_decoded)
## [Jaribio la awali](https://ff-quizzes.netlify.app/en/ml/)
> ### [Somo hili linapatikana pia kwa R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
> ### [Somo hili lipo pia kwa R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Utangulizi
Hadi sasa umechambua ni nini urekebishaji kwa kutumia data ya sampuli kutoka kwenye dataset ya bei ya malenge ambayo tutatumia katika somo hili lote. Pia umeionyesha picha kwa kutumia Matplotlib.
Hadi sasa umechunguza ni regression ni nini kwa data mfano iliyokusanywa kutoka kwenye dataset ya bei ya malenge ambayo tutaitumia kwa somo hili lote. Pia umeionyesha kwa kutumia Matplotlib.
Sasa uko tayari kuingia zaidi katika urekebishaji kwa ML. Wakati uoneshaji picha unakuwezesha kuelewa data, nguvu halisi ya Kujifunza kwa Mashine hutoka kwa _mafunzo ya mifano_. Mifano huandaliwa kwa data ya kihistoria ili kiotomatiki kushika utegemezi wa data, na hukuruhusu kutabiri matokeo kwa data mpya, ambayo mfano haujawahi kuona hapo awali.
Sasa uko tayari kuingia zaidi katika regression kwa ML. Wakati uoneshaji (visualization) unakuwezesha kuelewa data, nguvu halisi ya Machine Learning hutokana na _kujifunza kwa mifano_. Mifano hujifunza kwa data ya kihistoria ili kunasa uhusiano wa data kiotomatiki, na hukuwezesha kutabiri matokeo kwa data mpya, ambayo mfano haujawahi kuona kabla.
Katika somo hili, utajifunza zaidi kuhusu aina mbili za urekebishaji: _urekebishaji wa mstari wa msingi_ na _urekebishaji wa polinomial_, pamoja na baadhi ya hisabati zinazotegemea mbinu hizi. Mifano hiyo itatuwezesha kutabiri bei za malenge kulingana na data ya ingizo tofauti.
Katika somo hili, utajifunza zaidi kuhusu aina mbili za regression: _linear regression msingi_ na _polynomial regression_, pamoja na baadhi ya hesabu zilizo nyuma ya mbinu hizi. Mifano hiyo itatuwezesha kutabiri bei za malenge kulingana na data tofauti za ingizo.
[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
> 🎥 Bonyeza picha hapo juu kwa video fupi ya muhtasari wa urekebishaji wa mstari.
> 🎥 Bonyeza picha hapo juu kwa video fupi ya muhtasari wa linear regression.
> Katika mtaala huu mzima, tunadhani kuwa ujuzi wa hisabati ni mdogo, na tunalenga kuufanya ufikike kwa wanafunzi wanaotoka katika nyanja nyingine, hivyo angalia kumbukumbu, 🧮 maelezo, michoro, na zana nyingine za kujifunzia kusaidia kuelewa.
> Katika mtaala huu mzima, tunadhani ujuzi mdogo wa hesabu, na tunalenga kuufanya uwe rahisi kwa wanafunzi kutoka nyanja nyingine, hivyo angalia vidokezo, 🧮 maelezo, michoro, na zana nyingine za kujifunzia kusaidia kuelewa.
### Masharti ya Awali
### Mahitaji ya awali
Unapaswa kuwa unafahamu sasa muundo wa data ya malenge tunayochambua. Unaweza kuipata tayari imepakwa na kusafishwa katika faili la _notebook.ipynb_ la somo hili. Katika faili hilo, bei ya malenge inaonyeshwa kwa kila bushel katika fremu mpya ya data. Hakikisha unaweza kuendesha daftari hizi katika kernels ndani ya Visual Studio Code.
Unapaswa kuwa unafahamu sasa muundo wa data ya malenge ambayo tunaiangalia. Unaweza kuipata tayari imepakizwa na kusafishwa kwenye faili _notebook.ipynb_ ya somo hili. Katika faili hiyo, bei ya malenge inaonyeshwa kwa kila bakuli katika fremu mpya ya data. Hakikisha unaweza kuendesha vitabu hivi kwenye kernels za Visual Studio Code.
### Maandalizi
Kama kumbusho, unachukua data hii ili kuuliza maswali kuhusu yake.
Kama kumbusho, unapopakua data hii ili kuweza kuuliza maswali juu yake.
- Ni wakati gani bora kununua malenge?
- Bei gani naweza kutarajia kwa kesi ya malenge madogo?
- Je, napaswa kununua katika vikapu vya nusu bushel au kwa sanduku la 1 1/9 bushel?
Tuwekeze zaidi katika uchambuzi wa data hii.
- Ni lini ni wakati bora wa kununua malenge?
- Bei gani ninaweza kutarajia kwa sanduku la malenge madogo?
- Je, nipate kwa nusu-bushel katika vikapu au kwa sanduku la 1 1/9 bushel?
Tuendelee kuchunguza data hii.
Katika somo lililopita, uliunda fremu ya data ya Pandas na kuijaza kwa sehemu ya dataset asili, ukifanya viwango vya bei iwe kwa bushel. Hata hivyo, kwa kufanya hivyo, uliweza kukusanya takriban taarifa 400 tu na kwa miezi ya vuli pekee.
Katika somo lililopita, uliunda fremu ya data ya Pandas na kuijaza kwa sehemu ya dataset ya awali, ukipatanisha bei kwa bakuli. Kwa kufanya hivyo, ulifanikiwa kukusanya takriban pointi 400 za data na kwa miezi ya vuli tu.
Tazama data tuliyoipakia tayari katika daftari la somo hili. Data imepakiwa tayari na muundo wa awali wa pointi umeonyeshwa kuonyesha data ya miezi. Labda tunaweza kupata maelezo zaidi juu ya tabia ya data kwa kusafisha zaidi.
Tazama data tuliyoipakia tayari katika daftari la somo hili. Data imesababishwa na mchoro wa kunyeshea kuonyesha data ya mwezi. Labda tunaweza kupata maelezo zaidi kuhusu asili ya data kwa kusafisha zaidi.
## Mstari wa urekebishaji wa mstari
## Mstari wa regression wa moja kwa moja (linear regression)
Kama ulivyojifunza katika Somo la 1, lengo la zoezi la urekebishaji wa mstari ni kuwa na uwezo wa kuchora mstari wa:
Kama ulivyojifunza katika Somo la 1, lengo la zoezi la linear regression ni kuwezesha kutoa mchoro wa mstari ili:
- **Kuonyesha uhusiano wa vigezo**. Onyesha uhusiano kati ya vigezo
- **Kutabiri matokeo**. Tengeneza utabiri sahihi wa mahali ambapo pointi mpya itapatikana kwenye mstari huo.
- **Onyesha uhusiano wa vigezo**. Onyesha uhusiano kati ya vigezo
- **Fanya utabiri**. Fanya utabiri sahihi wa mahali ambapo pointi mpya ya data itakuwa kuhusiana na mstari huo.
Ni kawaida kwa **Least-Squares Regression** kuchora mstari wa aina hii. Neno "Least-Squares" linarejelea mchakato wa kupunguza jumla ya makosa katika mfano wetu. Kwa kila pointi ya data, tunaepima umbali wima (unaoitwa residual) kati ya pointi halisi na mstari wa regression.
Ni kawaida kwa **Urekebishaji wa Mafuta Madogo** kuchora mstari wa aina hii. Neno "Least-Squares" linahusu mchakato wa kupunguza jumla ya makosa katika mfano wetu. Kwa kila pointi ya data, tunapima umbali wima (uitwao residual) kati ya pointi halisi na mstari wetu wa urekebishaji.
Tunazidisha umbali huu kwa mraba kwa sababu kuu mbili:
Tunafanyia mraba umbali huu kwa sababu mbili kuu:
1. **Ukubwa kuliko Mwelekeo:** Tunataka kushughulikia kosa la -5 kama vile kosa la +5. Kupindisha mraba kunafanya thamani zote kuwa chanya.
1. **Ukubwa zaidi ya Mwelekeo:** Tunataka kushughulikia kosa la -5 kama lilivyo kosa la +5. Kufanya mraba kunafanya thamani zote kuwa chanya.
2. **Kuwadhibiti Wasiokuwa Na Kawaida:** Kupindisha mraba kunazidisha uzito wa makosa makubwa, na kulazimisha mstari kuwa karibu zaidi na pointi zilizoko mbali.
2. **Kurekebisha Pointi za Mbali:** Kufanya mraba kunatoa uzito zaidi kwa makosa makubwa, na kulazimisha mstari kubaki karibu na pointi ambazo ziko mbali.
Kisha tunajumlisha thamani zote hizi za mraba. Lengo letu ni kupata mstari maalum ambapo jumla hii ya mwisho ni ndogo zaidi (thamani ndogo kabisa) — ndiyo maana inaitwa "Least-Squares".
Kisha tunaongeza thamani hizi zote za mraba pamoja. Lengo letu ni kupata mstari maalumu ambapo jumla hii ya mwisho ni ndogo zaidi (thamani ndogo kabisa)—ndiyo maana inaitwa "Least-Squares".
> **🧮 Nionyeshe hisabati**
> **🧮 Nionyeshe hesabu**
>
> Mstari huu, uitwao _mstari wa kuendana bora_ unaweza kuoneshwa na [hesabu](https://en.wikipedia.org/wiki/Simple_linear_regression):
> Mstari huu, unaoitwa _mstari wa kufaa vizuri_, unaweza kuelezwa na [sawia](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
> `X` ni 'kigezo kinachoeleza'. `Y` ni 'kigezo kinachotegemea'. Mteremko wa mstari ni `b` na `a` ni kukatwa kwa y, ambayo ina maana ya thamani ya `Y` wakati `X = 0`.
> `X` ni 'kigezo kinachoelezea'. `Y` ni 'kigezo kinategemea'. Mwinuko wa mstari ni `b` na `a` ni kiingilio kwenye y-mhimili (y-intercept), kinachorejelea thamani ya `Y` wakati `X = 0`.
>
>![hesabu mteremko](../../../../translated_images/sw/slope.f3c9d5910ddbfcf9.webp)
>![hesabu ya mwinuko](../../../../translated_images/sw/slope.f3c9d5910ddbfcf9.webp)
>
> Kwanza, hesabu mteremko `b`. Picha ya taarifa na [Jen Looper](https://twitter.com/jenlooper)
> Kwanza, hesabu mwinuko `b`. Infographic na [Jen Looper](https://twitter.com/jenlooper)
>
> Kwa maneno mengine, na ukitazama swali la awali kuhusu data ya malenge: "tabiri bei ya malenge kwa kila bushel kwa mwezi", `X` itahusu bei na `Y` itasemekana ni mwezi wa mauzo.
> Kwa maneno mengine, na kurejelea swali la data ya malenge: "tabiri bei ya malenge kwa bakuli kwa mwezi", `X` itaonyesha bei na `Y` itaonyesha mwezi wa mauzo.
>
>![kamilisha hesabu](../../../../translated_images/sw/calculation.a209813050a1ddb1.webp)
>![kamilisha sawia](../../../../translated_images/sw/calculation.a209813050a1ddb1.webp)
>
> Hesabu thamani ya Y. Ikiwa unalipa karibu $4, lazima iwe Aprili! Picha ya taarifa na [Jen Looper](https://twitter.com/jenlooper)
> Hesabu thamani ya Y. Ikiwa unalipa karibu $4, lazima iwe Aprili! Infographic na [Jen Looper](https://twitter.com/jenlooper)
>
> Hesabu ambayo hufanya mstari lazima ionyeshe mteremko wa mstari, ambao pia unategemea sehemu ya kukatwa, au sehemu ambapo `Y` iko wakati `X = 0`.
> Hesabu inayopima mstari lazima ionyeshe mwinuko wa mstari, pia inategemea intercept, au mahali `Y` wanapopatikana wakati `X = 0`.
>
> Unaweza kuona njia ya hesabu ya hizi thamani kwenye tovuti ya [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Pia tembelea [kalkuleta hii ya Least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) kuangalia jinsi thamani za nambari zinavyoathiri mstari.
> Unaweza kuangalia njia ya hesabu hizi kwenye tovuti ya [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Pia tembelea [kalkuleta hii ya Least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) kuona jinsi thamani za namba zinavyoathiri mstari.
## Uhusiano
## Uhusiano (Correlation)
Neno zaidi la kuelewa ni **Kiwango cha Uhusiano** kati ya vigezo `X` na `Y` vilivyotolewa. Kutumia mchoro wa pointi, unaweza kuona haraka kiwango hiki. Mchoro wenye pointi zilizopangwa katika mstari mzuri una kiwango kikubwa cha uhusiano, lakini mchoro wenye pointi zilizoenea kila mahali kati ya X na Y una kiwango kidogo cha uhusiano.
Neno moja zaidi la kuelewa ni **Uwiano wa Uhusiano** kati ya vigezo vya X na Y vilivyotolewa. Kutumia mchoro wa pointi za kufyatua (scatterplot), unaweza haraka kuona uwiano huu. Mchoro wenye pointi zinazopangwa kwa mstari mzuri unaonyesha uhusiano mkubwa, lakini mchoro wenye pointi zilizotawanyika kila mahali kati ya X na Y unaonyesha uhusiano mdogo.
Mfano mzuri wa urekebishaji wa mstari utakuwa ule wenye Kiwango cha Uhusiano cha juu (karibu na 1 kuliko 0) ukitumia mbinu ya Urekebishaji wa Mafuta Madogo na mstari wa urekebishaji.
Mfano mzuri wa linear regression utakuwa ule unaoonyesha Uwiano wa Juu (karibu na 1 kuliko 0) kwa kutumia mbinu ya Least-Squares Regression na mstari wa regression.
✅ Endesha daftari la mazoezi linaloambatana na somo hili na tazama mchoro wa Mia kwa Bei. Je, data inayohusisha Mia na Bei kwa mauzo ya malenge inaonekana kuwa na uhusiano mkubwa au mdogo, kulingana na tafsiri yako ya picha? Je, hiyo inabadilika ikiwa utatumia kipimo chenye undani zaidi badala ya `Mwezi`, mfano *siku ya mwaka* (yaani, idadi ya siku tangu mwanzo wa mwaka)?
✅ Endesha daftari la somo hili na angalia mchoro wa Mwezi dhidi ya Bei. Je, data inayohusisha Mwezi na Bei kwa mauzo ya malenge inaonekana kuwa na uhusiano mkubwa au mdogo, kulingana na tafsiri yako ya picha ya scatterplot? Je, hiyo inabadilika ikiwa unatumia kipimo kidogo zaidi badala ya `Mwezi`, kwa mfano, *siku ya mwaka* (yaani, idadi ya siku tangu mwanzo wa mwaka)?
Katika msimbo hapa chini, tutaendelea kudhani kuwa tumesafisha data, na kupata fremu ya data iitwayo `new_pumpkins`, inayofanana na ifuatayo:
Katika msimbo hapa chini, tutaidhinisha kwamba tumesafisha data, na kupata fremu ya data inayoitwa `new_pumpkins`, kama ifuatavyo:
ID | Mwezi | SikuYaMwaka | Aina | Jiji | Pakiti | Bei ya Chini | Bei ya Juu | Bei
---|--------|-------------|-------|-----|--------|--------------|-----------|-----
70 | 9 | 267 | AINA YA PAI | BALTIMORE | 1 1/9 katoni za bushel | 15.0 | 15.0 | 13.636364
71 | 9 | 267 | AINA YA PAI | BALTIMORE | 1 1/9 katoni za bushel | 18.0 | 18.0 | 16.363636
72 | 10 | 274 | AINA YA PAI | BALTIMORE | 1 1/9 katoni za bushel | 18.0 | 18.0 | 16.363636
73 | 10 | 274 | AINA YA PAI | BALTIMORE | 1 1/9 katoni za bushel | 17.0 | 17.0 | 15.454545
74 | 10 | 281 | AINA YA PAI | BALTIMORE | 1 1/9 katoni za bushel | 15.0 | 15.0 | 13.636364
ID | Mwezi | DayOfYear | Aina | Jiji | Mfuko | Bei ya Chini | Bei ya Juu | Bei
---|-------|-----------|---------|------|---------|-----------|------------|-------
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
> Msimbo wa kusafisha data upo katika [`notebook.ipynb`](notebook.ipynb). Tumefanya hatua sawa za usafi kama katika somo lililopita, na tumekuwa tumehesabu safu ya `DayOfYear` kwa kutumia usemi ufuatao:
> Msimbo wa kusafisha data upo kwenye [`notebook.ipynb`](notebook.ipynb). Tumeifanya hatua sawa za usafi kama katika somo lililopita, na tumekokotoa safu ya `DayOfYear` kwa kutumia kaulimbiu ifuatayo:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
Sasa ukiwa na uelewa wa hisabati nyuma ya urekebishaji wa mstari, hebu tujenge Mfano wa Urekebishaji kuona kama tunaweza kutabiri pakiti gani ya malenge itakuwa na bei bora zaidi. Mtu anayeinunua malenge kwa ajili ya shamba la malenge la sikukuu anaweza kutaka taarifa hii ili kuboresha ununuzi wake wa pakiti za malenge kwa shamba hilo.
Sasa baada ya kuwa na ufahamu wa hesabu za nyuma ya linear regression, hebu tujenge mtindo wa Regression kuona kama tunaweza kutabiri ni mfuko gani wa malenge utakuwa na bei bora zaidi. Mtu anayenunua malenge kwa sherehe anaweza kutaka habari hii ili kuboresha ununuzi wa pakiti za malenge kwa sherehe.
## Kutafuta Uhusiano
@ -115,22 +115,22 @@ Sasa ukiwa na uelewa wa hisabati nyuma ya urekebishaji wa mstari, hebu tujenge M
> 🎥 Bonyeza picha hapo juu kwa video fupi ya muhtasari wa uhusiano.
Kutoka somo lililopita labda umeona kuwa bei ya wastani kwa miezi tofauti inaonekana kama hii:
Kutoka somo lililopita huenda umeona kuwa bei ya wastani kwa miezi mbalimbali inaonekana hivi:
<img alt="Average price by month" src="../../../../translated_images/sw/barchart.a833ea9194346d76.webp" width="50%"/>
Hii inaashiria kuwa kunapaswa kuwepo na uhusiano, na tunaweza kujaribu kufundisha mfano wa urekebishaji wa mstari kutabiri uhusiano kati ya `Mwezi` na `Bei`, au kati ya `SikuYaMwaka` na `Bei`. Hapa ni mchoro wa pointi unaoonyesha uhusiano wa mwisho:
Hii inaonyesha kuwa kunapaswa kuwepo na uhusiano, na tunaweza kujaribu kufundisha mfano wa linear regression kutabiri uhusiano kati ya `Mwezi` na `Bei`, au kati ya `DayOfYear` na `Bei`. Hapa kuna mchoro wa kina unaoonyesha uhusiano wa mwisho:
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/sw/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/sw/scatter-dayofyear.bc171c189c9fd553.webp" width="50%" />
Tuwe tuchunguze kama kuna uhusiano kwa kutumia kazi ya `corr`:
Tuchukulie kama kuna uhusiano kwa kutumia kazi ya `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
Inaonekana kuwa uhusiano ni mdogo, -0.15 kwa `Mwezi` na -0.17 kwa `SikuYaMwezi`, lakini kunaweza kuwa na uhusiano mwingine muhimu. Inaonekana kuna makundi tofauti ya bei yanayolingana na aina tofauti za malenge. Ili kuthibitisha dhana hii, tuchore kila kundi la malenge kwa rangi tofauti. Kwa kupitisha parameter `ax` kwa kazi ya kuchora `scatter` tunaweza kuchora pointi zote kwenye chati moja:
Inaonekana uwiano ni mdogo kidogo, -0.15 kwa `Mwezi` na -0.17 kwa `DayOfMonth`, lakini kunaweza kuwepo na uhusiano mwingine muhimu. Inaonekana kama kunao makundi tofauti ya bei kulingana na aina tofauti za malenge. Ili kuthibitisha nadharia hii, tuchore kila kundi la malenge kwa rangi tofauti. Kwa kupitisha parameta `ax` kwa kazi ya scatterplot tunaweza kuchora pointi zote kwenye mchoro mmoja:
```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="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/sw/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/sw/scatter-dayofyear-color.65790faefbb9d54f.webp" width="50%" />
Uchunguzi wetu unaonyesha kuwa aina ina athari kubwa zaidi kwa bei kwa ujumla kuliko tarehe halisi ya mauzo. Tunaweza kuona hii kwenye grafu ya bar:
Uchunguzi wetu unaonyesha kuwa aina inaathiri zaidi bei kuliko tarehe halisi ya mauzo. Tunaweza kuona hili kwa mchoro wa mihimili (bar graph):
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
<img alt="Bar graph of price vs variety" src="../../../../translated_images/sw/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
<img alt="Bar graph of price vs variety" src="../../../../translated_images/sw/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Tuzingatie kwa sasa aina moja tu ya malenge, aina ya pai, na tuangalie athari ya tarehe kwa bei:
Tujizomee kwa muda kwa aina moja tu ya malenge, 'aina ya pie type', na tuelewe athari ya tarehe kwenye bei:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/sw/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
<img alt="Scatter plot of Price vs. Day of Year" src="../../../../translated_images/sw/pie-pumpkins-scatter.d14f9804a53f927e.webp" width="50%" />
Ikiwa sasa tutahesabu uhusiano kati ya `Bei` na `SikuYaMwaka` kwa kutumia kazi ya `corr`, tutapata kama `-0.27` - ambayo ina maana mafunzo ya mfano wa utabiri ni yenye maana.
Sasa tukihesabu uwiano kati ya `Bei` na `DayOfYear` kwa kutumia kazi ya `corr`, tutapata kitu kama `-0.27` - ambayo ina maana kuwa kufundisha mfano wa utabiri kunaeleweka.
> Kabla ya kufundisha mfano wa urekebishaji wa mstari, ni muhimu kuhakikisha data yetu ni safi. Urekebishaji wa mstari hauendani vizuri na vyanzo vya data vilivyo tupu, hivyo ni vyema kuondoa seli zote tupu:
> Kabla ya kufundisha mfano wa linear regression, ni muhimu kuhakikisha data yetu ni safi. Linear regression haiendani vizuri na vipengele vilivyokosa (missing values), hivyo inafaa kuondoa seli zote tupu:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
Njia nyingine ni kujaza thamani hizo tupu kwa thamani za wastani kutoka safu husika.
Njia nyingine ni kujaza thamani tupu kwa thamani za wastani kutoka kwenye safu husika.
## Urekebishaji Rahisi wa Mstari
## Linear Regression Rahisi
[![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")
> 🎥 Bonyeza picha hapo juu kwa video fupi ya muhtasari wa urekebishaji wa mstari na polinomial.
> 🎥 Bonyeza picha hapo juu kwa video fupi ya muhtasari wa linear na polynomial regression.
Ili kufundisha Mfano wetu wa Urekebishaji wa Mstari, tutatumia maktaba ya **Scikit-learn**.
Ili kufundisha mfano wetu wa Linear Regression, tutatumia maktaba ya **Scikit-learn**.
```python
from sklearn.linear_model import LinearRegression
@ -183,49 +183,48 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
Tunaanza kwa kutenganisha thamani za ingizo (vipengele) na matokeo yanayotarajiwa (lebo) katika arrays za numpy tofauti:
Tunaanza kwa kutenganisha vitu vya ingizo (features) na matokeo yanayotarajiwa (label) katika matrekta tofauti ya numpy:
```python
X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)
y = pie_pumpkins['Price']
```
> Kumbuka tulilazimika kufanya `reshape` kwa data ya ingizo ili kifurushi cha Urekebishaji wa Mstari kiweze kuelewa vizuri. Urekebishaji wa mstari unatarajia 2D-array kama ingizo, ambapo kila safu ya array inalingana na vector ya vipengele vya ingizo. Katika kesi yetu, kwa kuwa tuna kipengele kimoja tu, tunahitaji array yenye umbo la N&times;1, ambapo N ni ukubwa wa dataset.
> Kumbuka tulilazimika kufanya `reshape` kwa data ya ingizo ili kifurushi cha Linear Regression kiielewe vyema. Linear Regression inatarajia array ya 2D kama ingizo, ambapo kila safu ni vekta ya vipengele vya ingizo. Kwa kuwa tunayo ingizo moja tu, tunahitaji array yenye umbo la N&times;1, ambapo N ni ukubwa wa dataset.
Kisha, tunahitaji kugawanya data kuwa seti za mafunzo na mtihani, ili tuweze kuhakiki mfano wetu baada ya mafunzo:
Kisha, tunahitaji kugawanya data kuwa datasets za mafunzo na majaribio, ili tuweze kuthibitisha mfano baada ya mafunzo:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
Mwisho, kufundisha mfano halisi wa Urekebishaji wa Mstari kunachukua mstari miwili tu ya msimbo. Tunaeleza kitu cha `LinearRegression`, na kukifit kwa data yetu kwa kutumia njia ya `fit`:
Mwishowe, kufundisha mfano halisi wa Linear Regression kunachukua mistari miwili tu ya msimbo. Tunaelezea kitu cha `LinearRegression`, na kukiambatanisha na data yetu kwa kutumia njia `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
Kitu cha `LinearRegression` baada ya `fit`-ting kina coefficient zote za regression, ambazo zinaweza kupatikana kwa kutumia mali ya `.coef_`. Katika kesi yetu, kuna coefficient moja tu, ambayo inapaswa kuwa karibu na `-0.017`. Hii ina maana kuwa bei inaonekana kushuka kidogo na muda, lakini sio sana, takriban senti 2 kwa siku. Pia tunaweza kupata pointi ya kuingilia ya regression na mhimili wa Y kwa kutumia `lin_reg.intercept_` - itakuwa karibu na `21` katika kesi yetu, ikionyesha bei mwanzoni mwa mwaka.
Kitu cha `LinearRegression` baada ya kufanywa `fit` kina coefficients zote za regression, ambazo zinaweza kupatikana kwa kutumia mali ya `.coef_`. Katika kesi yetu, kuna coefficient moja tu, ambayo inapaswa kuwa karibu na `-0.017`. Hii ina maana bei zinaonekana kushuka kidogo kwa muda, lakini si nyingi sana, takriban senti 2 kwa siku. Tunaweza pia kupata sehemu ya kukutana ya regression na mhimili wa Y kwa kutumia `lin_reg.intercept_` - itakuwa karibu na `21` katika kesi yetu, ikionyesha bei mwanzoni mwa mwaka.
Ili kuona jinsi modeli yetu ilivyo sahihi, tunaweza kutabiri bei kwenye dataset ya majaribio, kisha kupima jinsi utabiri wetu unavyofanana na thamani zinazotarajiwa. Hii inaweza kufanywa kwa kutumia kipimo cha makosa ya wastani ya mraba (MSE), ambacho ni wastani wa tofauti zilizokwazwa zote kati ya thamani zinazotarajiwa na zitabiriwa.
Ili kuona usahihi wa mfano wetu, tunaweza kutabiri bei kwenye seti ya data ya mtihani, kisha kupima jinsi makisio yetu yalivyo karibu na maadili yanayotarajiwa. Hii inaweza kufanyika kwa kutumia metrics ya root mean square error (RMSE), ambayo ni mizizi ya wastani wa tofauti zote zilizochukuliwa mraba kati ya thamani inayotarajiwa na inayotabiriwa.
```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}%)')
```
Hitilafu yetu inaonekana kuwa karibu na pointi 2, ambayo ni ~17%. Sio nzuri sana. Kiashiria kingine cha ubora wa modeli ni **coefficient ya utambuzi**, ambayo inaweza kupatikana hivi:
Kosa letu linaonekana kuwa takriban pointi 2, ambayo ni ~17%. Si nzuri sana. Kiashiria kingine cha ubora wa mfano ni **coefficient of determination**, ambayo inaweza kupatikana kama hii:
```python
score = lin_reg.score(X_train,y_train)
print('Model determination: ', score)
```
Ikiwa thamani ni 0, ina maana mfano hauzingatii data ya ingizo, na hufanya kama *mtabiri mbaya zaidi wa mstari*, ambao ni wastani tu wa matokeo. Thamani ya 1 ina maana tunaweza kutabiri kwa usahihi zote matokeo yote yanayotarajiwa. Katika kesi yetu, coefficient ni takriban 0.06, ambayo ni ya chini sana.
Kama thamani ni 0, inamaanisha kuwa modeli huchukua data ya pembejeo kwa upande na hutenda kama *mtabiri mbaya zaidi wa mstari*, ambayo ni thamani ya wastani ya matokeo tu. Thamani ya 1 ina maana tunaweza kutabiri kwa ukamilifu matokeo yote yanayotarajiwa. Katika kesi yetu, coefficient ni karibu 0.06, ambayo ni ya chini sana.
Pia tunaweza kuchora data ya majaribio pamoja na mstari wa regression kuona vizuri jinsi regression inavyofanya kazi katika kesi yetu:
Tunaweza pia kuchora data ya mtihani pamoja na mstari wa regression kuona vizuri jinsi regression inavyofanya kazi katika kesi yetu:
```python
plt.scatter(X_test,y_test)
@ -234,19 +233,19 @@ plt.plot(X_test,pred)
<img alt="Linear regression" src="../../../../translated_images/sw/linear-results.f7c3552c85b0ed1c.webp" width="50%" />
## Regression ya Polynomiale
## Polynomial Regression
Aina nyingine ya Linear Regression ni Polynomial Regression. Wakati mwingine kuna uhusiano wa mstari kati ya vigezo - vile pumpkin mkubwa kwa ujazo, ndivyo bei huwa juu - wakati mwingine uhusiano huu hauwezi kuchorwa kama uso wa ndege au mstari wa moja kwa moja.
Aina nyingine ya Linear Regression ni Polynomial Regression. Wakati mwingine kuna uhusiano wa mstari kati ya vigezo - vile vile ukubwa wa loti huongezeka, ndivyo bei inavyoongezeka - wakati mwingine uhusiano huu hauwezi kuchorwa kama usawa au mstari wa moja kwa moja.
✅ Hapa kuna [mifano mingine zaidi](https://online.stat.psu.edu/stat501/lesson/9/9.8) ya data ambazo zinaweza kutumia Polynomial Regression
✅ Hapa kuna [mifano mingine zaidi](https://online.stat.psu.edu/stat501/lesson/9/9.8) ya data ambayo inaweza kutumia Polynomial Regression
Tazama tena uhusiano kati ya Tarehe na Bei. Je, scatterplot hii inaonekana inapaswa kuchambuliwa kwa mstari wa moja kwa moja? Je, bei haziwezi kubadilika? Katika kesi hii, unaweza jaribu polynomial regression.
Tazama tena uhusiano kati ya Tarehe na Bei. Je, mchoro huu wa mchanganyiko unaonekana kwamba lazima uchunguzwe kwa mstari wa moja kwa moja? Je, bei haziwezi kubadilika? Katika kesi hii, unaweza kujaribu polynomial regression.
✅ Polynomiale ni misemo ya kihisabati ambayo inaweza kuwa na kigezo kimoja au zaidi na coefficients
✅ Polynomials ni misemo ya hisabati ambayo inaweza kuwa na vigezo moja au zaidi pamoja na coefficients
Polynomial regression huunda mstari uliokunja kuelekea kufaa data zisizo za mstari. Katika kesi yetu, kama tutajumuisha variable ya `DayOfYear` iliyofunguliwa kwa mraba katika data ya pembejeo, tunapaswa kuweza kufit data zetu kwa curve ya parabolic, ambayo itakuwa na chini katika sehemu fulani ndani ya mwaka.
Polynomial regression huunda mstari wa mviringo ili kuendana vizuri zaidi na data isiyo mstari. Katika kesi yetu, ikiwa tutajumuisha kigezo chenye kiwango cha mraba `DayOfYear` katika data ya ingizo, tunapaswa kuwa na uwezo wa kulinganisha data yetu na curve ya parabolic, ambayo itakuwa na kiwango cha chini mahali fulani ndani ya mwaka.
Scikit-learn inajumuisha API ya [pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) yenye msaada ya kuunganisha hatua tofauti za usindikaji wa data pamoja. **Pipeline** ni mnyororo wa **makadirio**. Katika kesi yetu, tutaunda pipeline ambayo kwanza inaongeza sifa za polynomial kwenye modeli yetu, kisha inafunza regression:
Scikit-learn inajumuisha API ya [pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) inayosaidia kuunganisha hatua tofauti za usindikaji wa data pamoja. **pipeline** ni mnyororo wa **estimators**. Katika kesi yetu, tutaunda pipeline ambayo kwanza inaongeza sifa za polynomial kwenye mfano wetu, kisha kuandaa regression:
```python
from sklearn.preprocessing import PolynomialFeatures
@ -257,36 +256,36 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
Kutumia `PolynomialFeatures(2)` inamaanisha kuwa tutajumuisha polynomiale zote za daraja la pili kutoka kwa data ya pembejeo. Katika kesi yetu itamaanisha tu `DayOfYear`<sup>2</sup>, lakini ikizingatiwa variable mbili za pembejeo X na Y, hii itaongeza X<sup>2</sup>, XY na Y<sup>2</sup>. Pia tunaweza kutumia polynomiale za daraja la juu zaidi ikiwa tunataka.
Kutumia `PolynomialFeatures(2)` ina maana kwamba tutajumuisha polynomials zote za daraja la pili kutoka kwa data ya ingizo. Katika kesi yetu itamaanisha tu `DayOfYear`<sup>2</sup>, lakini ikizingatiwa vigezo viwili vya ingizo X na Y, hii itaongeza X<sup>2</sup>, XY na Y<sup>2</sup>. Tunaweza pia kutumia polynomials za daraja kubwa zaidi ikiwa tunataka.
Pipelines zinaweza kutumika kwa namna ile ile kama kitu cha awali cha `LinearRegression`, yaani tunaweza `fit` pipeline, kisha kutumia `predict` kupata matokeo ya utabiri. Hii hapa grafu inayoonyesha data ya mtihani, na curve ya takriban:
Pipelines zinaweza kutumiwa kwa njia ile ile kama kitu cha asili cha `LinearRegression`, yaani tunaweza `fit` pipeline, kisha tumia `predict` kupata matokeo ya utabiri. Hii ni grafu inayoonyesha data ya mtihani, na curve ya makadirio:
<img alt="Polynomial regression" src="../../../../translated_images/sw/poly-results.ee587348f0f1f60b.webp" width="50%" />
Kutumia Polynomial Regression, tunaweza kupata MSE kidogo chini na utambuzi wa juu zaidi, lakini sio kwa kiasi kikubwa. Tunahitaji kuzingatia sifa nyingine!
Kwa kutumia Polynomial Regression, tunaweza kupata MSE kidogo chini na coefficient ya determination kubwa zaidi, lakini si kwa kiwango kikubwa. Tunahitaji kuzingatia sifa zingine!
> Unaweza kuona kuwa bei za chini zaidi za pumpkin hutokea karibu na Halloween. Unawezaje kuelezea hili?
> Unaweza kuona kuwa bei za chini kabisa za loti zinapatikana karibu na Sikukuu ya Halloween. Unawezaje kueleza hili?
🎃 Hongera, umeunda modeli inayoweza kusaidia kutabiri bei ya pie pumpkins. Huenda ukarudia taratibu iliyofanana kwa aina zote za pumpkin, lakini hiyo itakuwa ya kuchosha. Hebu tujifunze sasa jinsi ya kuzingatia aina ya pumpkin katika modeli yetu!
🎃 Hongera, umeunda mfano ambao unaweza kusaidia kutabiri bei ya maloti ya pie. Labda unaweza kurudia utaratibu huo kwa aina zote za maloti, lakini hiyo itakuwa ya kuchosha. Sasa tufurahie kujifunza jinsi ya kuzingatia aina ya loti katika mfano wetu!
## Sifa za Kategoria
## Vipengele vya Kikategoria
Katika dunia bora, tunataka kuwa na uwezo wa kutabiri bei za aina tofauti za pumpkin kwa kutumia modeli moja. Hata hivyo, safu ya `Variety` ni tofauti kidogo na safu kama `Month`, kwa sababu ina thamani zisizo za nambari. Safu kama hizo huitwa **kachategoriali**.
Katika ulimwengu wa kawaida, tunataka kuweza kutabiri bei kwa aina tofauti za loti kwa kutumia mfano mmoja. Hata hivyo, safu ya `Variety` ni tofauti kidogo na safu kama `Month`, kwa sababu ina maadili yasiyo nambari. Safu kama hizi huitwa **kategoria**.
[![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")
> 🎥 Bonyeza picha hapo juu kwa video fupi ya muhtasari wa kutumia sifa za kategoria.
> 🎥 Bonyeza picha hapo juu kwa video fupi ya matumizi ya vipengele vya kategoria.
Hapa unaona jinsi bei ya wastani inavyotegemea aina:
Hapa unaweza kuona jinsi bei ya wastani inavyotegemea aina:
<img alt="Average price by variety" src="../../../../translated_images/sw/price-by-variety.744a2f9925d9bcb4.webp" width="50%" />
Ili kuzingatia aina, kwanza tunahitaji kuibadilisha kuwa fomu ya nambari, au **kuandika kwa kanuni ya nambari**. Kuna njia kadhaa za kufanya hivi:
Ili kuzingatia aina, kwanza tunahitaji kuibadilisha kuwa muundo wa nambari, au **kuandika**. Kuna njia kadhaa tunazoweza kuifanya:
* **Uandikaji nambari rahisi** utaunda jedwali la aina tofauti, kisha kubadilisha jina la aina kwa index katika jedwali hilo. Hii siyo wazo bora kwa regression ya mstari, kwa sababu regression ya mstari huchukua thamani ya nambari halisi ya index, na kuiongeza kwa matokeo, ikizidishwa na coefficient fulani. Katika kesi yetu, uhusiano kati ya nambari ya index na bei ni dhahiri kuwa sio mstari, hata kama tunahakikisha kuwa index zimepangwa kwa njia maalum.
* **One-hot encoding** itabadilisha safu ya `Variety` kuwa safu 4 tofauti, moja kwa kila aina. Kila safu itakuwa na `1` ikiwa safu husika ni ya aina ile, na `0` vinginevyo. Hii ina maana kuwa kutakuwa na coefficient nne katika regression ya mstari, moja kwa kila aina ya pumpkin, inayohusika na "bei ya mwanzo" (au badala yake "bei ya ziada") kwa aina hiyo.
* **Kudhibiti mduara wa nambari rahisi** kutatengeneza jedwali la aina tofauti, kisha kubadilisha jina la aina kwa nambari ya index katika jedwali hili. Hii si wazo bora kwa regression ya mstari, kwa sababu regression ya mstari huchukua nambari halisi ya index, na kuongeza kwenye matokeo, ikizidisha na coefficient fulani. Katika kesi yetu, uhusiano kati ya nambari ya index na bei ni wazi kuwa si mstari, hata tukihakikisha kuwa maindex yamepangwa kwa njia fulani maalum.
* **One-hot encoding** itabadilisha safu ya `Variety` kuwa safu 4 tofauti, moja kwa kila aina. Kila safu itakuwa na `1` ikiwa mstari husika ni wa aina fulani, na `0` vinginevyo. Hii ina maana kutakuwa na coefficients nne katika regression ya mstari, moja kwa kila aina ya loti, inayohusika na "bei ya mwanzo" (au badala yake "bei ya ziada") kwa aina husika.
Msimbo hapa chini unaonyesha jinsi tunavyoweza kufanya one-hot encode kwa aina:
Nambari hapa chini inaonyesha jinsi ya kufanya one-hot encode kwa aina:
```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
Ili kufunza regression ya mstari kwa kutumia aina iliyomo one-hot encoded kama pembejeo, tunahitaji tu kuanzisha data `X` na `y` kwa usahihi:
Ili kufundisha regression ya mstari kwa kutumia aina zilizohifadhiwa kama one-hot encoded, tunahitaji tu kuanzisha data za `X` na `y` kwa usahihi:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
Msimbo mwingine ni ule ule tuliotumia hapo juu kufunza Linear Regression. Ukijaribu, utaona kuwa makosa ya wastani ya mraba ni takriban sawa, lakini tunapata coefficient ya utambuzi ya juu zaidi (~77%). Ili kupata utabiri sahihi zaidi, tunaweza kuzingatia sifa za kategoria zaidi, pamoja na sifa za nambari, kama vile `Month` au `DayOfYear`. Ili kupata array moja kubwa ya sifa, tunaweza kutumia `join`:
Mengine ya msimbo ni sawa na tuliotumia hapo juu kufundisha Linear Regression. Ukijaribu, utaona kuwa mean squared error ni takriban ile ile, lakini tunapata coefficient kubwa zaidi ya determination (~77%). Ili kupata utabiri sahihi zaidi, tunaweza kuzingatia vipengele vya kategoria vingi zaidi, pamoja na vipengele vya nambari, kama `Month` au `DayOfYear`. Ili kupata safu kubwa ya vipengele, tunaweza kutumia `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@ -320,24 +319,24 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
Hapa tunazingatia pia `City` na aina ya `Package`, ambayo inatupa MSE 2.84 (10%), na coefficient 0.94!
Hapa pia tunazingatia `City` na aina ya `Package`, ambayo inatupa MSE 2.84 (10%), na coefficient ya determination 0.94!
## Kuunganisha Yote Pamoja
## Kuunganisha yote pamoja
Ili kutengeneza modeli bora zaidi, tunaweza kutumia data iliyochanganywa (one-hot encoded kategoria + nambari) kutoka kwa mfano hapo juu pamoja na Polynomial Regression. Hapa ni msimbo kamili kwa urahisi wako:
Ili kutengeneza mfano bora zaidi, tunaweza kutumia data mchanganyiko (ya one-hot encoded kategoria + nambari) kutoka mfano wa juu pamoja na Polynomial Regression. Huu ndio msimbo kamili kwa urahisi wako:
```python
# weka data za mafunzo
# weka data ya mafunzo
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']
# tengeneza mgawanyiko wa mafunzo-na-majaribio
# tengeneza mgawanyo wa mafunzo-na-majaribio
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# weka na funza pipeline
# weka na faya mfumo wa mafunzo
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
@ -352,36 +351,36 @@ score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
Hii inapaswa kutupatia coefficient bora kabisa ya utambuzi ya karibu 97%, na MSE=2.23 (~8% hitilafu ya utabiri).
Hii inapaswa kutupatia coefficient bora zaidi ya determination ya karibu 97%, na MSE=2.23 (~8% kosa la utabiri).
| Modeli | MSE | Utambuzi |
| Mfano | 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 |
| Zote sifa Linear | 2.84 (10.5%) | 0.94 |
| Zote sifa Polynomial | 2.23 (8.25%) | 0.97 |
| Vipengele vyote Linear | 2.84 (10.5%) | 0.94 |
| Vipengele vyote Polynomial | 2.23 (8.25%) | 0.97 |
🏆 Hongera! Umeunda modeli nne za Regression katika somo moja, na kuboresha ubora wa modeli hadi 97%. Katika sehemu ya mwisho kuhusu Regression, utajifunza kuhusu Logistic Regression kutambua makundi.
🏆 Hongera! Umeunda mifano minne ya Regression katika somo moja, na kuboresha ubora wa mfano hadi 97%. Katika sehemu ya mwisho kuhusu Regression, utajifunza kuhusu Logistic Regression kutambua makundi.
---
## 🚀Changamoto
Jaribu vigezo tofauti tofauti katika daftari hili kuona jinsi uwiano unavyolingana na usahihi wa modeli.
Jaribu vigezo tofauti kadhaa katika daftari hili kuona jinsi uhusiano unavyolingana na usahihi wa mfano.
## [Mtihani baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
## Hakiki & Kujisomea
## Mapitio & Kujifunza Binafsi
Katika somo hili tulijifunza kuhusu Linear Regression. Kuna aina nyingine muhimu za Regression. Soma kuhusu mbinu za Stepwise, Ridge, Lasso na Elasticnet. Kozi nzuri ya kujifunza zaidi ni [Kozi ya Stanford ya Kujifunza kwa Takwimu](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
Katika somo hili tulijifunza kuhusu Linear Regression. Kuna aina zingine muhimu za Regression. Soma kuhusu mbinu za Stepwise, Ridge, Lasso na Elasticnet. Kozi nzuri ya kujifunza zaidi ni [kozi ya Stanford ya Kujifunza Takwimu](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Kazi ya Nyumbani
## Kazi ya Nyumbani
[Jenga Modeli](assignment.md)
[Jenga Mfano](assignment.md)
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Tafadhali Kumbuka**:
Nyaraka hii imetatuliwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Nyaraka ya asili katika lugha yake lazima itambuliwe kama chanzo rasmi. Kwa taarifa muhimu, tafsiri ya mtaalamu wa binadamu inapendekezwa. Hatubebei wajibu wowote kuhusu kutoelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.
**Hekweti**:
Hati hii imetatuliwa kwa kutumia huduma ya kutafsiri AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au ukosefu wa usahihi. Hati ya awali katika lugha yake asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya mtaalamu wa binadamu inashauriwa. Hatubebwi dhamana kwa kutoelewana au tafsiri potofu zinazotokana na kutumia tafsiri hii.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,17 +1,17 @@
# Wainishaji wa vyakula 1
# Wataalam wa vyakula 1
Katika somo hili, utatumia seti ya data uliyohifadhi kutoka somo la mwisho iliyojaa data safi na yenye usawa kuhusu vyakula.
Katika somo hili, uta tumia seti ya data uliyoihifadhi kutoka somo la mwisho iliyojaa data safi na yenye usawa kuhusu vyakula vya kitaifa.
Utatumia seti hii ya data na aina mbalimbali za wainishaji ili _kutabiri aina ya chakula cha kitaifa kulingana na kikundi cha viungo_. Wakati wa kufanya hivyo, utajifunza zaidi kuhusu baadhi ya njia ambazo algorithimu zinaweza kutumika kwa kazi za uainishaji.
Utatumia seti hii ya data pamoja na wataalam mbalimbali ili _kutabiri aina ya chakula cha kitaifa kulingana na kundi la viungo_. Wakati wa kufanya hivyo, utajifunza zaidi kuhusu baadhi ya njia ambazo algorithimu zinaweza kutumika kwa kazi za utambuzi.
## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
## [Jaribio kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
# Maandalizi
Ukikamilisha [Somo la 1](../1-Introduction/README.md), hakikisha kuwa faili _cleaned_cuisines.csv_ ipo katika folda ya mizizi `/data` kwa masomo haya manne.
Kama umekamilisha [Somo la 1](../1-Introduction/README.md), hakikisha kwamba faili la _cleaned_cuisines.csv_ lipo katika folda ya mizizi `/data` kwa masomo haya manne.
## Zoezi - tabiri aina ya chakula cha kitaifa
## Zojo - tabiri aina ya chakula cha kitaifa
1. Ukifanya kazi katika folda ya _notebook.ipynb_ ya somo hili, leta faili hilo pamoja na maktaba ya Pandas:
1. Ukiwa katika folda ya _notebook.ipynb_ ya somo hili, ingiza faili hilo pamoja na maktaba ya Pandas:
```python
import pandas as pd
@ -19,7 +19,7 @@ Ukikamilisha [Somo la 1](../1-Introduction/README.md), hakikisha kuwa faili _cle
cuisines_df.head()
```
Data inaonekana kama hii:
Data inaonekana kama ifuatavyo:
| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- |
@ -30,7 +30,7 @@ Ukikamilisha [Somo la 1](../1-Introduction/README.md), hakikisha kuwa faili _cle
| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1. Sasa, leta maktaba zaidi:
1. Sasa, ingiza maktaba zaidi:
```python
from sklearn.linear_model import LogisticRegression
@ -40,14 +40,14 @@ Ukikamilisha [Somo la 1](../1-Introduction/README.md), hakikisha kuwa faili _cle
import numpy as np
```
1. Gawanya viwianishi vya X na y katika fremu mbili za data kwa mafunzo. `cuisine` inaweza kuwa fremu ya lebo:
1. Gawanya viwango vya X na y katika dataframes mbili kwa mafunzo. `cuisine` itakuwa dataframe ya lebo:
```python
cuisines_label_df = cuisines_df['cuisine']
cuisines_label_df.head()
```
Itaonekana kama hii:
Itaonekana hivi:
```output
0 indian
@ -58,14 +58,14 @@ Ukikamilisha [Somo la 1](../1-Introduction/README.md), hakikisha kuwa faili _cle
Name: cuisine, dtype: object
```
1. Ondoa safu ya `Unnamed: 0` na safu ya `cuisine`, ukitumia `drop()`. Hifadhi data iliyobaki kama vipengele vya mafunzo:
1. Futa safu ya `Unnamed: 0` na safu ya `cuisine` kwa kutumia `drop()`. Hifadhi data inayobaki kama sifa za mafunzo:
```python
cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)
cuisines_feature_df.head()
```
Vipengele vyako vinaonekana kama hii:
Sifa zako zinaonekana kama ifuatavyo:
| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini |
| ---: | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: |
@ -75,85 +75,85 @@ Ukikamilisha [Somo la 1](../1-Introduction/README.md), hakikisha kuwa faili _cle
| 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 |
Sasa uko tayari kufundisha modeli yako!
Sasa uko tayari kufundisha mfano wako!
## Kuchagua wainishaji wako
## Kuchagua mtambuzi wako
Sasa data yako ni safi na tayari kwa mafunzo, unapaswa kuamua ni algorithimu gani ya kutumia kwa kazi hiyo.
Sasa data yako iko safi na tayari kwa mafunzo, lazima uamue algorithimu gani utumie kwa kazi hii.
Scikit-learn inaweka uainishaji chini ya Kujifunza kwa Usimamizi, na katika kategoria hiyo utapata njia nyingi za kuainisha. [Aina mbalimbali](https://scikit-learn.org/stable/supervised_learning.html) zinaweza kuwa za kushangaza mwanzoni. Njia zifuatazo zote zinajumuisha mbinu za uainishaji:
Scikit-learn inaweka uainishaji chini ya Mafunzo Yaliyoongozwa (Supervised Learning), na katika kundi hilo utapata njia nyingi za kuainisha. [Aina tofauti](https://scikit-learn.org/stable/supervised_learning.html) zinaweza kukufanya machungu mwanzoni. Njia zifuatazo zote zinajumuisha mbinu za uainishaji:
- Miundo ya Linear
- Support Vector Machines
- Stochastic Gradient Descent
- Nearest Neighbors
- Gaussian Processes
- Decision Trees
- Mbinu za Ensemble (Voting Classifier)
- Algorithimu za Multiclass na multioutput (uainishaji wa multilabel, uainishaji wa multiclass-multioutput)
- Mifano ya Mstari
- Mashine za Msaada wa Vektor (Support Vector Machines)
- Kushuka kwa Hatua za Kistokastiki (Stochastic Gradient Descent)
- Majirani Karibu (Nearest Neighbors)
- Mchakato wa Gaussian
- Miti ya Maamuzi (Decision Trees)
- Njia za Kikundi (voting Classifier)
- Algorithimu za Mifumo Mingi na Matokeo Mengi (multiclass and multilabel classification, multiclass-multioutput classification)
> Unaweza pia kutumia [mitandao ya neva kuainisha data](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), lakini hiyo iko nje ya wigo wa somo hili.
### Ni wainishaji gani wa kuchagua?
### Mtambuzi gani uchague?
Kwa hivyo, ni wainishaji gani unapaswa kuchagua? Mara nyingi, kujaribu kadhaa na kutafuta matokeo mazuri ni njia ya kupima. Scikit-learn inatoa [linganisho la kando kwa kando](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) kwenye seti ya data iliyoundwa, ikilinganishwa KNeighbors, SVC kwa njia mbili, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB na QuadraticDiscrinationAnalysis, ikionyesha matokeo kwa njia ya picha:
Kwa hiyo, mtambuzi gani unapaswa kuchagua? Mara nyingi, kujaribu kadhaa na kutafuta matokeo mazuri ni njia ya kupima. Scikit-learn inatoa [kulinganisha kando kwa kando](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) kwa dataset iliyoanzishwa, ikilinganisha KNeighbors, SVC njia mbili, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB na QuadraticDiscrinationAnalysis, ikionyesha matokeo kwa picha:
![linganisho la wainishaji](../../../../4-Classification/2-Classifiers-1/images/comparison.png)
> Mchoro uliotolewa kwenye nyaraka za Scikit-learn
![comparison of classifiers](../../../../translated_images/sw/comparison.edfab56193a85e7f.webp)
> Michoro iliyotengenezwa katika nyaraka za Scikit-learn
> AutoML inatatua tatizo hili kwa urahisi kwa kuendesha kulinganisha hizi kwenye wingu, ikikuruhusu kuchagua algorithimu bora kwa data yako. Jaribu [hapa](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
> AutoML inalitatua tatizo hili kwa urahisi kwa kuendesha kulinganisha haya kwenye wingu, ikikupa uwezo wa kuchagua algorithimu bora kwa data yako. Jaribu [hapa](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)
### Njia bora zaidi
Njia bora zaidi kuliko kubahatisha bila mpangilio, hata hivyo, ni kufuata mawazo kwenye [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) inayoweza kupakuliwa. Hapa, tunagundua kuwa, kwa tatizo letu la multiclass, tuna chaguo kadhaa:
Njia bora zaidi badala ya kubahatisha ni kufuata mawazo yaliyomo katika jarida la [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) ambalo unaweza kupakua. Hapa, tunagundua kwamba kwa tatizo letu la wunaji wengi, tuna chaguzi kadhaa:
![cheatsheet kwa matatizo ya multiclass](../../../../4-Classification/2-Classifiers-1/images/cheatsheet.png)
> Sehemu ya Algorithm Cheat Sheet ya Microsoft, ikielezea chaguo za uainishaji wa multiclass
![cheatsheet for multiclass problems](../../../../translated_images/sw/cheatsheet.07a475ea444d2223.webp)
> Sehemu ya Jarida la Microsofts Algorithm Cheat Sheet, likielezea chaguzi za uainishaji wa wunaji wengi
✅ Pakua cheatsheet hii, ichapishe, na uitundike ukutani kwako!
✅ Pakua jarida hili, lipige picha na ulike kwenye ukuta wako!
### Mantiki
### Sababu
Hebu tuone kama tunaweza kufikiria njia tofauti kulingana na vikwazo tulivyo navyo:
Tuchunguze kama tunaweza kupata muktadha wa njia tofauti ukizingatia vikwazo tulivyonavyo:
- **Mitandao ya neva ni nzito sana**. Kwa kuzingatia seti yetu ya data safi lakini ndogo, na ukweli kwamba tunafanya mafunzo kwa ndani kupitia notebooks, mitandao ya neva ni nzito sana kwa kazi hii.
- **Hakuna wainishaji wa darasa mbili**. Hatutumii wainishaji wa darasa mbili, kwa hivyo hiyo inatupilia mbali one-vs-all.
- **Decision tree au logistic regression inaweza kufanya kazi**. Decision tree inaweza kufanya kazi, au logistic regression kwa data ya multiclass.
- **Multiclass Boosted Decision Trees hutatua tatizo tofauti**. Multiclass boosted decision tree inafaa zaidi kwa kazi zisizo za parametric, mfano kazi zilizoundwa kujenga viwango, kwa hivyo haitufai.
- **Mitandao ya neva ni mizito sana**. Kutokana na seti yetu safi lakini ndogo, na ukweli kwamba tunaendesha mafunzo kwa kutumia notebooks kwa mtaa, mitandao ya neva ni mizito sana kwa kazi hii.
- **Hakuna mtambuzi wa aina mbili**. Hatutumii mtambuzi wa aina mbili, kwa hiyo hatuwezi tumia one-vs-all.
- **Mti wa maamuzi au usambazaji wa logistic unaweza kufanya kazi**. Mti wa maamuzi unaweza kufanya kazi, au usambazaji wa logistic kwa data ya wunaji wengi.
- **Miti ya Maamuzi yenye Kuimarishwa kwa Wunaji Wengi ni tofauti**. Miti ya maamuzi yenye kuimarishwa kwa wunaji wengi ni bora kwa kazi zisizo na kanuni maalum, mfano kazi za kuunda vikundi, kwa hiyo haitatufaa sisi.
### Kutumia Scikit-learn
### Kutumia Scikit-learn
Tutatumia Scikit-learn kuchambua data yetu. Hata hivyo, kuna njia nyingi za kutumia logistic regression katika Scikit-learn. Angalia [vigezo vya kupitisha](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Tutakuwa tunatumia Scikit-learn kuchambua data yetu. Hata hivyo, kuna njia nyingi za kutumia usambazaji wa logistic katika Scikit-learn. Angalia [vigezo vya kuingiza](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Kimsingi kuna vigezo viwili muhimu - `multi_class` na `solver` - ambavyo tunahitaji kubainisha, tunapoiomba Scikit-learn kufanya logistic regression. Thamani ya `multi_class` inatumia tabia fulani. Thamani ya solver ni algorithimu ya kutumia. Si solvers zote zinaweza kuunganishwa na thamani zote za `multi_class`.
Kwa ujumla kuna vigezo viwili muhimu - `multi_class` na `solver` - ambavyo tunahitaji kubainisha tunapoomba Scikit-learn ifanye usambazaji wa logistic. Thamani ya `multi_class` hutumia tabia fulani. Thamani ya solver ni algorithimu gani itumike. Sio solvers zote zinaweza kuambatana na thamani zote za `multi_class`.
Kulingana na nyaraka, katika kesi ya multiclass, algorithimu ya mafunzo:
- **Inatumia mpango wa one-vs-rest (OvR)**, ikiwa chaguo la `multi_class` limewekwa kuwa `ovr`
- **Inatumia hasara ya cross-entropy**, ikiwa chaguo la `multi_class` limewekwa kuwa `multinomial`. (Kwa sasa chaguo la `multinomial` linasaidiwa tu na solvers lbfgs, sag, saga na newton-cg.)"
- **Inatumia hasara ya msalaba wa entropi**, ikiwa chaguo la `multi_class` limewekwa kuwa `multinomial`. (Kwa sasa chaguo la `multinomial` linaungwa mkono tu na solvers lbfgs, sag, saga na newton-cg.)"
> 🎓 'Mpango' hapa unaweza kuwa 'ovr' (one-vs-rest) au 'multinomial'. Kwa kuwa logistic regression imeundwa hasa kusaidia uainishaji wa binary, mipango hii inaiwezesha kushughulikia kazi za uainishaji wa multiclass vizuri zaidi. [chanzo](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'Mpango' hapa unaweza kuwa 'ovr' (one-vs-rest) au 'multinomial'. Kwa kuwa usambazaji wa logistic umeundwa hasa kusaidia uainishaji wa binary, mipango hii huruhusu kushughulikia vizuri kazi za uainishaji wa wunaji wengi. [chanzo](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/)
> 🎓 'Solver' inafafanuliwa kama "algorithimu ya kutumia katika tatizo la uboreshaji". [chanzo](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
> 🎓 'Solver' yamefafanuliwa kama "algorithimu inayotumika kwenye tatizo la uboreshaji". [chanzo](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression).
Scikit-learn inatoa jedwali hili kuelezea jinsi solvers zinavyoshughulikia changamoto tofauti zinazotolewa na miundo tofauti ya data:
Scikit-learn inatoa jedwali hili kuelezea jinsi solvers zinavyoshughulikia changamoto tofauti zinazotokea kwa aina tofauti za muundo wa data:
![solvers](../../../../4-Classification/2-Classifiers-1/images/solvers.png)
![solvers](../../../../translated_images/sw/solvers.5fc648618529e627.webp)
## Zoezi - gawanya data
## Zojo - gawanya data
Tunaweza kuzingatia logistic regression kwa jaribio letu la kwanza la mafunzo kwa kuwa ulijifunza hivi karibuni kuhusu hili katika somo la awali.
Gawanya data yako katika vikundi vya mafunzo na majaribio kwa kutumia `train_test_split()`:
Tunaweza kuzingatia usambazaji wa logistic kwa jaribio letu la kwanza la mafunzo kwa sababu umepata maelezo yake katika somo lililopita.
Gawanya data yako katika makundi ya mafunzo na majaribio kwa kutumia `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)
```
## Zoezi - tumia logistic regression
## Zojo - tumia usambazaji wa logistic
Kwa kuwa unatumia kesi ya multiclass, unahitaji kuchagua ni _mpango_ gani wa kutumia na ni _solver_ gani wa kuweka. Tumia LogisticRegression na mpangilio wa multiclass na solver **liblinear** kwa mafunzo.
Kwa kuwa unatumia kesi ya multiclass, unahitaji kuchagua _mpango_ utakao tumia na _solver_ utakao weka. Tumia LogisticRegression yenye mpangilio wa multiclass na solver ya **liblinear** kufundisha.
1. Unda logistic regression na multi_class iliyowekwa kuwa `ovr` na solver iliyowekwa kuwa `liblinear`:
1. Tengeneza usambazaji wa logistic na multi_class ukiwa `ovr` na solver ukiwa `liblinear`:
```python
lr = LogisticRegression(multi_class='ovr',solver='liblinear')
@ -163,27 +163,28 @@ Kwa kuwa unatumia kesi ya multiclass, unahitaji kuchagua ni _mpango_ gani wa kut
print ("Accuracy is {}".format(accuracy))
```
✅ Jaribu solver tofauti kama `lbfgs`, ambayo mara nyingi huwekwa kama chaguo-msingi
> Kumbuka, tumia Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) kazi ili kulainisha data yako inapohitajika.
Usahihi ni mzuri kwa zaidi ya **80%!**
✅ Jaribu solver tofauti kama `lbfgs`, ambayo mara nyingi hutumika kwa default
1. Unaweza kuona mfano huu ukifanya kazi kwa kujaribu safu moja ya data (#50):
> Kumbuka, tumia Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) ili kurahisisha data yako unapotakiwa.
Usahihi ni mzuri, zaidi ya **80%**!
1. Unaweza kuona mfano huu ukiwa unafanya jaribio kwa mstari mmoja wa data (#50):
```python
print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')
print(f'cuisine: {y_test.iloc[50]}')
```
Matokeo yanachapishwa:
Matokeo yamechapishwa:
```output
ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object')
cuisine: indian
```
✅ Jaribu namba tofauti ya safu na angalia matokeo
1. Kuchunguza zaidi, unaweza kuangalia usahihi wa utabiri huu:
✅ Jaribu nambari nyingine ya mstari na angalia matokeo yake
1. Kuchunguza zaidi, unaweza kukagua usahihi wa utabiri huu:
```python
test= X_test.iloc[50].values.reshape(-1, 1).T
@ -195,7 +196,7 @@ Usahihi ni mzuri kwa zaidi ya **80%!**
topPrediction.head()
```
Matokeo yanachapishwa - vyakula vya Kihindi ni dhana bora zaidi, kwa uwezekano mzuri:
Matokeo yamechapishwa - vyakula vya India ndicho kinachokadiriwa vyema zaidi, kwa uwezekano mzuri:
| | 0 |
| -------: | -------: |
@ -205,9 +206,9 @@ Usahihi ni mzuri kwa zaidi ya **80%!**
| korean | 0.017277 |
| thai | 0.007634 |
✅ Je, unaweza kueleza kwa nini mfano una uhakika kuwa hiki ni chakula cha Kihindi?
✅ Je, unaweza kuelezea kwanini mfano una uhakika mkubwa hii ni chakula cha India?
1. Pata maelezo zaidi kwa kuchapisha ripoti ya uainishaji, kama ulivyofanya katika masomo ya regression:
1. Pata maelezo zaidi kwa kuchapisha ripoti ya uainishaji, kama ulivyofanya katika masomo ya usawa:
```python
y_pred = model.predict(X_test)
@ -221,24 +222,26 @@ Usahihi ni mzuri kwa zaidi ya **80%!**
| 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 |
## 🚀Changamoto
Katika somo hili, ulitumia data yako iliyosafishwa kujenga mfano wa kujifunza mashine ambao unaweza kutabiri aina ya chakula cha kitaifa kulingana na mfululizo wa viungo. Chukua muda kusoma chaguo nyingi ambazo Scikit-learn inatoa ili kuainisha data. Chunguza zaidi dhana ya 'solver' ili kuelewa kinachotokea nyuma ya pazia.
Katika somo hili, ulitumia data yako safi kujenga mfano wa kujifunza mashine ambao unaweza kutabiri chakula cha kitaifa kulingana na mfululizo wa viungo. Chukua muda kusoma kwa undani chaguzi nyingi Scikit-learn inazotoa kwa ajili ya kuainisha data. Kuchunguza zaidi dhana ya 'solver' ili kuelewa kinachotokea nyuma ya pazia.
## [Maswali baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
## [Mtihani baada ya mihadhara](https://ff-quizzes.netlify.app/en/ml/)
## Mapitio & Kujisomea
Chunguza zaidi hesabu nyuma ya logistic regression katika [somo hili](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Kazi
Chunguza kidogo zaidi hesabu nyuma ya usawa wa logistic katika [somo hili](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)
## Kazi ya nyumbani
[Chunguza solvers](assignment.md)
[Jifunze kuhusu solvers](assignment.md)
---
**Kanusho**:
Hati hii imetafsiriwa kwa kutumia huduma ya kutafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kuhakikisha usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatutawajibika kwa kutoelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Kandiyo**:
Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za otomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya mama inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatuna dhamana kwa maelewano au tafsiri potofu zinazotokana na matumizi ya tafsiri hii.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->

@ -1,8 +1,8 @@
[![Leseni ya GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE)
[![Wahusika wa GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/)
[![Masuala ya GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/)
[![Maombi ya kuvuta GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
[![PRs Karibu](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Maombi ya GitHub ya Pull](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/)
[![Karibu PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com)
[![Watazamaji wa GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/)
[![Matawi ya GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/)
@ -10,14 +10,14 @@
### 🌐 Msaada wa Lugha Nyingi
#### Umeungwa mkono kupitia Kitendo cha GitHub (Kisotomati & Kila Wakati kina Sasishwa)
#### Inatambuliwa kupitia Hatua ya GitHub (Otometi & Daima Ipo Hadi)
<!-- CO-OP TRANSLATOR LANGUAGES TABLE START -->
[Kiarabu](../ar/README.md) | [Kibengali](../bn/README.md) | [Kibulgaria](../bg/README.md) | [Kiburma (Myanma)](../my/README.md) | [Kichina (Rahisi)](../zh-CN/README.md) | [Kichina (Asili, Hong Kong)](../zh-HK/README.md) | [Kichina (Asili, Macau)](../zh-MO/README.md) | [Kichina (Asili, Taiwan)](../zh-TW/README.md) | [Kroeshia](../hr/README.md) | [Cheki](../cs/README.md) | [Denmaki](../da/README.md) | [Kiholanzi](../nl/README.md) | [Eistonia](../et/README.md) | [Kifini](../fi/README.md) | [Kifaransa](../fr/README.md) | [Kijerumani](../de/README.md) | [Kigiriki](../el/README.md) | [Kiebrania](../he/README.md) | [Kihindi](../hi/README.md) | [Kihungari](../hu/README.md) | [Kiindonesia](../id/README.md) | [Kiitaliano](../it/README.md) | [Kijapani](../ja/README.md) | [Kikannada](../kn/README.md) | [Kikmeru](../km/README.md) | [Kikorea](../ko/README.md) | [Kilithuania](../lt/README.md) | [Kimalay](../ms/README.md) | [Kimalayalam](../ml/README.md) | [Kimarathi](../mr/README.md) | [Kinepali](../ne/README.md) | [Pidgin ya Nigeria](../pcm/README.md) | [Kinorwe](../no/README.md) | [Kiajemi (Farsi)](../fa/README.md) | [Kipolandi](../pl/README.md) | [Kireno (Brazil)](../pt-BR/README.md) | [Kireno (Portugal)](../pt-PT/README.md) | [Kipunjabi (Gurmukhi)](../pa/README.md) | [Kiromania](../ro/README.md) | [Kirusi](../ru/README.md) | [Kiserbia (Kisiliki)](../sr/README.md) | [Kislovakia](../sk/README.md) | [Kislovenia](../sl/README.md) | [Kihispania](../es/README.md) | [Kiswahili](./README.md) | [Kiswidi](../sv/README.md) | [Kitagalog (Kifilipino)](../tl/README.md) | [Kitamili](../ta/README.md) | [Kitelugu](../te/README.md) | [Kithai](../th/README.md) | [Kituruki](../tr/README.md) | [Kiukraini](../uk/README.md) | [Kiurudu](../ur/README.md) | [Kivietinamu](../vi/README.md)
[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [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](./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)
> **Ungependa Kukopa Mitaa?**
> **Unapendelea Kukunja Kwenye Kompyuta Binafsi?**
>
> Hifadhi hii inajumuisha tafsiri za lugha zaidi ya 50 ambazo huongeza kwa kiasi kikubwa ukubwa wa kupakua. Ili kukopa bila tafsiri, tumia sparse checkout:
> Hifadhidata hii ina tafsiri za lugha 50+ ambazo huongeza ukubwa wa kupakua kwa kiasi kikubwa. Ili kuepuka tafsiri, tumia sparse checkout:
>
> **Bash / macOS / Linux:**
> ```bash
@ -33,71 +33,71 @@
> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
> ```
>
> Hii inakupa kila kitu unachohitaji kukamilisha kozi kwa kupakua kwa kasi zaidi.
> Hii inakupa kila unachohitaji kukamilisha kozi kwa upakuaji wa kasi zaidi.
<!-- CO-OP TRANSLATOR LANGUAGES TABLE END -->
#### Jiunge na Jamii Yetu
#### Jiunge na Jumuiya Yetu
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Tuna mfululizo wa kujifunza wa Discord pamoja na AI unaoendelea, jifunze zaidi na jiunge nasi kwenye [Mfululizo wa Kujifunza na AI](https://aka.ms/learnwithai/discord) kuanzia 18 - 30 Septemba, 2025. Utapokea vidokezo na mbinu za kutumia GitHub Copilot kwa Sayansi ya Takwimu.
Tuna mfululizo wa kujifunza kupitia Discord kuhusu AI unaoendelea, jifunze zaidi na jiunge nasi kwenye [Mfululizo wa Kujifunza na AI](https://aka.ms/learnwithai/discord) kuanzia 18 - 30 Septemba, 2025. Utapata vidokezo na mbinu za kutumia GitHub Copilot kwa Sayansi ya Data.
![Mfululizo wa Kujifunza na AI](../../translated_images/sw/3.9b58fd8d6c373c20.webp)
# Kujifunza Mashine kwa Wakianza - Mtaala
# Kujifunza Mashine kwa Waanzilishi - Mtaala
> 🌍 Tembea ulimwenguni tunapochunguza Kujifunza Mashine kwa njia za tamaduni za dunia 🌍
> 🌍 Safiri ulimwenguni tunapochafulia Kujifunza Mashine kupitia tamaduni za dunia 🌍
Watetezi wa Wingu wa Microsoft wanafurahia kutoa mtaala wa wiki 12, masomo 26 kuhusu **Kujifunza Mashine**. Katika mtaala huu, utajifunza kuhusu kile kinachoitwa mara nyingine **kujifunza mashine cha classic**, ukitumia hasa maktaba ya Scikit-learn na kuepuka kujifunza kwa kina, ambacho kinashughulikiwa katika [mtaala wetu wa AI kwa Wakianza](https://aka.ms/ai4beginners). Pia weka masomo haya pamoja na mtaala wetu wa ['Sayansi ya Takwimu kwa Wakianza'](https://aka.ms/ds4beginners).
Watetezi wa Wingu Microsoft wanafurahia kutoa mtaala wa wiki 12, masomo 26 kuhusu **Kujifunza Mashine**. Katika mtaala huu, utajifunza kile kinachoitwa mara nyingine **kujifunza mashine cha kawaida**, ukitumia hasa maktaba ya Scikit-learn na kuepuka kujifunza kwa kina, ambayo inafunikwa katika mtaala wetu wa [AI kwa Waanzilishi](https://aka.ms/ai4beginners). Sambamba na masomo haya pia tumia mtaala wetu wa ['Sayansi ya Data kwa Waanzilishi'](https://aka.ms/ds4beginners)!
Safiri nasi duniani kote tunapotumia mbinu hizi za classic kwa data kutoka maeneo mengi ya dunia. Kila somo lina mtihani wa kabla na baada ya somo, maelekezo yaliyoandikwa ya kukamilisha somo, suluhisho, kazi ya nyumbani, na zaidi. Njia yetu ya kujifunza kwa mradi inakuwezesha kujifunza unajenga, njia iliyo thibitishwa ya kuufanya ujuzi mpya udumu.
Safiri nasi ulimwenguni kote tunapotumia mbinu hizi za kawaida kwa data kutoka maeneo mengi ya dunia. Kila somo lina vipimo kabla na baada ya somo, maelekezo ya maandishi ya kukamilisha somo, suluhisho, kazi, na zaidi. Njia yetu ya kufundisha inayotegemea mradi inakuwezesha kujifunza huku ukijenga, njia iliyothibitishwa ya kuimarisha ujuzi mpya.
**✍️ Shukrani za dhati kwa waandishi wetu** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu na Amy Boyd
**✍️ Asante kubwa kwa waandishi wetu** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu na Amy Boyd
**🎨 Asante pia kwa wachoraji wetu** Tomomi Imura, Dasani Madipalli, na Jen Looper
**🎨 Asante pia kwa wachora picha wetu** Tomomi Imura, Dasani Madipalli, na Jen Looper
**🙏 Shukrani maalum 🙏 kwa waandishi, wachambuzi, na wachangiaji wa maudhui wa Ubalozi wa Wanafunzi wa Microsoft**, hasa Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, na Snigdha Agarwal
**🙏 Shukrani maalum 🙏 kwa waandishi, wachunguzi, na wachangiaji wa maudhui wa Microsoft Student Ambassador**, hasa Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, na Snigdha Agarwal
**🤩 Shukrani za ziada kwa Mabalozi wa Wanafunzi wa Microsoft Eric Wanjau, Jasleen Sondhi, na Vidushi Gupta kwa masomo yetu ya R!**
**🤩 Shukrani za ziada kwa Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, na Vidushi Gupta kwa masomo yetu ya R!**
# Kuanza
# Kuanzia
Fuata hatua hizi:
1. **Fanya Fork ya Hifadhi**: Bofya kitufe cha "Fork" upande wa juu kulia wa ukurasa huu.
2. **Nakili Hifadhi**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
1. **Fungua Hifadhidata (Fork)**: Bonyeza kitufe cha "Fork" upande wa juu wa kulia wa ukurasa huu.
2. **Nakili Hifadhidata (Clone)**: `git clone https://github.com/microsoft/ML-For-Beginners.git`
> [pata rasilimali zote za ziada za kozi hii kwenye mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> [pata rasilimali zote za ziada kwa kozi hii kwenye mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
> 🔧 **Unahitaji msaada?** Angalia [Mwongozo wa Utatuzi wa Matatizo](TROUBLESHOOTING.md) kwa suluhisho za matatizo ya kawaida katika usakinishaji, usanidi, na kuendesha masomo.
> 🔧 **Unahitaji msaada?** Angalia [Mwongozo wa Kushughulikia Matatizo](TROUBLESHOOTING.md) kwa suluhisho za matatizo ya kawaida ya usanikishaji, usanidi, na kuendesha masomo.
**[Wanafunzi](https://aka.ms/student-page)**, ili kutumia mtaala huu, fanya fork ya repo yote kwenye akaunti yako ya GitHub na ukamilishe mazoezi mwenyewe au na kikundi:
**[Wanafunzi](https://aka.ms/student-page)**, ili kutumia mtaala huu, fanya fork yote ya repo kwenye akaunti yako ya GitHub na fanya mazoezi peke yako au na kikundi:
- Anza na mtihani wa kabla ya mhadhara.
- Soma mhadhara na ukamilishe shughuli, simama na fikiri kila baada ya kila kipimo cha maarifa.
- Jaribu kuunda miradi kwa kuelewa masomo badala ya kuendesha msimbo wa suluhisho; hata hivyo msimbo huo unapatikana kwenye folda za `/solution` katika kila somo la mradi.
- Fanya mtihani wa baada ya mhadhara.
- Kukamilisha changamoto.
- Kukamilisha kazi ya nyumbani.
- Baada ya kukamilisha kikundi cha masomo, tembelea [Bodi ya Majadiliano](https://github.com/microsoft/ML-For-Beginners/discussions) na "jifunze kwa sauti" kwa kujaza rubric ya PAT inayofaa. 'PAT' ni Chombo cha Tathmini ya Maendeleo ambacho ni rubric unayojaza ili kuendeleza kujifunza kwako. Pia unaweza kutoa maoni kwa PAT zingine ili tufunzwe pamoja.
- Anza na kipimo kabla ya mafunzo.
- Soma mafunzo na fanya shughuli, simama na kutafakari kila ukaguzi wa maarifa.
- Jaribu kutengeneza miradi kwa kuelewa masomo badala ya kuendesha msimbo wa suluhisho; hata hivyo msimbo huo upo kwenye folda za `/solution` katika kila somo la mradi.
- Fanya kipimo baada ya mafunzo.
- Kamilisha changamoto.
- Kamilisha kazi.
- Baada ya kumaliza kundi la masomo, tembelea [Bodi ya Majadiliano](https://github.com/microsoft/ML-For-Beginners/discussions) na "jifunza kwa sauti" kwa kujaza rubriki ya PAT inayofaa. 'PAT' ni Chombo cha Tathmini ya Maendeleo ambacho ni rubriki unayojaza kuendeleza ujifunzaji wako. Unaweza pia kutoa maoni kwa PAT nyingine ili tujifunze pamoja.
> Kwa masomo zaidi, tunapendekeza kufuata moduli na njia za kujifunza za [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
> Kwa mafunzo zaidi, tunapendekeza kufuata moduli na njia za kujifunza za [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott).
**Walezi**, tumewajumuisha [mapendekezo kadhaa](for-teachers.md) juu ya jinsi ya kutumia mtaala huu.
**Walimu**, tumejumuisha [mapendekezo kadhaa](for-teachers.md) juu ya jinsi ya kutumia mtaala huu.
---
## Maelezo ya video
## Video za maelekezo
Baadhi ya masomo yanapatikana kama video fupi. Unaweza kupata yote haya ndani ya masomo, au kwenye [mfululizo wa ML kwa Wakianza kwenye chaneli ya Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) kwa kubofya picha hapa chini.
Baadhi ya masomo yanapatikana kama video fupi. Unaweza kupata hizi zote ndani ya masomo, au kwenye [mfululizo wa ML kwa Waanzilishi kwenye chaneli ya Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) kwa kubonyeza picha iliyo hapa chini.
[![Bango la ML kwa wakianza](../../translated_images/sw/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
[![Bango la ML kwa waanzilishi](../../translated_images/sw/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos)
---
## Kutambuliana na Timu
## Kutana na Timu
[![Video ya utangulizi](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
[![Video ya matangazo](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU)
**Gif kwa** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal)
@ -105,93 +105,93 @@ Baadhi ya masomo yanapatikana kama video fupi. Unaweza kupata yote haya ndani ya
---
## Mbinu ya Kufundishia
## Mbinu ya Kufundisha
Tumekuwa na kauli mbiu mbili za kielimu wakati wa kujenga mtaala huu: kuhakikisha kwamba ni mkono-katika-mtu **unaotegemea mradi** na kwamba unajumuisha **mitihani ya mara kwa mara**. Zaidi ya hayo, mtaala huu una **kauli mbiu** ya pamoja kutoa mshikamano.
Tumechagua kanuni mbili za kufundisha tunapojenga mtaala huu: kuhakikisha kuwa ni mkono-kwa-kazi **unaotegemea mradi** na kuwa na **vipimo mara kwa mara**. Zaidi ya hayo, mtaala huu una **kauli mbiu** ya pamoja kuipa umoja.
Kwa kuhakikisha kwamba maudhui yanahusiana na miradi, mchakato unatengenezwa kuvutia zaidi kwa wanafunzi na uwezo wa kumbukumbu wa dhana utaongezeka. Zaidi ya hayo, mtihani wa chini wa hatari kabla ya darasa huweka nia ya mwanafunzi kuelekea kujifunza mada, wakati mtihani wa pili baada ya darasa unaongeza kumbukumbu zaidi. Mtaala huu umetengenezwa kuwa mraimu na wa kufurahisha na unaweza kuchukuliwa kwa ukamilifu au sehemu. Miradi huanza kwa ndogo na kuendelea kuwa ngumu zaidi mwishoni mwa mzunguko wa wiki 12. Mtaala huu pia una kumbusho kuhusu matumizi halisi ya ML, ambayo inaweza kutumika kama mkopo wa ziada au kama msingi wa mjadala.
Kwa kuhakikisha maudhui yanaendana na miradi, mchakato unakuwa wa kuvutia zaidi kwa wanafunzi na kuhifadhi dhana kutaboreshwa. Zaidi ya hayo, kipimo cha chini cha hatari kabla ya darasa kinaweka nia ya mwanafunzi ya kujifunza somo, wakati kipimo cha pili baada ya darasa kinahakikisha kuhifadhi zaidi. Mtaala huu umetengenezwa kuwa rahisi na wa kufurahisha na unaweza kuchukuliwa kwa jumla au sehemu. Miradi huanza midogo na kuwa ngumu zaidi kufikia mwisho wa mzunguko wa wiki 12. Mtaala huu pia una maelezo ya matumizi halisi ya ML, ambayo yanaweza kutumika kama mkopo wa ziada au kama msingi wa majadiliano.
> Tafuta [Kanuni zetu za Maadili](CODE_OF_CONDUCT.md), [Michango](CONTRIBUTING.md), [Tafsiri](..), na mwongozo wa [Utatuzi wa Matatizo](TROUBLESHOOTING.md). Tunakaribisha maoni yako yenye tija!
> Pata [Kanuni zetu za Maadili](CODE_OF_CONDUCT.md), [Michango](CONTRIBUTING.md), [Tafsiri](..), na [Mwongozo wa Kushughulikia Matatizo](TROUBLESHOOTING.md). Tunakaribisha maoni yako yenye kujenga!
## Kila somo linajumuisha
- chati ya sketchnote hiari
- video ya ziada hiari
- maelekezo ya video (baadhi ya masomo tu)
- [mtihani wa awali wa joto kabla ya mhadhara](https://ff-quizzes.netlify.app/en/ml/)
- somo maandishi
- kwa masomo yanayotegemea mradi, mwongozo hatua kwa hatua wa ujenzi wa mradi
- vipimo vya maarifa
- sketchnote hiari
- video ya ziada kwa hiari
- video ya maelekezo (baadhi ya masomo tu)
- [kipimo cha kuamka kabla ya mafunzo](https://ff-quizzes.netlify.app/en/ml/)
- somo la maandishi
- kwa masomo yanayozingatia miradi, miongozo hatua kwa hatua jinsi ya kujenga mradi
- ukaguzi wa maarifa
- changamoto
- kusoma ziada
- kazi ya nyumbani
- [mtihani wa baada ya mhadhara](https://ff-quizzes.netlify.app/en/ml/)
> **Kumbuka kuhusu lugha**: Masomo haya yameandikwa hasa kwa Python, lakini mengi pia yanapatikana kwa R. Ili kumaliza somo la R, nenda kwenye folda ya `/solution` na tafuta masomo ya R. Yana nyongeza ya .rmd ambayo inawakilisha faili la **R Markdown** ambalo linaweza kuelezwa kwa urahisi kama kuingiza `vidonge vya nambari` (za R au lugha nyingine) na `kichwa cha YAML` (ambacho kinaongoza jinsi ya kuunda matokeo kama PDF) kwenye `nyaraka za Markdown`. Kwa kuwa hivyo, hutoa mfumo bora wa uandishi wa sayansi ya data kwa sababu inakuwezesha kuunganisha nambari zako, matokeo yake, na mawazo yako kwa kuweza kuyaandika chini kwa Markdown. Zaidi ya hayo, nyaraka za R Markdown zinaweza kutengenezwa kuwa aina za matokeo kama PDF, HTML, au Word.
> **Kumbuka kuhusu maswali ya mtihani**: Maswali yote ya mtihani yanapatikana kwenye [Folda ya Programu ya Mtihani](../../quiz-app), kwa jumla ya maswali 52 yenye maswali matatu kila moja. Yameunganishwa ndani ya masomo lakini programu ya mtihani inaweza kuendeshwa kwa mtaa; fuata maelekezo kwenye folda ya `quiz-app` ili kuiendesha kwa mtaa au kuipeleka kwenye Azure.
| Nambari ya Somo | Mada | Ukusanyaji wa Masomo | Malengo ya Kujifunza | Somo Lililo Unganishwa | Mwandishi |
| :-------------: | :----------------------------------------------------------: | :--------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: |
| 01 | Utangulizi wa ujifunzaji wa mashine | [Utangulizi](1-Introduction/README.md) | Jifunze dhana za msingi nyuma ya ujifunzaji wa mashine | [Somo](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Historia ya ujifunzaji wa mashine | [Utangulizi](1-Introduction/README.md) | Jifunze historia inayojihusisha na eneo hili | [Somo](1-Introduction/2-history-of-ML/README.md) | Jen na Amy |
| 03 | Uadilifu na ujifunzaji wa mashine | [Utangulizi](1-Introduction/README.md) | Je, ni masuala gani muhimu ya falsafa kuhusu uadilifu ambayo wanafunzi wanapaswa kuzingatia wanapojenga na kutekeleza mifano ya ML? | [Somo](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Mbinu za ujifunzaji wa mashine | [Utangulizi](1-Introduction/README.md) | Ni mbinu gani watafiti wa ML hutumia kujenga mifano ya ML? | [Somo](1-Introduction/4-techniques-of-ML/README.md) | Chris na Jen |
| 05 | Utangulizi wa regression | [Regression](2-Regression/README.md) | Anza na Python na Scikit-learn kwa mifano ya regression | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Bei za maboga ya Amerika Kaskazini 🎃 | [Regression](2-Regression/README.md) | Onyesha kwa kuona na safisha data kwa ajili ya ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Bei za maboga ya Amerika Kaskazini 🎃 | [Regression](2-Regression/README.md) | Jenga mifano ya regression ya mstari na polynomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen na Dmitry • Eric Wanjau |
| 08 | Bei za maboga ya Amerika Kaskazini 🎃 | [Regression](2-Regression/README.md) | Jenga mfano wa regression wa logistic | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Programu ya Wavuti 🔌 | [Web App](3-Web-App/README.md) | Jenga programu ya wavuti kutumia mfano wako uliopata mafunzo | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Utangulizi wa uainishaji | [Classification](4-Classification/README.md) | Safisha, andaa, na onyesha data yako; utangulizi wa uainishaji | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen na Cassie • Eric Wanjau |
| 11 | Vyakula vitamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Utangulizi wa waainishaji | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen na Cassie • Eric Wanjau |
| 12 | Vyakula vitamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Waainishaji zaidi | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen na Cassie • Eric Wanjau |
| 13 | Vyakula vitamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Jenga programu ya wavuti ya kupendekeza kutumia mfano wako | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Utangulizi wa uundaji | [Clustering](5-Clustering/README.md) | Safisha, andaa, na onyesha data yako; Utangulizi wa uundaji | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Kuchunguza Ladha za Muziki za Nigeria 🎧 | [Clustering](5-Clustering/README.md) | Chunguza njia ya uundaji ya K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Utangulizi wa usindikaji wa lugha asilia ☕️ | [Natural language processing](6-NLP/README.md) | Jifunze misingi ya NLP kwa kujenga roboti rahisi | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Majukumu ya kawaida ya NLP ☕️ | [Natural language processing](6-NLP/README.md) | Zidi uelewa wako wa NLP kwa kuelewa majukumu ya kawaida yanayohitajika wakati wa kushughulika na miundo ya lugha | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Tafsiri na uchambuzi wa hisia ♥️ | [Natural language processing](6-NLP/README.md) | Tafsiri na uchambuzi wa hisia na Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Hoteli za kimapenzi za Ulaya ♥️ | [Natural language processing](6-NLP/README.md) | Uchambuzi wa hisia kwa mapitio ya hoteli 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Hoteli za kimapenzi za Ulaya ♥️ | [Natural language processing](6-NLP/README.md) | Uchambuzi wa hisia kwa mapitio ya hoteli 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Utangulizi wa utabiri wa mfululizo wa wakati | [Time series](7-TimeSeries/README.md) | Utangulizi wa utabiri wa mfululizo wa wakati | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa wakati kwa ARIMA | [Time series](7-TimeSeries/README.md) | Utabiri wa mfululizo wa wakati kwa ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa wakati kwa SVR | [Time series](7-TimeSeries/README.md) | Utabiri wa mfululizo wa wakati kwa Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Utangulizi wa ujifunzaji wa msaada | [Reinforcement learning](8-Reinforcement/README.md) | Utangulizi wa ujifunzaji wa msaada kwa kutumia Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Msaada kwa Peter kuepuka mbwa mwitu! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym ya ujifunzaji wa msaada | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Matukio halisi ya ML na matumizi | [ML in the Wild](9-Real-World/README.md) | Matumizo ya kuvutia na kufunua ya ML ya zamani | [Somo](9-Real-World/1-Applications/README.md) | Team |
| Postscript | Urekebishaji wa Mfano wa ML kwa kutumia dashibodi ya RAI | [ML in the Wild](9-Real-World/README.md) | Urekebishaji wa Mfano wa Ujifunzaji wa Mashine kwa kutumia vipengele vya dashibodi ya Responsible AI | [Somo](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [pata rasilimali zote za ziada kwa kozi hii katika mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Ufikiaji nje ya mtandao
Unaweza kuendesha hati hizi nje ya mtandao kwa kutumia [Docsify](https://docsify.js.org/#/). Nakili repo hii, [weka Docsify](https://docsify.js.org/#/quickstart) kwenye mashine yako ya mtaa, na kisha kwenye folda ya mzizi ya repo hii, andika `docsify serve`. Tovuti itakuwa inapatikana kwenye bandari 3000 kwenye mtaa wako wa localhost: `localhost:3000`.
## PDFs
Tafuta pdf ya mtaala wenye viungo [hapa](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Kozi Nyingine
Timu yetu huandaa kozi zingine! Angalia:
- kusoma kwa ziada
- kazi
- [kipimo cha baada ya mafunzo](https://ff-quizzes.netlify.app/en/ml/)
> **Kumbuka kuhusu lugha**: Masomo haya yameandikwa hasa kwa Python, lakini mengi pia yanapatikana kwa R. Ili kumaliza somo la R, nenda kwenye folda ya `/solution` na tafuta masomo ya R. Yana kiambatisho cha .rmd kinachoonyesha faili la **R Markdown** ambalo linaweza kufafanuliwa kama kuingiza `vipande vya msimbo` (cha R au lugha nyingine) na `kichwa cha YAML` (kinachoongoza jinsi ya kupanga matokeo kama PDF) katika `nyaraka ya Markdown`. Kwa hivyo, hutumika kama mfumo bora wa uandishi wa sayansi ya data kwa sababu hukuruhusu kuunganisha msimbo wako, matokeo yake, na mawazo yako kwa kuwaruhusu kuyaandika kwa Markdown. Zaidi ya hayo, nyaraka za R Markdown zinaweza kutolewa kwa muundo kama PDF, HTML, au Word.
> **Kumbuka kuhusu maswali ya mtihani**: Maswali yote yamo katika [folda ya Programu ya Mtihani](../../quiz-app), kwa jumla ya maswali 52 yenye maswali matatu kila moja. Yameunganishwa kutoka ndani ya masomo lakini programu ya mtihani inaweza kuendeshwa kwa ndani; fuata maelekezo katika folda ya `quiz-app` ili kuendesha kwa ndani au kuweka kwenye Azure.
| Nambari ya Somo | Mada | Ugawaji wa Somo | Malengo ya Kujifunza | Somo Linalounganishwa | Mwandishi |
| :-------------: | :---------------------------------------------------------: | :------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: |
| 01 | Utangulizi wa kujifunza mashine | [Intoduction](1-Introduction/README.md) | Jifunze dhana za msingi nyuma ya kujifunza mashine | [Somo](1-Introduction/1-intro-to-ML/README.md) | Muhammad |
| 02 | Historia ya kujifunza mashine | [Introduction](1-Introduction/README.md) | Jifunze historia iliyomo katika uwanja huu | [Somo](1-Introduction/2-history-of-ML/README.md) | Jen na Amy |
| 03 | Uadilifu na kujifunza mashine | [Introduction](1-Introduction/README.md) | Ni masuala gani muhimu ya kifalsafa kuhusu uadilifu ambayo wanafunzi wanapaswa kuyazingatia wanapojenga na kutumia mifano ya ML? | [Somo](1-Introduction/3-fairness/README.md) | Tomomi |
| 04 | Mbinu za kujifunza mashine | [Introduction](1-Introduction/README.md) | Washauri wa ML hutumia mbinu gani kujenga mifano ya ML? | [Somo](1-Introduction/4-techniques-of-ML/README.md) | Chris na Jen |
| 05 | Utangulizi wa marejeleo | [Regression](2-Regression/README.md) | Anza na Python na Scikit-learn kwa mifano ya marejeleo | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau |
| 06 | Bei za malenge ya Amerika ya Kaskazini 🎃 | [Regression](2-Regression/README.md) | Onyesha na safisha data kwa ajili ya ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau |
| 07 | Bei za malenge ya Amerika ya Kaskazini 🎃 | [Regression](2-Regression/README.md) | Tengeneza mifano ya marejeleo ya mstari na polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen na Dmitry • Eric Wanjau |
| 08 | Bei za malenge ya Amerika ya Kaskazini 🎃 | [Regression](2-Regression/README.md) | Tengeneza mfano wa regression ya logistic | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau |
| 09 | Programu ya wavuti 🔌 | [Web App](3-Web-App/README.md) | Tengeneza programu ya wavuti kutumia mfano wako uliopandishwa | [Python](3-Web-App/1-Web-App/README.md) | Jen |
| 10 | Utangulizi wa upangaji | [Classification](4-Classification/README.md) | Safisha, andaa, na onyesha data yako; utangulizi wa upangaji | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen na Cassie • Eric Wanjau |
| 11 | Vyakula tamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Utangulizi wa wachanganuzi | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen na Cassie • Eric Wanjau |
| 12 | Vyakula tamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Wachanganuzi zaidi | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen na Cassie • Eric Wanjau |
| 13 | Vyakula tamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Tengeneza programu ya wavuti ya mapendekezo kwa kutumia mfano wako | [Python](4-Classification/4-Applied/README.md) | Jen |
| 14 | Utangulizi wa upangaji wa kundi | [Clustering](5-Clustering/README.md) | Safisha, andaa, na onyesha data yako; Utangulizi wa upangaji wa kundi | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau |
| 15 | Kuchunguza ladha za muziki Nigeria 🎧 | [Clustering](5-Clustering/README.md) | Chunguza mbinu ya upangaji wa K-Maana | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau |
| 16 | Utangulizi wa usindikaji wa lugha asilia ☕️ | [Natural language processing](6-NLP/README.md) | Jifunze mambo ya msingi kuhusu NLP kwa kutengeneza bot rahisi | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen |
| 17 | Kazi za kawaida za NLP ☕️ | [Natural language processing](6-NLP/README.md) | Zidisha ujuzi wako wa NLP kwa kuelewa kazi za kawaida zinazohitajika unaposhughulika na miundo ya lugha | [Python](6-NLP/2-Tasks/README.md) | Stephen |
| 18 | Tafsiri na uchambuzi wa hisia ♥️ | [Natural language processing](6-NLP/README.md) | Tafsiri na uchambuzi wa hisia na Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen |
| 19 | Hoteli za kimapenzi za Ulaya ♥️ | [Natural language processing](6-NLP/README.md) | Uchambuzi wa hisia kwa hakiki za hoteli 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen |
| 20 | Hoteli za kimapenzi za Ulaya ♥️ | [Natural language processing](6-NLP/README.md) | Uchambuzi wa hisia kwa hakiki za hoteli 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen |
| 21 | Utangulizi wa utabiri wa mfululizo wa wakati | [Time series](7-TimeSeries/README.md) | Utangulizi wa utabiri wa mfululizo wa wakati | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca |
| 22 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa wakati na ARIMA | [Time series](7-TimeSeries/README.md) | Utabiri wa mfululizo wa wakati kwa kutumia ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca |
| 23 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa wakati na SVR | [Time series](7-TimeSeries/README.md) | Utabiri wa mfululizo wa wakati kwa kutumia Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban |
| 24 | Utangulizi wa kujifunza kwa uthibitisho | [Reinforcement learning](8-Reinforcement/README.md) | Utangulizi wa kujifunza kwa uthibitisho kwa kutumia Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry |
| 25 | Msaidie Peter kuepuka MBWA! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym ya kujifunza kwa uthibitisho | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry |
| Postscript | Mifano na matumizi halisi ya ML | [ML in the Wild](9-Real-World/README.md) | Matumizi ya kuvutia na ya kufichua ya ML ya kawaida | [Somo](9-Real-World/1-Applications/README.md) | Timu |
| Postscript | Utafutaji makosa ya modeli katika ML kwa kutumia dashibodi ya RAI | [ML in the Wild](9-Real-World/README.md) | Utafutaji makosa ya modeli katika kujifunza mashine kwa kutumia sehemu za dashibodi ya Responsible AI | [Somo](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu |
> [tafuta vyanzo vyote vya ziada vya kozi hii katika mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum)
## Ufikiaji bila mtandao
Unaweza kuendesha nyaraka hizi bila mtandao kwa kutumia [Docsify](https://docsify.js.org/#/). Kopi hii ya repo, [weka Docsify](https://docsify.js.org/#/quickstart) kwenye kompyuta yako, kisha kwenye folda kuu ya repo hii, andika `docsify serve`. Tovuti itahudumiwa kwenye bandari 3000 kwenye localhost yako: `localhost:3000`.
## PDF
Pata pdf ya mtaala yenye viungo [hapa](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf).
## 🎒 Kozi Nyingine
Timu yetu hutengeneza kozi nyingine! Angalia:
<!-- CO-OP TRANSLATOR OTHER COURSES START -->
### LangChain
[![LangChain4j kwa Waanzilishi](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 kwa Waanzilishi](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 kwa Waanzilishi](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 kwa Waanzishaji](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 kwa Waanzishaji](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 kwa Waanzishaji](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 / Wakala
[![AZD kwa Waanzilishi](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 kwa Waanzilishi](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 kwa Mwanzo](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)
[![Wakala wa AI kwa Mwanzo](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)
### Azure / Edge / MCP / Maajenti
[![AZD kwa Waanzishaji](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 kwa Waanzishaji](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 kwa Waanzilishi](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)
[![Wakala wa AI kwa Waanzilishi](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)
---
### Mfululizo wa AI Inayotengeneza
[![AI Inayotengeneza kwa Mwanzo](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 Inayotengeneza kwa Waanzilishi](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 Inayotengeneza (.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 Inayotengeneza (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)
[![AI Inayotengeneza (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)
@ -199,40 +199,51 @@ Timu yetu huandaa kozi zingine! Angalia:
---
### Mafunzo ya Msingi
[![ML kwa Mwanzo](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)
[![Sayansi ya Data kwa Mwanzo](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 kwa Mwanzo](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)
[![Usalama wa Mtandao kwa Mwanzo](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)
[![Uendelezaji wa Mtandao kwa Mwanzo](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 kwa Mwanzo](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)
[![Maendeleo ya XR kwa Mwanzo](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 kwa Waanzilishi](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)
[![Sayansi ya Takwimu kwa Waanzilishi](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 kwa Waanzilishi](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)
[![Usalama wa Mtandao kwa Waanzilishi](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)
[![Maendeleo ya Wavuti kwa Waanzilishi](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 kwa Waanzilishi](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)
[![Maendeleo ya XR kwa Waanzilishi](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)
---
### Mfululizo wa Copilot
[![Copilot kwa Uandishi wa Programu Pamoja wa AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot kwa Uandishi wa Programu kwa Pairs ya AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst)
[![Copilot kwa 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)
[![Safa ya Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
[![Mtangamano wa Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst)
<!-- CO-OP TRANSLATOR OTHER COURSES END -->
## Kupata Msaada
Ukikumbwa au ikiwa na maswali yoyote kuhusu kujenga programu za AI. Jiunge na wanajifunza wenzako na waendelezaji wenye uzoefu katika mijadala kuhusu MCP. Ni jamii yenye msaada ambapo maswali yanakaribishwa na maarifa yanashirikishwa kwa ukarimu.
Ikiwa unakwama au una maswali wakati unajifunza Machine Learning au kujenga programu za AI, usijali — msaada upo.
[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG)
Unaweza kujiunga na mijadala na wanafunzi wengine na waendelezaji, kuuliza maswali, na kushiriki mawazo yako na jamii.
- Jiunge na jamii kuuliza maswali na kujifunza pamoja na wengine
- Jadili dhana za Machine Learning na mawazo ya miradi
- Pata mwongozo kutoka kwa waendelezaji wenye uzoefu
Jamii inayosaidia ni njia nzuri ya kukuza ujuzi wako na kutatua matatizo kwa haraka zaidi.
[Microsoft Foundry Discord Community](https://discord.gg/nTYy5BXMWG)
Ikiwa unakutana na hitilafu, makosa, au una mapendekezo ya maboresho, unaweza pia kufungua **Tatizo** katika hifadhidata hii kuripoti tatizo.
Kwa maoni ya bidhaa au kutafuta machapisho yaliyopo ya jamii, tembelea Jukwaa la Waendelezaji:
Ikiwa una maoni kuhusu bidhaa au makosa wakati wa kujenga tembelea:
[![Jukwaa la Waendelezaji wa Microsoft Foundry](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)
## Vidokezo Zaidi vya Kujifunza
- Pitia daftari za maelezo baada ya kila somo kwa uelewa mzuri zaidi.
- Fanya mazoezi ya kutekeleza algoriti peke yako.
- Chunguza seti halisi za data ukitumia dhana ulizojifunza.
- Rudia daftari za mafunzo baada ya kila somo kwa uelewa bora.
- Fanya mazoezi ya kutekeleza algorithms mwenyewe.
- Chunguza seti halisi za data kwa kutumia dhana ulizojifunza.
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**Tangazo la Msamaha**:
Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Wakati tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kasoro. Hati ya awali katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inashauriwa. Hatukuwajibiki kwa kutoelewana au tafsiri potofu zinazotokea kutokana na matumizi ya tafsiri hii.
**Kamba la Majadiliano**:
Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kasoro. Hati asili katika lugha yake ya asili inapaswa kuzingatiwa kama chanzo chenye mamlaka. Kwa taarifa muhimu, tafsiri ya mtaalamu wa binadamu inashauriwa. Hatubeba wajibu wowote kwa kutoelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
Loading…
Cancel
Save