diff --git a/translations/cs/.co-op-translator.json b/translations/cs/.co-op-translator.json
index c0767a5ab..511cc0bf5 100644
--- a/translations/cs/.co-op-translator.json
+++ b/translations/cs/.co-op-translator.json
@@ -36,8 +36,8 @@
"language_code": "cs"
},
"1-Introduction/4-techniques-of-ML/README.md": {
- "original_hash": "9d91f3af3758fdd4569fb410575995ef",
- "translation_date": "2025-09-05T00:26:41+00:00",
+ "original_hash": "84b1715a6be62ef1697351dcc5d7b567",
+ "translation_date": "2026-04-26T19:04:22+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "cs"
},
@@ -90,8 +90,8 @@
"language_code": "cs"
},
"2-Regression/3-Linear/README.md": {
- "original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
- "translation_date": "2026-04-20T19:34:25+00:00",
+ "original_hash": "8b776e731c35b171d316d01d0e7b1369",
+ "translation_date": "2026-04-26T19:03:47+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "cs"
},
@@ -107,6 +107,12 @@
"source_file": "2-Regression/3-Linear/solution/Julia/README.md",
"language_code": "cs"
},
+ "2-Regression/3-Linear/solution/notebook.ipynb": {
+ "original_hash": "6781223ffbe8cfdaa38d0200f08e1288",
+ "translation_date": "2026-04-26T18:59:40+00:00",
+ "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
+ "language_code": "cs"
+ },
"2-Regression/4-Logistic/README.md": {
"original_hash": "abf86d845c84330bce205a46b382ec88",
"translation_date": "2025-09-04T23:27:47+00:00",
diff --git a/translations/cs/1-Introduction/4-techniques-of-ML/README.md b/translations/cs/1-Introduction/4-techniques-of-ML/README.md
index 0140c9972..868a824e9 100644
--- a/translations/cs/1-Introduction/4-techniques-of-ML/README.md
+++ b/translations/cs/1-Introduction/4-techniques-of-ML/README.md
@@ -1,123 +1,125 @@
# Techniky strojového učení
-Proces vytváření, používání a udržování modelů strojového učení a dat, která využívají, se výrazně liší od mnoha jiných vývojových pracovních postupů. V této lekci tento proces objasníme a nastíníme hlavní techniky, které je třeba znát. Naučíte se:
+Proces vytváření, používání a udržování modelů strojového učení a dat, která používají, je velmi odlišný od mnoha jiných vývojových pracovních postupů. V této lekci si tento proces objasníme a nastíníme hlavní techniky, které potřebujete znát. Naučíte se:
-- Porozumět procesům, které jsou základem strojového učení na vysoké úrovni.
-- Prozkoumat základní pojmy, jako jsou „modely“, „predikce“ a „trénovací data“.
+- Pochopit procesy, které stojí za strojovým učením na vysoké úrovni.
+- Prozkoumat základní pojmy jako „modely“, „predikce“ a „tréninková data“.
-## [Kvíz před lekcí](https://ff-quizzes.netlify.app/en/ml/)
+## [Kvíz před přednáškou](https://ff-quizzes.netlify.app/en/ml/)
-[](https://youtu.be/4NGM0U2ZSHU "ML pro začátečníky - Techniky strojového učení")
+[](https://youtu.be/4NGM0U2ZSHU "ML for beginners - Techniques of Machine Learning")
-> 🎥 Klikněte na obrázek výše pro krátké video, které vás provede touto lekcí.
+> 🎥 Klikněte na obrázek výše pro krátké video, které prochází touto lekcí.
## Úvod
-Na vysoké úrovni se tvorba procesů strojového učení (ML) skládá z několika kroků:
+Na vysoké úrovni je umění vytváření procesů strojového učení (ML) složeno z několika kroků:
-1. **Určete otázku**. Většina procesů ML začíná položením otázky, na kterou nelze odpovědět jednoduchým podmíněným programem nebo pravidlovým systémem. Tyto otázky se často týkají predikcí na základě sbírky dat.
-2. **Sbírejte a připravte data**. Abyste mohli odpovědět na svou otázku, potřebujete data. Kvalita a někdy i množství vašich dat určí, jak dobře můžete odpovědět na svou původní otázku. Vizualizace dat je důležitým aspektem této fáze. Tato fáze také zahrnuje rozdělení dat na trénovací a testovací skupinu pro vytvoření modelu.
-3. **Vyberte metodu trénování**. V závislosti na vaší otázce a povaze vašich dat musíte zvolit způsob, jakým chcete model trénovat, aby co nejlépe odrážel vaše data a poskytoval přesné predikce. Tato část procesu ML vyžaduje specifické odborné znalosti a často značné množství experimentování.
-4. **Trénujte model**. Pomocí vašich trénovacích dat použijete různé algoritmy k trénování modelu, aby rozpoznal vzory v datech. Model může využívat interní váhy, které lze upravit tak, aby upřednostňoval určité části dat před jinými, a tím vytvořil lepší model.
-5. **Vyhodnoťte model**. Použijete data, která model nikdy předtím neviděl (vaše testovací data), abyste zjistili, jak model funguje.
-6. **Ladění parametrů**. Na základě výkonu vašeho modelu můžete proces zopakovat s různými parametry nebo proměnnými, které ovládají chování algoritmů použitých k trénování modelu.
-7. **Predikujte**. Použijte nové vstupy k otestování přesnosti vašeho modelu.
+1. **Rozhodněte se o otázce**. Většina ML procesů začíná položením otázky, na kterou nelze odpovědět jednoduchým podmíněným programem nebo pravidlovým enginem. Tyto otázky se často točí kolem predikcí založených na sbírce dat.
+2. **Sběr a příprava dat**. Abyste mohli odpovědět na svou otázku, potřebujete data. Kvalita a někdy i množství dat určí, jak dobře dokážete zodpovědět vaši původní otázku. Vizualizace dat je důležitou součástí této fáze. Tato fáze také zahrnuje rozdělení dat na tréninkovou a testovací skupinu pro vytvoření modelu.
+3. **Výběr metody tréninku**. Podle vaší otázky a povahy dat je potřeba zvolit, jak chcete trénovat model tak, aby co nejlépe odrážel vaše data a umožnil přesné predikce. Toto je část ML procesu, která vyžaduje specifickou odbornost a často značné množství experimentování.
+4. **Trénování modelu**. Pomocí tréninkových dat použijete různé algoritmy k natrénování modelu, který rozeznává vzory v datech. Model může využívat vnitřní váhy, které lze nastavit tak, aby upřednostňoval určité části dat před jinými a vytvořil tak lepší model.
+5. **Hodnocení modelu**. Použijete dříve neviděná data (testovací data) z vašeho souboru, abyste zjistili, jak model funguje.
+6. **Ladění parametrů**. Na základě výkonnosti modelu můžete celý proces zopakovat s různými parametry nebo proměnnými, které ovládají chování algoritmů použitých k tréninku modelu.
+7. **Predikce**. Použijte nové vstupy k otestování přesnosti modelu.
## Jakou otázku položit
-Počítače jsou obzvláště zdatné v objevování skrytých vzorů v datech. Tato schopnost je velmi užitečná pro výzkumníky, kteří mají otázky o dané oblasti, na které nelze snadno odpovědět vytvořením pravidlového systému založeného na podmínkách. Například při aktuárské úloze by datový vědec mohl vytvořit ručně sestavená pravidla týkající se úmrtnosti kuřáků vs. nekuřáků.
+Počítače jsou zvlášť schopné objevovat skryté vzory v datech. Tato užitečnost je velmi přínosná pro výzkumníky, kteří mají otázky o dané oblasti, jež nelze snadno zodpovědět vytvořením podmíněného pravidlového enginu. Například datový vědec může pro aktuárské úkoly vytvořit ručně vyrobená pravidla o úmrtnosti kuřáků a nekuřáků.
-Když se však do rovnice přidá mnoho dalších proměnných, model ML může být efektivnější při predikci budoucích úmrtnostních sazeb na základě minulých zdravotních záznamů. Veselejším příkladem může být předpovídání počasí na měsíc duben v dané lokalitě na základě dat, která zahrnují zeměpisnou šířku, délku, změny klimatu, blízkost oceánu, vzory proudění vzduchu a další.
+Pokud však do rovnice přidáme mnoho dalších proměnných, může být model ML efektivnější pro předpověď budoucích úmrtnostních sazeb na základě minulé zdravotní historie. Veselější příklad může být předpověď počasí na měsíc duben v dané lokalitě na základě dat obsahujících zeměpisnou šířku, délku, změnu klimatu, blízkost oceánu, vzory proudění jet streamu a další.
-✅ Tato [prezentace](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) o modelech počasí nabízí historický pohled na využití ML v analýze počasí.
+✅ Tato [prezentace](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) o modelech počasí nabízí historický pohled na použití ML v analýze počasí.
-## Úkoly před vytvořením modelu
+## Úkoly před samotným vytvářením
-Než začnete vytvářet svůj model, je třeba splnit několik úkolů. Abyste mohli otestovat svou otázku a vytvořit hypotézu na základě predikcí modelu, musíte identifikovat a nakonfigurovat několik prvků.
+Než začnete stavět svůj model, musíte splnit několik úkolů. Abyste mohli otestovat svou otázku a vytvořit hypotézu na základě predikcí modelu, je potřeba identifikovat a nakonfigurovat několik prvků.
### Data
-Abyste mohli odpovědět na svou otázku s jakoukoli jistotou, potřebujete dostatečné množství dat správného typu. V této fázi musíte udělat dvě věci:
+Abyste mohli otázku odpovědět s jistotou, potřebujete dostatečné množství dat správného typu. V tomto bodě je třeba udělat dvě věci:
-- **Sbírejte data**. S ohledem na předchozí lekci o spravedlnosti v analýze dat sbírejte svá data pečlivě. Buďte si vědomi zdrojů těchto dat, jakýchkoli inherentních předsudků, které mohou obsahovat, a dokumentujte jejich původ.
-- **Připravte data**. Proces přípravy dat zahrnuje několik kroků. Možná budete muset data shromáždit a normalizovat, pokud pocházejí z různých zdrojů. Kvalitu a množství dat můžete zlepšit různými metodami, například převodem textových řetězců na čísla (jak to děláme v [Clusteringu](../../5-Clustering/1-Visualize/README.md)). Můžete také generovat nová data na základě původních (jak to děláme v [Klasifikaci](../../4-Classification/1-Introduction/README.md)). Data můžete čistit a upravovat (jak to uděláme před lekcí o [Webové aplikaci](../../3-Web-App/README.md)). Nakonec je možná budete muset náhodně uspořádat a promíchat, v závislosti na vašich trénovacích technikách.
+- **Sbírejte data**. Mějte na paměti předchozí lekci o spravedlnosti v analýze dat a sbírejte data pečlivě. Buďte si vědomi zdrojů dat, jakýchkoli inherentních zkreslení a dokumentujte jejich původ.
+- **Připravte data**. Existuje několik kroků v procesu přípravy dat. Můžete potřebovat data sloučit a normalizovat, pokud pocházejí z různých zdrojů. Kvalitu a množství dat můžete vylepšit různými metodami, například převodem řetězců na čísla (jak děláme v [Clustering](../../5-Clustering/1-Visualize/README.md)). Můžete také generovat nová data na základě originálních (jak děláme v [Classification](../../4-Classification/1-Introduction/README.md)). Data můžete čistit a upravovat (jak uděláme před lekcí [Web App](../../3-Web-App/README.md)). Nakonec můžete data náhodně promíchat podle použitých tréninkových technik.
-✅ Po sběru a zpracování dat si udělejte chvíli na to, abyste zjistili, zda jejich struktura umožní odpovědět na vaši zamýšlenou otázku. Může se stát, že data nebudou dobře fungovat pro váš daný úkol, jak zjistíme v našich lekcích o [Clusteringu](../../5-Clustering/1-Visualize/README.md)!
+✅ Po sběru a zpracování dat si udělejte chvíli čas a zjistěte, zda jejich struktura umožní odpovědět na zamýšlenou otázku. Může se stát, že data nebudou pro daný úkol vhodná, jak zjistíme v lekcích o [Clusteringu](../../5-Clustering/1-Visualize/README.md)!
### Vlastnosti a cíl
-[Vlastnost](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) je měřitelná vlastnost vašich dat. V mnoha datových sadách je vyjádřena jako záhlaví sloupce, například „datum“, „velikost“ nebo „barva“. Vaše proměnná vlastnosti, obvykle reprezentovaná jako `X` v kódu, představuje vstupní proměnnou, která bude použita k trénování modelu.
+[Feature](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) (vlastnost) je měřitelná charakteristika dat. Většinou je vyjádřena jako nadpis sloupce, například „datum“, „velikost“ nebo „barva“. Vaše proměnná vlastnosti, obvykle označovaná jako `X` v kódu, představuje vstupní proměnnou použitou k natrénování modelu.
-Cíl je věc, kterou se snažíte předpovědět. Cíl, obvykle reprezentovaný jako `y` v kódu, představuje odpověď na otázku, kterou se snažíte položit svým datům: v prosinci, jakou **barvu** budou mít nejlevnější dýně? V San Francisku, které čtvrti budou mít nejlepší **cenu** nemovitostí? Někdy se cíl označuje také jako atribut štítku.
+Cíl je věc, kterou se snažíte předpovědět. Cíl, obvykle označovaný jako `y` v kódu, představuje odpověď na otázku, kterou svým datům kladete: v prosinci, jakou **barvu** budou mít nejlevnější dýně? V San Francisku, která čtvrť bude mít nejlepší cenu nemovitostí **cena**? Cíl se někdy také nazývá štítek nebo label atribut.
### Výběr proměnné vlastnosti
-🎓 **Výběr vlastností a extrakce vlastností** Jak poznáte, kterou proměnnou zvolit při vytváření modelu? Pravděpodobně projdete procesem výběru vlastností nebo extrakce vlastností, abyste zvolili správné proměnné pro nejvýkonnější model. Nejsou to však stejné věci: „Extrakce vlastností vytváří nové vlastnosti z funkcí původních vlastností, zatímco výběr vlastností vrací podmnožinu vlastností.“ ([zdroj](https://wikipedia.org/wiki/Feature_selection))
+🎓 **Výběr a extrakce vlastností** Jak vybrat správnou proměnnou při budování modelu? Pravděpodobně projdete procesem výběru vlastností nebo extrakce vlastností, abyste vybrali správné proměnné pro co nejlepší model. Nejde však o totéž: „Extrakce vlastností vytváří nové vlastnosti z funkcí originálních vlastností, zatímco výběr vlastností vybírá podmnožinu vlastností.“ ([zdroj](https://wikipedia.org/wiki/Feature_selection))
-### Vizualizace dat
+### Vizualizujte svá data
-Důležitým aspektem nástrojů datového vědce je schopnost vizualizovat data pomocí několika vynikajících knihoven, jako jsou Seaborn nebo MatPlotLib. Vizualizace dat vám může umožnit odhalit skryté korelace, které můžete využít. Vaše vizualizace vám také mohou pomoci odhalit předsudky nebo nevyvážená data (jak zjistíme v [Klasifikaci](../../4-Classification/2-Classifiers-1/README.md)).
+Důležitou součástí nástrojů datového vědce je schopnost vizualizovat data pomocí několika vynikajících knihoven, jako jsou Seaborn nebo MatPlotLib. Vizualizace dat vám může umožnit objevit skryté korelace, které můžete využít. Vaše vizualizace vám také může pomoci odhalit zkreslení nebo nevyvážená data (jak zjistíme v lekci o [Classification](../../4-Classification/2-Classifiers-1/README.md)).
-### Rozdělení datové sady
+### Rozdělte svůj dataset
-Před trénováním je třeba rozdělit datovou sadu na dvě nebo více částí nerovnoměrné velikosti, které stále dobře reprezentují data.
+Před tréninkem je třeba dataset rozdělit na dvě nebo více částí různé velikosti, které stále dobře reprezentují data.
-- **Trénovací sada**. Tato část datové sady je použita k trénování modelu. Tato sada tvoří většinu původní datové sady.
-- **Testovací sada**. Testovací datová sada je nezávislá skupina dat, často získaná z původních dat, kterou používáte k potvrzení výkonu vytvořeného modelu.
-- **Validační sada**. Validační sada je menší nezávislá skupina příkladů, kterou používáte k ladění hyperparametrů nebo architektury modelu, aby se zlepšil jeho výkon. V závislosti na velikosti vašich dat a otázce, kterou pokládáte, možná nebudete muset tuto třetí sadu vytvářet (jak poznamenáváme v [Časových řadách](../../7-TimeSeries/1-Introduction/README.md)).
+- **Tréninková sada**. Tato část datasetu se používá k přizpůsobení modelu a jeho tréninku. Tato sada tvoří většinu původních dat.
+- **Testovací sada**. Testovací data jsou nezávislá skupina dat, často vybraná z původních dat, kterou používáte ke kontrole výkonnosti natrénovaného modelu.
+- **Validace**. Validace je menší nezávislá skupina příkladů, kterou používáte ke ladění hyperparametrů nebo architektury modelu, abyste model vylepšili. Podle velikosti vašich dat a otázky, kterou chcete zodpovědět, možná nebudete potřebovat tuto třetí sadu (jak uvádíme v [Time Series Forecasting](../../7-TimeSeries/1-Introduction/README.md)).
## Vytváření modelu
-Pomocí vašich trénovacích dat je vaším cílem vytvořit model, tedy statistické vyjádření vašich dat, pomocí různých algoritmů k jeho **trénování**. Trénování modelu ho vystavuje datům a umožňuje mu dělat předpoklady o vzorech, které objeví, ověří a přijme nebo odmítne.
+Pomocí tréninkových dat je vaším cílem vytvořit model nebo statistické zastoupení dat pomocí různých algoritmů k jeho **tréninku**. Trénování modelu jej vystavuje datům a umožňuje mu činit předpoklady o vnímaných vzorech, které objeví, ověří a přijme nebo odmítne.
-### Rozhodnutí o metodě trénování
+### Rozhodněte se pro metodu tréninku
-V závislosti na vaší otázce a povaze vašich dat zvolíte metodu trénování. Procházením [dokumentace Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - kterou v tomto kurzu používáme - můžete prozkoumat mnoho způsobů, jak model trénovat. V závislosti na vašich zkušenostech možná budete muset vyzkoušet několik různých metod, abyste vytvořili nejlepší model. Pravděpodobně projdete procesem, kdy datoví vědci hodnotí výkon modelu tím, že mu předkládají neviděná data, kontrolují přesnost, předsudky a další problémy snižující kvalitu a vybírají nejvhodnější metodu trénování pro daný úkol.
+Podle otázky a povahy dat zvolíte vhodnou metodu pro trénování. Prozkoumáním [dokumentace Scikit-learn](https://scikit-learn.org/stable/user_guide.html) – kterou v tomto kurzu používáme – můžete objevovat mnoho způsobů, jak model trénovat. Podle zkušeností možná budete muset vyzkoušet několik různých metod, abyste vytvořili nejlepší model. Pravděpodobně se vydáte procesem, kdy datoví vědci hodnotí výkonnost modelu tak, že mu dávají neviděná data, kontrolují přesnost, zkreslení a další problémy s kvalitou a vybírají nejvhodnější metodu tréninku pro daný úkol.
-### Trénování modelu
+### Natrénujte model
-S trénovacími daty jste připraveni je „přizpůsobit“ k vytvoření modelu. Všimnete si, že v mnoha knihovnách ML najdete kód „model.fit“ - právě v tomto okamžiku zadáváte svou proměnnou vlastnosti jako pole hodnot (obvykle „X“) a cílovou proměnnou (obvykle „y“).
+Vybaveni tréninkovými daty jste připraveni 'přizpůsobit' model. V mnoha knihovnách strojového učení narazíte na kód 'model.fit' – právě tehdy posíláte vstupní proměnnou jako pole hodnot (obvykle 'X') a cílovou proměnnou (obvykle 'y').
-### Vyhodnocení modelu
+### Vyhodnoťte model
-Jakmile je proces trénování dokončen (u velkého modelu může trvat mnoho iterací, nebo „epoch“, než se vytrénuje), budete schopni vyhodnotit kvalitu modelu pomocí testovacích dat k posouzení jeho výkonu. Tato data jsou podmnožinou původních dat, která model dosud neanalyzoval. Můžete vytisknout tabulku metrik o kvalitě modelu.
+Jakmile je trénink kompletní (může to trvat mnoho iterací, nebo „epoch“, než se natrénuje velký model), můžete vyhodnotit kvalitu modelu použitím testovacích dat k měření jeho výkonnosti. Tato data jsou podmnožinou původních dat, která model předtím neviděl. Můžete si vypsat tabulku metrik kvality modelu.
🎓 **Přizpůsobení modelu**
-V kontextu strojového učení přizpůsobení modelu odkazuje na přesnost základní funkce modelu, když se snaží analyzovat data, která nezná.
+V kontextu strojového učení znamená přizpůsobení modelu přesnost základní funkce modelu při pokusu analyzovat data, která nezná.
-🎓 **Podtrénování** a **přetrénování** jsou běžné problémy, které snižují kvalitu modelu, protože model buď neodpovídá dostatečně dobře, nebo příliš dobře. To způsobuje, že model dělá predikce buď příliš úzce, nebo příliš volně ve vztahu k trénovacím datům. Přetrénovaný model predikuje trénovací data příliš dobře, protože se naučil detaily a šum dat příliš dobře. Podtrénovaný model není přesný, protože nedokáže přesně analyzovat ani trénovací data, ani data, která dosud „neviděl“.
+🎓 **Podtrénování** a **přetrénování** jsou běžné problémy snižující kvalitu modelu, kdy je model buď „málo přizpůsobený“ nebo „příliš přizpůsobený“. To způsobuje, že model dělá predikce, které jsou buď příliš přesné, nebo příliš volné vůči tréninkovým datům. Přetrénovaný model předpovídá tréninková data příliš dobře, protože detailně poznal data a šum. Podtrénovaný model není přesný, protože nedokáže správně analyzovat ani tréninková ani nová data, která dříve „neviděl“.
-
+
> Infografika od [Jen Looper](https://twitter.com/jenlooper)
## Ladění parametrů
-Jakmile je vaše počáteční trénování dokončeno, sledujte kvalitu modelu a zvažte jeho zlepšení úpravou jeho „hyperparametrů“. Přečtěte si více o tomto procesu [v dokumentaci](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
+Jakmile dokončíte počáteční trénink, zhodnoťte kvalitu modelu a zvažte jeho zlepšení laděním jeho „hyperparametrů“. Více o procesu si můžete přečíst [v dokumentaci](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
## Predikce
-Toto je okamžik, kdy můžete použít zcela nová data k otestování přesnosti vašeho modelu. V „aplikovaném“ nastavení ML, kde vytváříte webové nástroje pro použití modelu v produkci, může tento proces zahrnovat shromažďování uživatelských vstupů (například stisknutí tlačítka) k nastavení proměnné a jejímu odeslání modelu k inferenci nebo vyhodnocení.
+Toto je okamžik, kdy můžete použít zcela nová data, abyste otestovali přesnost modelu. V „aplikačním“ prostředí ML, kdy vytváříte webové nástroje k nasazení modelu do produkce, může tento proces zahrnovat sběr uživatelského vstupu (například stisk tlačítka) k nastavení proměnné a odeslání do modelu pro odhad nebo vyhodnocení.
-V těchto lekcích objevíte, jak použít tyto kroky k přípravě, vytvoření, testování, vyhodnocení a predikci - všechny úkony datového vědce a další, jak postupujete na své cestě stát se „full stack“ inženýrem ML.
+V těchto lekcích zjistíte, jak používat tyto kroky k přípravě, vytváření, testování, hodnocení a predikci – všechny úkony datového vědce a více, jak postupujete na cestě stát se „full stack“ ML inženýrem.
---
## 🚀Výzva
-Nakreslete diagram toku, který odráží kroky praktikanta ML. Kde se právě teď vidíte v procesu? Kde předpokládáte, že narazíte na obtíže? Co se vám zdá snadné?
+Nakreslete diagram znázorňující kroky praktikanta ML. Kde se nyní v procesu vidíte? Kde předpokládáte, že narazíte na potíže? Co vám přijde snadné?
-## [Kvíz po lekci](https://ff-quizzes.netlify.app/en/ml/)
+## [Kvíz po přednášce](https://ff-quizzes.netlify.app/en/ml/)
-## Přehled a samostudium
+## Revize & Samostudium
-Vyhledejte online rozhovory s datovými vědci, kteří diskutují o své každodenní práci. Zde je [jeden](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
+Vyhledejte online rozhovory s datovými vědci, kteří popisují svou každodenní práci. Zde je [jeden](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
-## Úkol
+## Zadání
-[Rozhovor s datovým vědcem](assignment.md)
+[Interview s datovým vědcem](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 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 se doporučuje 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.
\ No newline at end of file
+
+**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 na paměti, že automatické 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 závazný zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoli nedorozumění nebo chybné výklady vzniklé použitím tohoto překladu.
+
\ No newline at end of file
diff --git a/translations/cs/2-Regression/3-Linear/README.md b/translations/cs/2-Regression/3-Linear/README.md
index 8b4fe6c3e..4a03a49b6 100644
--- a/translations/cs/2-Regression/3-Linear/README.md
+++ b/translations/cs/2-Regression/3-Linear/README.md
@@ -1,98 +1,97 @@
-# Vytvoření regresního modelu pomocí Scikit-learn: regrese čtyřmi způsoby
+# Vytvoření regresního modelu pomocí Scikit-learn: čtyři způsoby regrese
## Poznámka pro začátečníky
-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.
+Lineární regrese se používá, když chceme předpovědět **číselnou hodnotu** (například cenu domu, teplotu nebo prodej).
+Funguje tak, že najde přímku, jež nejlépe reprezentuje vztah mezi vstupními rysy a výstupem.
-V této lekci se zaměříme na pochopení konceptu, než přejdeme k pokročilejším regresním technikám.
-
+V této lekci se zaměříme na pochopení konceptu, než prozkoumáme pokročilejší regresní techniky.
+
> 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á i v R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
-### Úvod
+### Úvod
-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.
+Dosud jste prozkoumali, co regrese je, na ukázkových datech ze sady dat o cenách dýní, kterou budeme používat po celou tuto lekci. Také jste je vizualizovali pomocí Matplotlib.
-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.
+Teď jste připraveni jít hlouběji do regrese pro strojové učení. Zatímco vizualizace vám umožňuje pochopit data, skutečná síla strojového učení spočívá v _trénování modelů_. Modely se trénují na historických datech, aby automaticky zachytily závislosti v datech, a umožňují tak předpovídat výsledky pro nová data, která model dosud neviděl.
-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.
+V této lekci se dozvíte více o dvou typech regrese: _základní lineární regresi_ a _polynomiální regresi_ společně s částí matematiky, která tyto techniky podporuje. Tyto modely nám umožní předpovídat ceny dýní v závislosti na různých vstupních datech.
[](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 shrnutí lineární regrese.
-> 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í.
+> V průběhu tohoto kurzu 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, 🧮 upozornění, diagramy a další učební pomůcky pro lepší pochopení.
### Předpoklady
-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.
+Měli byste již být seznámeni se strukturou dat o dýních, kterou zkoumáme. Najdete je přednačtená a předvyčištěná v souboru _notebook.ipynb_ k této lekci. V souboru je cena dýně zobrazena za koš. Ujistěte se, že dokážete spustit tyto notebooky v kernelu ve Visual Studio Code.
### Příprava
-Jako připomínku, tato data načítáte proto, abyste na ně mohli klást otázky.
+Pro připomenutí, načítáte tato data, abyste mohli klást otázky na jejich základě.
-- Kdy je nejlepší doba na nákup dýní?
+- Kdy je nejlepší čas na koupi dýní?
- Jakou cenu mohu očekávat za balení mini dýní?
-- Měl bych je koupit v koších o půl bushelu, nebo v krabici o 1 1/9 bushelu?
+- Měl bych je koupit v koších o půl koše, nebo v krabici o 1 1/9 koše?
+Pojďme do těchto dat hlouběji.
-Pojďme dále prozkoumat tato data.
+V předchozí lekci jste vytvořili Pandas dataframe a naplnili jej částí původní sady dat, kde jste standardizovali ceny podle koše. Tím jste ale získali pouze asi 400 datových bodů a pouze pro podzimní měsíce.
-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 připojeném k této lekci. Data jsou přednačtená a je vytvořen počáteční scatterplot pro údaje o měsících. Možná můžeme získat více detailů o povaze dat jejich dalším vyčištěním.
-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í regrese
-## Lineární regresní přímka
+Jak jste se naučili v Lekci 1, cílem úlohy 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.
+- **Provádí předpovědi**. Udělá přesné předpovědi, kde by nový datový bod mohl ležet ve vztahu k této přímce.
-- **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.
+Typickým přístupem pro **regresi nejmenších čtverců** je nakreslit právě takovou přímku. Termín "nejmenší čtverce" označuje proces minimalizace celkové chyby v našem modelu. Pro každý datový bod měříme svislou vzdálenost (nazývanou reziduál) mezi skutečným bodem a naší regresní přímkou.
-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.
+Tyto vzdálenosti umocňujeme na druhou ze dvou hlavních důvodů:
-Tyto vzdálenosti umocníme na druhou ze dvou hlavních důvodů:
+1. **Velikost místo směru:** Chceme, aby chyba -5 byla považována za stejně závažnou jako chyba +5. Umocnění na druhou všechny hodnoty zanesou na kladné čísla.
-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é.
+2. **Postihování odlehlých hodnot:** Umocnění na druhou dává větší váhu větším chybám, čímž nutí přímku být blíže k bodům, které jsou vzdálené.
-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é.
+Poté tyto umocněné hodnoty sečteme. Naším cílem je najít přesnou přímku, kde je součet těchto hodnot co nejmenší – odtud název "nejmenších čtverců".
-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):
+> **🧮 Ukaž mi matematiku**
+>
+> Tato čára, nazývaná _čára nejlepšího přizpůsobení_, může být vyjádřena [rovnicí](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> 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, který odpovídá hodnotě `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, což označuje hodnotu `Y` když `X = 0`.
>
>
>
-> Nejprve spočítejte směrnici `b`. Infografika od [Jen Looper](https://twitter.com/jenlooper)
+> Nejprve spočítáme směrnici `b`. Infografika od [Jen Looper](https://twitter.com/jenlooper)
>
-> 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.
+> Jinými slovy, a vzhledem k původní otázce naší dýňové datové sady: "předpovědět cenu dýně za koš podle měsíce", by `X` označovalo cenu a `Y` by odpovídalo měsíci prodeje.
>
->
+>
>
-> Spočítejte hodnotu `Y`. Pokud platíte kolem 4 dolarů, musí 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, 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`.
+> Matematika, která vypočítává čáru, musí ukázat směrnici přímky, která také závisí na průsečíku, tedy kde se `Y` nachází, když `X = 0`.
>
-> 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.
+> 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), kde můžete vidět, jak hodnoty ovlivňují přímku.
## Korelace
-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.
+Ještě jeden termín k pochopení je **koeficient korelace** mezi danými proměnnými X a Y. Pomocí scatterplotu můžete rychle vizualizovat tento koeficient. Graf s body rozloženými v úhledné přímce má vysokou korelaci, ale graf s body rozptýlenými všude mezi X a Y má nízkou korelaci.
-Dobrý lineární regresní model bude ten, který má vysoký (blíže jedné než nule) korelační koeficient pomocí metody nejmenších čtverců.
+Dobrý lineární regresní model bude ten, který má vysoký (blíže k 1 než k 0) koeficient korelace, využívající metodu regrese nejmenších čtverců s regresní čarou.
-✅ 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)?
+✅ Spusťte notebook připojený k této lekci a podívejte se na scatterplot měsíce a ceny. Zdá se, že data spojující měsíc a cenu u prodeje dýní mají podle vašeho vizuálního vnímání scatterplotu vysokou nebo nízkou korelaci? Změní se to, pokud místo `Month` použijete jemnější měření, například *den v roce* (tj. počet dnů od začátku roku)?
-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:
+V následujícím kódu budeme předpokládat, že jsme data vyčistili a získali dataframe pojmenovaný `new_pumpkins`, podobný následujícímu:
ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price
---|-------|-----------|---------|------|---------|-----------|------------|-------
@@ -102,13 +101,13 @@ 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 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:
+> 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 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 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.
+Teď, když máte pochopení matematiky za lineární regresí, vytvoříme regresní model, abychom zjistili, zda dokážeme předpovědět, která balení dýní budou mít nejlepší ceny. Někdo, kdo kupuje dýně pro slavnostní záhon, by mohl tyto informace chtít pro optimalizaci nákupů dýňových balení pro záhon.
## Hledání korelace
@@ -116,22 +115,22 @@ Nyní, když máte pochopení matematiky za lineární regresí, vytvoříme reg
> 🎥 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 v různých měsících vypadá takto:
+Z předchozí lekce jste asi viděli, že průměrná cena za jednotlivé měsíce vypadá takto:
-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:
+To naznačuje, že by tam měla být nějaká korelace, a můžeme zkusit vytrénovat lineární regresní model, který předpovídá vztah mezi `Month` a `Price`, nebo mezi `DayOfYear` a `Price`. Zde je scatterplot ukazující druhý vztah:
-
+
-Podívejme se, jestli existuje korelace pomocí funkce `corr`:
+Podíváme se, jestli korelace existuje 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 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:
+Zdá se, že korelace je dost malá, -0.15 podle `Month` a -0.17 podle `DayOfYear`, ale může tu být jiný důležitý vztah. Zdá se, že existují různé shluky cen odpovídající různým odrůdám dýní. Abychom tento předpoklad potvrdili, vykreslíme každou kategorii dýní pomocí jiné barvy. Předáním parametru `ax` funkci `scatter` můžeme všechny body vykreslit do stejného grafu:
```python
ax=None
@@ -141,34 +140,34 @@ for i,var in enumerate(new_pumpkins['Variety'].unique()):
ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)
```
-
+
-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:
+Naše šetření naznačuje, že odrůda má na celkovou cenu větší vliv než skutečné datum prodeje. Vidíme to na sloupcovém grafu:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
-
+
-Zaměříme se nyní pouze na jednu odrůdu dýní, 'pie type', a podíváme se, jaký vliv má datum na cenu:
+Teď se zaměřme jen na jednu odrůdu dýně, 'pie type', a uvidíme, jaký vliv má datum na cenu:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
-
+
-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.
+Pokud nyní vypočítáme korelaci mezi `Price` a `DayOfYear` pomocí funkce `corr`, dostaneme něco jako `-0.27` - což znamená, že smysl má trénovat prediktivní model.
-> 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:
+> Před trénováním lineárního regresního modelu 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 vhodné se zbavit všech prázdných buněk:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
-Jiný přístup by byl tyto prázdné hodnoty vyplnit průměrnými hodnotami z příslušného sloupce.
+Další přístup by byl vyplnit chybějící hodnoty průměrem odpovídajícího sloupce.
## Jednoduchá lineární regrese
@@ -176,7 +175,7 @@ Jiný přístup by byl tyto prázdné hodnoty vyplnit průměrnými hodnotami z
> 🎥 Klikněte na obrázek výše pro krátké video shrnutí lineární a polynomiální regrese.
-Pro trénink našeho modelu lineární regrese použijeme knihovnu **Scikit-learn**.
+Pro trénování našeho modelu lineární regrese použijeme knihovnu **Scikit-learn**.
```python
from sklearn.linear_model import LinearRegression
@@ -184,31 +183,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
-Začneme oddělením vstupních hodnot (vlastností) a očekávaného výstupu (štítku) do samostatných numpy polí:
+Začínáme tím, že oddělíme vstupní hodnoty (rysy) a očekávaný výstup (cílovou proměnnou) 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 `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.
+> Všimněte si, že jsme museli použít `reshape` na vstupní data, aby je balíček Linear Regression správně pochopil. Lineární regrese očekává jako vstup 2D pole, 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 s tvarem N×1, kde N je velikost datasetu.
-Poté musíme data rozdělit na trénovací a testovací sady, abychom mohli ověřit náš model po tréninku:
+Pak musíme data rozdělit na trénovací a testovací dataset, abychom mohli po trénování model ověřit:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
-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`:
+Nakonec samotné trénování modelu lineární regrese zabere jen dva řádky kódu. Definujeme objekt `LinearRegression` a přizpůsobíme jej našim datům pomocí metody `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
-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.
+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 zde pouze jeden koeficient, který by měl být kolem hodnoty `-0.017`. To znamená, že ceny se zdají mírně snižovat v čase, ale nikoliv příliš, přibližně o 2 centy za den. Můžeme také získat průsečík regrese s osou Y pomocí `lin_reg.intercept_` - v našem případě bude kolem hodnoty `21`, což indikuje cenu na začátku roku.
-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.
+Abychom viděli, jak přesný náš model je, můžeme predikovat ceny na testovacích datech a pak změřit, jak blízko jsou naše predikce k očekávaným hodnotám. To lze udělat pomocí metriky střední kvadratické chyby (RMSE), což je odmocnina z průměru všech čtvercových rozdílů mezi očekávanou a predikovanou hodnotou.
```python
pred = lin_reg.predict(X_test)
@@ -217,36 +216,36 @@ 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 přibližně 17 %. Ne příliš 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 ~17 %. Není to moc 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 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é.
+Pokud je hodnota 0, znamená to, že model nezohledňuje vstupní data a funguje 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é.
-Můžeme také nakreslit 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 společně 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)
```
-
+
## Polynomická regrese
-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.
+Dalším typem lineární regrese je polynomická regrese. Zatímco někdy existuje lineární vztah mezi proměnnými – čím větší je dýně objemem, tím vyšší je cena – jindy tyto vztahy nelze znázornit jako rovinu nebo přímku.
-✅ 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
+✅ Zde jsou [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 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.
+Podívejte se znovu na vztah mezi Datem a Cenou. Zdá se vám, že by tento bodový graf nutně měl být analyzován přímkou? Nemohou ceny kolísat? V takovém případě můžete zkusit polynomickou regresi.
-✅ Polynomické výrazy jsou matematické výrazy, které mohou sestávat z jedné nebo více proměnných a koeficientů.
+✅ Polynomy jsou matematické výrazy, které mohou obsahovat jednu nebo více proměnných a koeficientů.
-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.
+Polynomická regrese vytváří zakřivenou čáru, která lépe sedí na nelinární data. V našem případě, pokud do vstupních dat zahrneme proměnnou `DayOfYear` umocněnou na druhou, měli bychom být schopni naše data vhodně přizpůsobit parabolickou křivkou, která bude mít minimum v určitém bodě během roku.
-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:
+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 dohromady. **Pipeline** je řetězec **odhadovačů**. V našem případě vytvoříme pipeline, která nejprve přidá polynomické rysy do modelu a poté naučí regresi:
```python
from sklearn.preprocessing import PolynomialFeatures
@@ -257,36 +256,58 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
-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`2, ale pokud máme dvě vstupní proměnné X a Y, přidá to X2, XY a Y2. Můžeme také použít polynomy vyššího stupně, pokud chceme.
+Použití `PolynomialFeatures(2)` znamená, že zahrneme všechny polynomy druhého stupně z vstupních dat. V našem případě to bude znamenat pouze `DayOfYear`2, ale pokud máme dvě vstupní proměnné X a Y, přidá to X2, XY a Y2. Můžeme použít i polynomy vyššího stupně, pokud chceme.
+
+Pipeline lze používat stejným způsobem jako původní objekt `LinearRegression`, tj. můžeme `fit` pipeline a pak použít `predict` pro získání predikcí:
+
+```python
+pred = pipeline.predict(X_test)
+
+rmse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+Pro vykreslení hladké aproximační křivky použijeme `np.linspace` k vytvoření rovnoměrného rozsahu vstupních hodnot, místo přímého vykreslení na neuspořádaná testovací data (což by vedlo k zubaté linii):
+
+```python
+X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)
+y_range = pipeline.predict(X_range)
+
+plt.scatter(X_test, y_test)
+plt.plot(X_range, y_range)
+```
-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:
+Zde je graf zobrazující testovací data a aproximační křivku:
-
+
-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!
+Použitím polynomické regrese můžeme dosáhnout mírně nižší RMSE a vyšší determinace, ale ne významně. Musíme vzít v úvahu další vlastnosti!
-> Můžete vidět, že minimální ceny dýní se zaznamenávají někde kolem Halloweenu. Jak byste to vysvětlili?
+> Můžete vidět, že nejnižší ceny dýní jsou pozorovány 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ýň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!
+🎃 Gratulujeme, právě jste vytvořili model, který může pomoci předpovědět cenu dýně na koláč. Pravděpodobně byste mohli stejný postup opakovat pro všechny typy dýní, ale to by bylo zdlouhavé. Naučme se nyní, jak do našeho modelu vzít v úvahu odrůdu dýně!
## Kategorie vlastností
-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í**.
+V ideálním světě chceme být schopni předpovědět ceny pro různé odrůdy dýní pomocí stejného modelu. Nicméně sloupec `Variety` se liší od sloupců jako `Month`, protože obsahuje číslicové hodnoty. Takové sloupce se nazývají **kategoriální**.
[](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 přehled použití kategoriálních vlastností.
+> 🎥 Klikněte na obrázek výše pro krátké video o použití kategoriálních vlastností.
Zde vidíte, jak průměrná cena závisí na odrůdě:
-
+
-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:
+Abychom vzali odrůdu v úvahu, musíme ji nejprve převést do číselné formy, tedy **zakódovat**. Existuje několik způsobů, jak to udělat:
-* 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.
+* 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 není nejlepší nápad pro lineární regresi, protože lineární regrese bere skutečnou numerickou hodnotu indexu a přičítá ji do výsledku vynásobenou nějakým koeficientem. V našem případě je vztah mezi číslem indexu a cenou evidentně nelineární, i když zajistíme, že indexy jsou seřazeny určitým způsobem.
+* **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 odpovídající řádek patří dané odrůdě, a `0` jinak. To znamená, že v lineární regresi budou čtyři koeficienty, jeden pro každou odrůdu dýně, zodpovědný za „počáteční cenu“ (nebo spíše „přídavnou cenu“) pro tu která odrůdu.
-Níže uvedený kód ukazuje, jak můžeme one-hot kódovat odrůdu:
+Níže uvedený kód ukazuje, jak můžeme použít one-hot encoding pro odrůdu:
```python
pd.get_dummies(new_pumpkins['Variety'])
@@ -303,14 +324,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
-K natrénování lineární regrese s one-hot kódovanou odrůdou jako vstupem stačí správně inicializovat data `X` a `y`:
+Pro trénování lineární regrese s použitím one-hot zakódované odrůdy jako vstupu 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 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`:
+Zbytek kódu je stejný jako výše použité pro trénování lineární regrese. Pokud to vyzkoušíte, uvidíte, že střední čtvercová chyba je přibližně stejná, ale koeficient determinace je mnohem vyšší (~77 %). Pro ještě přesnější predikce můžeme vzít v potaz více kategoriálních vlastností, stejně jako numerické vlastnosti, jako `Month` nebo `DayOfYear`. Pro získání jedné velké matice vlastností můžeme použít `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@@ -320,68 +341,68 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
-Zde také vezmeme v úvahu `City` a typ `Package`, což nám dává MSE 2.84 (10 %) a determinaci 0.94!
+Zde také zahrnujeme `City` a typ `Package`, což nám dává RMSE 2.84 (10,5 %), a determinaci 0.94!
## Spojení všeho dohromady
-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í:
+Pro vytvoření nejlepšího modelu můžeme použít kombinovaná data (kategoriální zakódovaná + numerická) z výše uvedeného příkladu spolu s polynomickou regresí. Zde je kompletní kód pro vaši pohodlnost:
```python
-# nastavit tréninková data
+# nastavte tréninková data
X = pd.get_dummies(new_pumpkins['Variety']) \
.join(new_pumpkins['Month']) \
.join(pd.get_dummies(new_pumpkins['City'])) \
.join(pd.get_dummies(new_pumpkins['Package']))
y = new_pumpkins['Price']
-# provést rozdělení na tréninkovou a testovací sadu
+# proveďte 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 trénovat pipeline
+# nastavte a vytrénujte pipeline
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
-# předpovědět výsledky pro testovací data
+# predikujte výsledky pro testovací data
pred = pipeline.predict(X_test)
-# 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}%)')
+# vypočítejte RMSE a koeficient determinace
+rmse = mean_squared_error(y_test, pred, squared=False)
+print(f'RMSE: {rmse:3.3} ({rmse/pred.mean()*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
-Toto by nám mělo dát nejlepší koeficient determinace téměř 97 % a MSE=2.23 (~8% chyba předpovědi).
+To by nám mělo dát nejlepší koeficient determinace téměř 97 % a RMSE=2.23 (~8 % chyba predikce).
-| Model | MSE | Determinace |
+| Model | RMSE | Determinace |
|-------|-----|-------------|
| Lineární `DayOfYear` | 2.77 (17,2 %) | 0.07 |
-| Polynomický `DayOfYear` | 2.73 (17,0 %) | 0.08 |
+| 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šechny vlastnosti lineární | 2.84 (10,5 %) | 0.94 |
+| Všechny vlastnosti polynomická | 2.23 (8,25 %) | 0.97 |
-🏆 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ýborně! V jedné lekci jste vytvořili čtyři regresní modely a zlepšili kvalitu modelu na 97 %. V poslední čá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 zjistěte, jak korelace odpovídá přesnosti modelu.
+Vyzkoušejte několik různých proměnných v tomto notebooku a zjistěte, jak korelace odpovídá přesnosti modelu.
-## [Kvíz po přednášce](https://ff-quizzes.netlify.app/en/ml/)
+## [Kvíz po lekci](https://ff-quizzes.netlify.app/en/ml/)
-## Přezkum a samostudium
+## Recenze & samostatné studium
-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)
+V této lekci jsme se naučili o lineární regresi. Existují i další důležité typy regrese. Přečtěte si o technikách Stepwise, Ridge, Lasso a Elasticnet. Dobrým kurzem k dalšímu studiu je [Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
-## Zadání
+## Zadání
-[Postavte model](assignment.md)
+[Vytvořte model](assignment.md)
---
-**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.
+**Upozornění**:
+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 automatické 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 důležité informace se doporučuje profesionální lidský překlad. Nejsme zodpovědní za jakákoliv nedorozumění nebo mylné výklady vyplývající z použití tohoto překladu.
\ No newline at end of file
diff --git a/translations/cs/2-Regression/3-Linear/solution/notebook.ipynb b/translations/cs/2-Regression/3-Linear/solution/notebook.ipynb
index 5d619e99c..df91a9f16 100644
--- a/translations/cs/2-Regression/3-Linear/solution/notebook.ipynb
+++ b/translations/cs/2-Regression/3-Linear/solution/notebook.ipynb
@@ -4,14 +4,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Lineární a polynomiální regrese pro stanovení cen dýní - Lekce 3\n",
+ "## Lineární a polynomiální regrese pro oceňování dýní - Lekce 3\n",
"\n",
"Načtěte potřebné knihovny a dataset. Převést data na dataframe obsahující podmnožinu dat:\n",
"\n",
- "- Získat pouze dýně oceněné podle množství na bušl\n",
+ "- Získat pouze dýně oceněné za bušl\n",
"- Převést datum na měsíc\n",
"- Vypočítat cenu jako průměr vysokých a nízkých cen\n",
- "- Převést cenu tak, aby odrážela stanovení ceny podle množství na bušl\n"
+ "- Převést cenu tak, aby odrážela ocenění podle množství bušl\n"
]
},
{
@@ -377,7 +377,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Bodový graf nám připomíná, že máme údaje pouze od srpna do prosince. Pravděpodobně potřebujeme více dat, abychom mohli vyvozovat závěry lineárním způsobem.\n"
+ "Bodový graf nám připomíná, že máme data pouze za měsíce od srpna do prosince. Pravděpodobně potřebujeme více dat, abychom mohli činit závěry lineárním způsobem.\n"
]
},
{
@@ -447,7 +447,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "Podívejme se, zda existuje korelace:\n"
+ ]
},
{
"cell_type": "code",
@@ -472,7 +474,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Vypadá to, že korelace je poměrně malá, ale existuje nějaký jiný důležitější vztah - protože cenové body v grafu výše se zdají mít několik odlišných shluků. Udělejme graf, který ukáže různé odrůdy dýní:\n"
+ "Vypadá to, že korelace je poměrně malá, ale existuje nějaký jiný důležitější vztah – protože cenové body v grafu výše se zdají mít několik odlišných shluků. Vytvořme graf, který ukáže různé odrůdy dýní:\n"
]
},
{
@@ -535,7 +537,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "Prozatím se soustřeďme pouze na jednu odrůdu - **typ koláče**.\n"
+ ]
},
{
"cell_type": "code",
@@ -662,7 +666,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Sklon přímky lze určit z koeficientů lineární regrese:\n"
+ "Směrnici přímky lze určit z koeficientů lineární regrese:\n"
]
},
{
@@ -689,7 +693,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Můžeme použít natrénovaný model k predikci ceny:\n"
+ "Můžeme použít natrénovaný model k předpovědi ceny:\n"
]
},
{
@@ -720,9 +724,9 @@
"source": [
"### Polynomická regrese\n",
"\n",
- "Někdy je vztah mezi vlastnostmi a výsledky přirozeně nelineární. Například ceny dýní mohou být vysoké v zimě (měsíce=1,2), poté klesnout během léta (měsíce=5-7) a následně opět vzrůst. Lineární regrese není schopna tento vztah přesně zachytit.\n",
+ "Někdy je vztah mezi rysy a výsledky inherentně nelineární. Například ceny dýní mohou být vysoké v zimě (měsíce=1,2), pak během léta (měsíce=5-7) klesnout a poté opět vzrůst. Lineární regrese tuto závislost nedokáže přesně zachytit.\n",
"\n",
- "V takovém případě můžeme zvážit přidání dalších vlastností. Jednoduchým způsobem je použití polynomů z vstupních vlastností, což vede k **polynomické regresi**. Ve Scikit Learn můžeme automaticky předpočítat polynomické vlastnosti pomocí pipeline:\n"
+ "V takovém případě můžeme zvážit přidání dalších rysů. Jednoduchým způsobem je použití polynomů vstupních rysů, což by vedlo k **polynomické regresi**. Ve Scikit Learn můžeme automaticky předpočítat polynomické rysy pomocí pipeline: \n"
]
},
{
@@ -777,22 +781,25 @@
"score = pipeline.score(X_train,y_train)\n",
"print('Model determination: ', score)\n",
"\n",
- "plt.scatter(X_test,y_test)\n",
- "plt.plot(sorted(X_test),pipeline.predict(sorted(X_test)))"
+ "X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)\n",
+ "y_range = pipeline.predict(X_range)\n",
+ "\n",
+ "plt.scatter(X_test, y_test)\n",
+ "plt.plot(X_range, y_range)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Kódování odrůd\n",
+ "### Varianty kódování\n",
"\n",
- "V ideálním světě bychom chtěli být schopni předpovídat ceny různých odrůd dýní pomocí stejného modelu. Abychom mohli zohlednit odrůdu, musíme ji nejprve převést do číselné podoby, tedy **zakódovat**. Existuje několik způsobů, jak to udělat:\n",
+ "V ideálním světě chceme být schopni předpovídat ceny různých odrůd dýní pomocí stejného modelu. Abychom vzali odrůdu v úvahu, nejprve ji musíme převést do číselné podoby, tedy **zakódovat**. Existuje několik způsobů, jak to lze provést:\n",
"\n",
- "* Jednoduché číselné kódování, které vytvoří tabulku různých odrůd a poté nahradí název odrůdy indexem v této tabulce. To není nejlepší nápad pro lineární regresi, protože lineární regrese bere číselnou hodnotu indexu v úvahu, a číselná hodnota pravděpodobně nebude numericky korelovat s cenou.\n",
- "* One-hot kódování, které nahradí sloupec `Variety` čtyřmi různými sloupci, každý pro jednu odrůdu, které budou obsahovat hodnotu 1, pokud odpovídající řádek patří dané odrůdě, a 0 v opačném případě.\n",
+ "* Jednoduché číselné kódování, které vytvoří tabulku různých odrůd a pak nahradí název odrůdy jejím indexem v této tabulce. To není nejlepší nápad pro lineární regresi, protože lineární regrese bere číselnou hodnotu indexu v potaz a číselná hodnota pravděpodobně nebude numericky korelovat s cenou.\n",
+ "* One-hot kódování, které nahradí sloupec `Variety` čtyřmi různými sloupci, po jednom pro každou odrůdu, které budou obsahovat 1, pokud příslušný řádek odpovídá dané odrůdě, a 0 jinak.\n",
"\n",
- "Níže uvedený kód ukazuje, jak můžeme provést one-hot kódování odrůdy:\n"
+ "Níže uvedený kód ukazuje, jak lze odrůdu zakódovat pomocí one-hot kódování:\n"
]
},
{
@@ -940,9 +947,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Lineární regrese na odrůdě\n",
+ "### Lineární regrese podle odrůdy\n",
"\n",
- "Nyní použijeme stejný kód jako výše, ale místo `DayOfYear` použijeme naši one-hot-enkódovanou odrůdu jako vstup:\n"
+ "Nyní použijeme stejný kód jako výše, ale místo `DayOfYear` použijeme jako vstup naši one-hot zakódovanou odrůdu:\n"
]
},
{
@@ -990,7 +997,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Můžeme také zkusit použít jiné funkce stejným způsobem a zkombinovat je s číselnými funkcemi, jako jsou `Month` nebo `DayOfYear`:\n"
+ "Můžeme také zkusit použít jiné vlastnosti stejným způsobem a kombinovat je s číselnými vlastnostmi, jako například `Month` nebo `DayOfYear`:\n"
]
},
{
@@ -1023,7 +1030,7 @@
"source": [
"### Polynomická regrese\n",
"\n",
- "Polynomická regrese může být také použita s kategoriálními prvky, které jsou zakódovány pomocí one-hot encodingu. Kód pro trénování polynomické regrese by byl v podstatě stejný jako ten, který jsme viděli výše.\n"
+ "Polynomická regrese může být také použita s kategoriálními rysy, které jsou one-hot kódované. Kód pro trénování polynomické regrese by byl v podstatě stejný jako ten, který jsme viděli výše.\n"
]
},
{
@@ -1070,7 +1077,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n---\n\n**Prohlášení**: \nTento dokument byl přeložen pomocí služby pro automatický překlad [Co-op Translator](https://github.com/Azure/co-op-translator). I když se snažíme o co největší 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 závazný zdroj. Pro důležité informace doporučujeme profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu.\n"
+ "---\n\n\n**Upozornění**: \nTento 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 automatické překlady mohou obsahovat chyby nebo nepřesnosti. Originální 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ékoliv nedorozumění nebo špatné interpretace vyplývající z použití tohoto překladu.\n\n"
]
}
],
@@ -1100,13 +1107,7 @@
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
- "orig_nbformat": 2,
- "coopTranslator": {
- "original_hash": "d77bd89ae7e79780c68c58bab91f13f8",
- "translation_date": "2025-09-04T06:19:01+00:00",
- "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
- "language_code": "cs"
- }
+ "orig_nbformat": 2
},
"nbformat": 4,
"nbformat_minor": 2
diff --git a/translations/hu/.co-op-translator.json b/translations/hu/.co-op-translator.json
index 2c2a62960..47a5892e8 100644
--- a/translations/hu/.co-op-translator.json
+++ b/translations/hu/.co-op-translator.json
@@ -36,8 +36,8 @@
"language_code": "hu"
},
"1-Introduction/4-techniques-of-ML/README.md": {
- "original_hash": "9d91f3af3758fdd4569fb410575995ef",
- "translation_date": "2025-09-05T16:03:22+00:00",
+ "original_hash": "84b1715a6be62ef1697351dcc5d7b567",
+ "translation_date": "2026-04-26T19:02:43+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "hu"
},
@@ -90,8 +90,8 @@
"language_code": "hu"
},
"2-Regression/3-Linear/README.md": {
- "original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
- "translation_date": "2026-04-20T19:29:15+00:00",
+ "original_hash": "8b776e731c35b171d316d01d0e7b1369",
+ "translation_date": "2026-04-26T19:02:03+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "hu"
},
@@ -107,6 +107,12 @@
"source_file": "2-Regression/3-Linear/solution/Julia/README.md",
"language_code": "hu"
},
+ "2-Regression/3-Linear/solution/notebook.ipynb": {
+ "original_hash": "6781223ffbe8cfdaa38d0200f08e1288",
+ "translation_date": "2026-04-26T18:59:07+00:00",
+ "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
+ "language_code": "hu"
+ },
"2-Regression/4-Logistic/README.md": {
"original_hash": "abf86d845c84330bce205a46b382ec88",
"translation_date": "2025-09-05T15:15:21+00:00",
diff --git a/translations/hu/1-Introduction/4-techniques-of-ML/README.md b/translations/hu/1-Introduction/4-techniques-of-ML/README.md
index 99471ee9c..8f2878be4 100644
--- a/translations/hu/1-Introduction/4-techniques-of-ML/README.md
+++ b/translations/hu/1-Introduction/4-techniques-of-ML/README.md
@@ -1,123 +1,125 @@
# Gépi tanulás technikái
-A gépi tanulási modellek és az általuk használt adatok létrehozása, használata és karbantartása nagyon eltérő folyamat, mint sok más fejlesztési munkafolyamat. Ebben a leckében eloszlatjuk a folyamat körüli homályt, és bemutatjuk azokat a fő technikákat, amelyeket ismerned kell. A következőket fogod megtanulni:
+A gépi tanulási modellek és az általuk használt adatok felépítésének, használatának és karbantartásának folyamata nagyon eltér sok más fejlesztési munkafolyamattól. Ebben a leckében ezt a folyamatot megértjük, és áttekintjük a legfontosabb technikákat, amelyeket ismerned kell. Meg fogod érteni:
-- Megérteni a gépi tanulás alapvető folyamatait.
-- Felfedezni az alapfogalmakat, mint például a „modellek”, „előrejelzések” és „tanító adatok”.
+- A gépi tanulást alátámasztó folyamatokat magas szinten.
+- Alapfogalmakat, például „modellek”, „előrejelzések” és „képzési adatok”.
-## [Előzetes kvíz](https://ff-quizzes.netlify.app/en/ml/)
+## [Előadás előtti kvíz](https://ff-quizzes.netlify.app/en/ml/)
[](https://youtu.be/4NGM0U2ZSHU "Gépi tanulás kezdőknek - Gépi tanulás technikái")
-> 🎥 Kattints a fenti képre egy rövid videóért, amely bemutatja ezt a leckét.
+> 🎥 Kattints a fenti képre egy rövid videó megtekintéséhez, amely bemutatja ezt a leckét.
## Bevezetés
-Magas szinten nézve a gépi tanulási (ML) folyamatok létrehozása több lépésből áll:
+Magas szinten a gépi tanulási (ML) folyamatok megalkotásának művészete több lépésből áll:
-1. **Határozd meg a kérdést**. A legtöbb ML folyamat egy olyan kérdés feltevésével kezdődik, amelyet nem lehet egyszerű feltételes programmal vagy szabályalapú motorral megválaszolni. Ezek a kérdések gyakran az adatok gyűjteménye alapján történő előrejelzések körül forognak.
-2. **Gyűjtsd össze és készítsd elő az adatokat**. Ahhoz, hogy megválaszolhasd a kérdésedet, adatokra van szükséged. Az adatok minősége és néha mennyisége határozza meg, hogy mennyire jól tudod megválaszolni az eredeti kérdésedet. Az adatok vizualizálása fontos része ennek a fázisnak. Ez a fázis magában foglalja az adatok tanító és tesztelő csoportokra való felosztását a modell építéséhez.
-3. **Válassz egy tanítási módszert**. A kérdésed és az adataid jellege alapján ki kell választanod, hogyan szeretnéd tanítani a modellt, hogy az a legjobban tükrözze az adataidat, és pontos előrejelzéseket készítsen. Ez az ML folyamat azon része, amely specifikus szakértelmet igényel, és gyakran jelentős mennyiségű kísérletezést.
-4. **Tanítsd a modellt**. A tanító adataidat használva különböző algoritmusok segítségével tanítasz egy modellt, hogy felismerje az adatokban rejlő mintázatokat. A modell belső súlyokat használhat, amelyeket úgy lehet beállítani, hogy bizonyos adatokat előnyben részesítsen másokkal szemben, hogy jobb modellt építsen.
-5. **Értékeld a modellt**. Az összegyűjtött adatokból származó, korábban nem látott adatok (tesztelő adatok) segítségével ellenőrzöd, hogyan teljesít a modell.
-6. **Paraméterek finomhangolása**. A modell teljesítménye alapján újra elvégezheted a folyamatot különböző paraméterek vagy változók használatával, amelyek az algoritmusok viselkedését szabályozzák.
-7. **Előrejelzés**. Új bemenetek segítségével tesztelheted a modell pontosságát.
+1. **Döntsd el a kérdést**. A legtöbb ML folyamat egy olyan kérdéssel kezdődik, amelyre nem lehet egyszerű feltételes programmal vagy szabályalapú motorral választ adni. Ezek a kérdések gyakran adatok alapján történő előrejelzésekhez kapcsolódnak.
+2. **Gyűjtsd össze és készítsd elő az adatokat**. Ahhoz, hogy válaszolni tudj a kérdésedre, adatokra van szükséged. Az adatok minősége és néha mennyisége fogja meghatározni, hogy milyen jól tudod megválaszolni az eredeti kérdést. Az adatvizualizáció fontos része ennek a fázisnak. Ez a szakasz az adatok képzési és tesztelési csoportokra való felosztását is magában foglalja a modell felépítéséhez.
+3. **Válassz képzési módszert**. A kérdésedtől és az adatok természetétől függően ki kell választanod, hogy hogyan szeretnél egy modellt tanítani, hogy az a legjobban tükrözze az adatokat és pontos előrejelzéseket adjon. Ez a gépi tanulási folyamat azon része, amely különleges szakértelmet igényel, és gyakran jelentős kísérletezést.
+4. **Tanítsd meg a modellt**. A képzési adataid felhasználásával különböző algoritmusok segítségével tanítasz egy modellt, hogy felismerje az adatmintázatokat. A modell belső súlyokat alkalmazhat, amelyeket beállíthatsz, hogy bizonyos részeit az adatoknak előnyben részesítse a jobb modell érdekében.
+5. **Értékeld ki a modellt**. Soha nem látott adatokkal (tesztelési adatokkal) ellenőrzöd, hogyan teljesít a modell.
+6. **Paraméterhangolás**. A modell teljesítménye alapján újra végrehajthatod a folyamatot eltérő paraméterekkel, vagyis változókkal, amelyek irányítják az algoritmusok viselkedését a modell képzése során.
+7. **Előrejelzés**. Új bemenetek használata a modell pontosságának tesztelésére.
-## Milyen kérdést tegyünk fel?
+## Milyen kérdést tegyünk fel
-A számítógépek különösen ügyesek az adatokban rejtett mintázatok felfedezésében. Ez a képesség nagyon hasznos a kutatók számára, akik olyan kérdéseket tesznek fel egy adott területen, amelyeket nem lehet könnyen megválaszolni feltételes szabálymotor létrehozásával. Például egy aktuáriusi feladat esetén egy adatkutató képes lehet kézzel készített szabályokat alkotni a dohányosok és nem dohányosok halálozási arányáról.
+A számítógépek különösen jók az adatokban rejtett minták felfedezésében. Ez a képesség nagyon hasznos a kutatók számára, akik olyan kérdéseket tesznek fel adott területen, amelyekre nem könnyű válaszolni feltételes szabálymotor készítésével. Egy aktuáriusi feladat esetén például egy adattudós kézzel készített szabályokat dolgozhat ki a dohányzók és nem dohányzók halálozási arányára.
-Ha azonban sok más változót is figyelembe veszünk, egy ML modell hatékonyabb lehet a jövőbeli halálozási arányok előrejelzésére a korábbi egészségügyi előzmények alapján. Egy vidámabb példa lehet az áprilisi időjárás előrejelzése egy adott helyen olyan adatok alapján, mint szélesség, hosszúság, éghajlatváltozás, óceán közelsége, jet stream mintázatok és még sok más.
+Amikor azonban sok más változót is figyelembe vesznek, egy ML modell hatékonyabb lehet a jövőbeli halálozási arány előrejelzésében a múltbeli egészségi adatok alapján. Egy derűsebb példa lehet az áprilisi időjárás előrejelzése egy adott területen, figyelembe véve az adatokat, például a szélességi és hosszúsági fokot, az éghajlatváltozást, a tenger közelségét, a sugáráramlat mintázatait és még sok mást.
-✅ Ez a [prezentáció](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) az időjárási modellekről történelmi perspektívát nyújt az ML időjárás-elemzésben való használatáról.
+✅ Ez az [időjárási modellekről szóló diákkészlet](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) történelmi perspektívát kínál a gépi tanulás időjárási elemzésben való alkalmazásához.
-## Modellépítés előtti feladatok
+## Előkészületek
-Mielőtt elkezdenéd a modell építését, számos feladatot kell elvégezned. Ahhoz, hogy tesztelhesd a kérdésedet és hipotézist alkothass a modell előrejelzései alapján, azonosítanod és konfigurálnod kell néhány elemet.
+Mielőtt elkezdenéd a modell építését, több feladatot el kell végezned. A kérdés teszteléséhez, illetve a modell előrejelzésein alapuló hipotézis kialakításához azonosítanod és konfigurálnod kell több elemet.
### Adatok
-Ahhoz, hogy bármilyen bizonyossággal megválaszolhasd a kérdésedet, megfelelő mennyiségű és típusú adatra van szükséged. Ezen a ponton két dolgot kell tenned:
+Ahhoz, hogy bármilyen bizonyossággal válaszolni tudj a kérdésedre, megfelelő mennyiségű és megfelelő típusú adatra van szükséged. Ebben a pontban két dolgot kell tenned:
-- **Adatok gyűjtése**. Az előző leckében tárgyalt adatelemzési méltányosságot szem előtt tartva gyűjtsd össze az adataidat gondosan. Légy tisztában az adatok forrásaival, az esetleges benne rejlő torzításokkal, és dokumentáld az eredetüket.
-- **Adatok előkészítése**. Az adatok előkészítési folyamatának több lépése van. Lehet, hogy össze kell gyűjtened és normalizálnod kell az adatokat, ha különböző forrásokból származnak. Az adatok minőségét és mennyiségét különböző módszerekkel javíthatod, például szöveges adatok számokká alakításával (ahogy a [Klaszterezés](../../5-Clustering/1-Visualize/README.md) során tesszük). Új adatokat is generálhatsz az eredeti alapján (ahogy a [Kategorizálás](../../4-Classification/1-Introduction/README.md) során tesszük). Az adatokat tisztíthatod és szerkesztheted (ahogy a [Webalkalmazás](../../3-Web-App/README.md) lecke előtt tesszük). Végül lehet, hogy véletlenszerűsítened és keverned kell az adatokat, az alkalmazott tanítási technikák függvényében.
+- **Adatgyűjtés**. A korábbi adatelemzési igazságosságról szóló leckére emlékezve, gyűjtsd az adatokat gondosan. Legyél tudatában az adatok forrásának, esetleges torzításainak, és dokumentáld azok eredetét.
+- **Adatelőkészítés**. Az adatok előkészítése több lépést foglal magában. Összeszítheted és normalizálhatod az adatokat, ha azok különböző forrásból származnak. Javíthatod az adatok minőségét és mennyiségét különböző módszerekkel, például sztringek számokká konvertálásával (ahogy a [Klaszterezés](../../5-Clustering/1-Visualize/README.md) leckében tesszük). Új adatokat is generálhatsz az eredeti alapján (ahogy a [Klasszifikáció](../../4-Classification/1-Introduction/README.md) leckében is). Az adatokat tisztíthatod és szerkesztheted (ahogyan a [Web App](../../3-Web-App/README.md) leckéhez előkészítjük). Végül lehet, hogy véletlenszerűvé kell tenned, és át kell keverned az adatot a választott képzési technikáidtól függően.
-✅ Miután összegyűjtötted és feldolgoztad az adatokat, szánj egy pillanatot arra, hogy megnézd, az adatok formája lehetővé teszi-e számodra a tervezett kérdés megválaszolását. Lehet, hogy az adatok nem teljesítenek jól az adott feladatban, ahogy azt a [Klaszterezés](../../5-Clustering/1-Visualize/README.md) leckékben felfedezzük!
+✅ Az adatok összegyűjtése és feldolgozása után szánj egy pillanatot arra, hogy megnézd, az adatok formája megfelel-e a szándékolt kérdés megválaszolásához. Lehet, hogy az adat nem fog jól teljesíteni az adott feladatban, ahogy azt a [Klaszterezés](../../5-Clustering/1-Visualize/README.md) leckéinkben tapasztaljuk!
### Jellemzők és cél
-Egy [jellemző](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) az adataid mérhető tulajdonsága. Sok adatállományban ez oszlopfejlécként jelenik meg, például „dátum”, „méret” vagy „szín”. A jellemző változók, amelyeket általában `X`-ként jelölünk a kódban, azokat a bemeneti változókat képviselik, amelyeket a modell tanítására használunk.
+A [jellemző](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) az adataid mérhető tulajdonsága. Sok adatkészlet esetén oszlopfejlécként jelenik meg, például 'dátum', 'méret' vagy 'szín'. A jellemző változó, amelyet általában `X`-ként jelölünk a kódban, az a bemeneti változó, amelyet a modell betanításához használnak.
-A cél az, amit megpróbálsz előre jelezni. A célt általában `y`-ként jelöljük a kódban, és az adatokkal kapcsolatos kérdésedre adott választ képviseli: decemberben milyen **színű** tökök lesznek a legolcsóbbak? San Franciscóban melyik környékeken lesz a legjobb az ingatlanok **ára**? Néha a célt címke attribútumnak is nevezik.
+A cél az, amit megpróbálsz előrejelezni. A célt, amelyet általában `y`-ként jelölnek a kódban, a kérdésed megválaszolására használt válasznak tekintjük: decemberben milyen **színű** lesz a legolcsóbb tök? San Franciscóban melyik városrészeknek lesz a legjobb ingatlan **ára**? Néha a célt címkeattribútumként is emlegetik.
-### Jellemző változó kiválasztása
+### Válaszd ki a jellemző változót
-🎓 **Jellemzők kiválasztása és kinyerése** Hogyan döntöd el, melyik változót válaszd ki a modell építésekor? Valószínűleg végig fogsz menni egy jellemzők kiválasztási vagy kinyerési folyamatán, hogy kiválaszd a legmegfelelőbb változókat a legjobb teljesítményű modellhez. Ezek azonban nem ugyanazok: „A jellemzők kinyerése új jellemzőket hoz létre az eredeti jellemzők függvényeiből, míg a jellemzők kiválasztása az eredeti jellemzők egy részhalmazát adja vissza.” ([forrás](https://wikipedia.org/wiki/Feature_selection))
+🎓 **Jellemző kiválasztás és jellemző kinyerés** Hogyan tudod, mely változót válaszd a modell építésénél? Valószínűleg végigjársz egy jellemzőkiválasztási vagy jellemzőkinyerési folyamatot, hogy a legmegfelelőbb változókat válaszd ki a legjobban teljesítő modellhez. Ezek azonban nem ugyanazok: „A jellemzőkinyerés új jellemzőket hoz létre az eredeti jellemzők függvényeiből, míg a jellemzőkiválasztás a jellemzők egy részhalmazát adja vissza.” ([forrás](https://wikipedia.org/wiki/Feature_selection))
-### Adatok vizualizálása
+### Vizualizáld az adatokat
-Az adatkutató eszköztárának fontos része az adatok vizualizálásának képessége, amelyhez számos kiváló könyvtár, például Seaborn vagy MatPlotLib áll rendelkezésre. Az adatok vizuális ábrázolása lehetővé teheti, hogy rejtett összefüggéseket fedezz fel, amelyeket kihasználhatsz. A vizualizációk segíthetnek abban is, hogy torzítást vagy kiegyensúlyozatlan adatokat fedezz fel (ahogy azt a [Kategorizálás](../../4-Classification/2-Classifiers-1/README.md) során felfedezzük).
+Az adattudós eszköztárának fontos eleme az adatok vizualizációjának képessége, amely számos kiváló könyvtár segítségével elérhető, például Seaborn vagy MatPlotLib. Az adatok vizuális megjelenítése lehetővé teheti rejtett korrelációk felfedezését, amelyeket kihasználhatsz. Vizualizációid segíthetnek a torzítás vagy kiegyensúlyozatlan adatok felismerésében is (ahogyan azt a [Klasszifikáció](../../4-Classification/2-Classifiers-1/README.md) leckében látjuk).
-### Adatállomány felosztása
+### Oszd fel az adatkészletet
-A tanítás előtt fel kell osztanod az adatállományodat két vagy több, egyenlőtlen méretű részre, amelyek még mindig jól reprezentálják az adatokat.
+A képzés előtt az adatokat két vagy több, méretben eltérő, de mégis jól reprezentatív részre kell bontani.
-- **Tanítás**. Az adatállomány ezen része illeszkedik a modelledhez, hogy megtanítsa azt. Ez a rész az eredeti adatállomány többségét alkotja.
-- **Tesztelés**. A tesztadatállomány az eredeti adatokból származó független adatok csoportja, amelyet a modell teljesítményének megerősítésére használsz.
-- **Érvényesítés**. Az érvényesítési készlet egy kisebb független példák csoportja, amelyet a modell hiperparamétereinek vagy architektúrájának finomhangolására használsz, hogy javítsd a modellt. Az adatok méretétől és a kérdésedtől függően lehet, hogy nem szükséges ezt a harmadik készletet létrehozni (ahogy azt a [Idősor előrejelzés](../../7-TimeSeries/1-Introduction/README.md) leckében megjegyezzük).
+- **Képzés**. Ez az adatkészlet azon része, amelyen a modellt tanítod. Ez az eredeti adatkészlet többségét alkotja.
+- **Tesztelés**. A tesztadat-készlet független adatcsoport, gyakran az eredeti adatokból gyűjtve, amellyel a létrehozott modell teljesítményét ellenőrzöd.
+- **Érvényesítés**. Az érvényesítő halmaz egy kisebb, független példa csoport, amellyel a modell hiperparamétereit vagy architektúráját hangolod a modell javítása érdekében. Az adatmérettől és a kérdéstől függően előfordulhat, hogy nincs szükség erre a harmadik halmazra (ahogy azt az [Idősor előrejelzés](../../7-TimeSeries/1-Introduction/README.md) leckében megjegyezzük).
## Modell építése
-A tanító adataidat használva az a célod, hogy egy modellt, vagyis az adataid statisztikai reprezentációját építsd fel különböző algoritmusok segítségével, hogy **tanítsd** azt. A modell tanítása során az adatoknak való kitettség lehetővé teszi, hogy feltételezéseket tegyen az általa felfedezett mintázatokról, amelyeket érvényesít, elfogad vagy elutasít.
+A képzési adathalmaz felhasználásával célod egy olyan modell, vagy statisztikai reprezentáció felépítése az adatokról, amelyet különböző algoritmusok segítségével **tanítasz**. A modell tanítása kitenni az adatnak a modellt, amely így feltételezéseket tehet az általa felfedezett, ellenőrzött és elfogadott mintákról.
-### Tanítási módszer kiválasztása
+### Válassz képzési módszert
-A kérdésed és az adataid jellege alapján választasz egy módszert a tanításhoz. A [Scikit-learn dokumentációjának](https://scikit-learn.org/stable/user_guide.html) átlépése során - amelyet ebben a kurzusban használunk - számos módot fedezhetsz fel a modell tanítására. Tapasztalatodtól függően lehet, hogy több különböző módszert kell kipróbálnod a legjobb modell felépítéséhez. Valószínűleg egy olyan folyamaton mész keresztül, amely során az adatkutatók értékelik a modell teljesítményét azáltal, hogy nem látott adatokat adnak neki, ellenőrzik a pontosságot, torzítást és más minőségromboló problémákat, és kiválasztják a legmegfelelőbb tanítási módszert az adott feladathoz.
+A kérdésedtől és az adatok természetétől függően választhatsz egy módszert a tanításhoz. A [Scikit-learn dokumentációjában](https://scikit-learn.org/stable/user_guide.html) – amelyet ebben a kurzusban használunk – számos módon megvizsgálhatod a modell tréningjét. A tapasztalatodtól függően lehet, hogy több különböző módszert ki kell próbálnod a legjobb modell felépítéséhez. Valószínűleg végig fogsz menni egy folyamaton, amelyben adatkutatók különféle, nem látott adatok betáplálásával értékelik a modell teljesítményét, ellenőrzik pontosságát, torzítását és más minőséget rontó problémákat, majd kiválasztják a feladathoz legmegfelelőbb képzési módszert.
-### Modell tanítása
+### Taníts meg egy modellt
-A tanító adataiddal felvértezve készen állsz arra, hogy „illeszd” azokat egy modell létrehozásához. Észre fogod venni, hogy sok ML könyvtárban megtalálható a „model.fit” kód - ekkor küldöd be a jellemző változót értékek tömbjeként (általában „X”) és egy célváltozót (általában „y”).
+Az adatokkal felvértezve készen állsz arra, hogy „illeszd” (fit) a modellt. Sok ML könyvtárban találkozhatsz a 'model.fit' kóddal – itt küldöd be a jellemző változót értéktömbként (általában 'X') és a célváltozót (általában 'y').
-### Modell értékelése
+### Értékeld ki a modellt
-Miután a tanítási folyamat befejeződött (egy nagy modell tanítása sok iterációt, vagy „epoch”-ot igényelhet), képes leszel értékelni a modell minőségét tesztadatok segítségével, hogy felmérd a teljesítményét. Ezek az adatok az eredeti adatok egy részhalmazát képezik, amelyeket a modell korábban nem elemzett. Kinyomtathatsz egy táblázatot a modell minőségéről szóló metrikákról.
+Amikor a képzési folyamat befejeződik (egy nagy modellt sok iteráció, vagy „epocha” szükséges), értékelheted a modell minőségét tesztadatokkal, hogy megmérd a teljesítményét. Ez az adat az eredeti adatok egy olyan részhalmaza, amit a modell korábban nem elemzett. Ki tudsz nyomtatni egy táblázatot a modell minőségi mérőszámairól.
-🎓 **Modell illesztése**
+🎓 **Modellillesztés**
-A gépi tanulás kontextusában a modell illesztése arra utal, hogy a modell alapvető funkciója mennyire pontosan próbálja elemezni azokat az adatokat, amelyekkel nem ismerős.
+A gépi tanulás kontextusában a modellillesztés azt jelenti, hogy a modell alapvető függvénye mennyire pontos, amikor olyan adatokat próbál elemezni, amelyekhez nem szokott hozzá.
-🎓 **Alulillesztés** és **túlillesztés** gyakori problémák, amelyek rontják a modell minőségét, mivel a modell vagy nem elég jól, vagy túl jól illeszkedik. Ez azt okozza, hogy a modell vagy túl szorosan, vagy túl lazán igazodik a tanító adataihoz. Egy túlillesztett modell túl jól előrejelzi a tanító adatokat, mert túl jól megtanulta az adatok részleteit és zaját. Egy alulillesztett modell nem pontos, mivel sem a tanító adatait, sem azokat az adatokat, amelyeket még nem „látott”, nem tudja pontosan elemezni.
+🎓 **Alulmérés** és **túlillesztés** gyakori problémák, amelyek rontják a modell minőségét, mivel a modell vagy nem illeszkedik eléggé, vagy túl jól. Ez azt eredményezi, hogy a modell vagy túl szorosan, vagy túl lazán igazodik a képzési adathoz. Egy túlillesztett modell túl jól előrejelez a képzési adatokon, mert túl jól megtanulta az adatok részleteit és zaját. Egy alulmért modell pontatlan, mivel sem a képzési adatokat, sem azokat az adatokat nem tudja pontosan elemezni, amelyeket még nem látott.
-
+
> Infografika: [Jen Looper](https://twitter.com/jenlooper)
-## Paraméterek finomhangolása
+## Paraméterhangolás
-Miután az első tanítás befejeződött, figyeld meg a modell minőségét, és fontold meg annak javítását a „hiperparaméterek” finomhangolásával. Olvass többet a folyamatról [a dokumentációban](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
+Miután az első képzés befejeződött, figyeld meg a modell minőségét, és fontold meg a 'hiperparaméterek' finomhangolását a modell javítása érdekében. Olvass többet a folyamatról [a dokumentációban](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
## Előrejelzés
-Ez az a pillanat, amikor teljesen új adatokat használhatsz a modell pontosságának tesztelésére. Egy „alkalmazott” ML környezetben, ahol webes eszközöket építesz a modell használatához a gyakorlatban, ez a folyamat magában foglalhatja a felhasználói bemenetek (például egy gombnyomás) összegyűjtését egy változó beállításához, amelyet elküldesz a modellnek következtetésre vagy értékelésre.
+Ez az a pillanat, amikor teljesen új adatokat használsz a modell pontosságának tesztelésére. Egy „alkalmazott” ML környezetben, ahol webes eszközöket építesz fel a modell éles használatához, ez a folyamat magában foglalhatja a felhasználói bemenet összegyűjtését (például egy gomb megnyomását), hogy egy változót állíts tele, amelyet a modellhez továbbítasz következtetéshez vagy értékeléshez.
-Ezekben a leckékben felfedezed, hogyan használhatod ezeket a lépéseket az adatok előkészítésére, modellek építésére, tesztelésére, értékelésére és előrejelzésére - mindazokat a mozdulatokat, amelyeket egy adatkutató végez, és még többet, ahogy haladsz az úton, hogy „full stack” ML mérnökké válj.
+Ezekben a leckékben felfedezed, hogyan használhatod ezeket a lépéseket az adatok előkészítésére, modellépítésre, tesztelésre, értékelésre és előrejelzésre – mindezt az adattudós gesztusai szerint, és még többet, ahogy haladsz az úton, hogy „full stack” ML mérnökké válj.
---
## 🚀Kihívás
-Rajzolj egy folyamatábrát, amely tükrözi egy ML szakember lépéseit. Hol látod magad jelenleg a folyamatban? Hol gondolod, hogy nehézségekbe ütközöl? Mi tűnik könnyűnek számodra?
+Rajzolj egy folyamatábrát, amely bemutatja a gépi tanulással foglalkozó szakember lépéseit. Hol látod magad most a folyamatban? Hol vársz nehézségeket? Mi tűnik könnyűnek számodra?
-## [Utólagos kvíz](https://ff-quizzes.netlify.app/en/ml/)
+## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
## Áttekintés és önálló tanulás
-Keress online interjúkat adatkutatókkal, akik a napi munkájukról beszélnek. Itt van [egy](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
+Keress online interjúkat olyan adattudósokkal, akik a napi munkájukról beszélnek. Itt van [egy](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
## Feladat
-[Interjú egy adatkutatóval](assignment.md)
+[Interjú egy adattudóssal](assignment.md)
---
-**Felelősség kizárása**:
-Ez a dokumentum az AI fordítási szolgáltatás [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.
\ No newline at end of file
+
+**Felelősségkizárás**:
+Ezt a dokumentumot az AI fordítási 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 az anyanyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt a professzionális 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 téves értelmezésekért.
+
\ No newline at end of file
diff --git a/translations/hu/2-Regression/3-Linear/README.md b/translations/hu/2-Regression/3-Linear/README.md
index 2e0ac8143..d953e3ea6 100644
--- a/translations/hu/2-Regression/3-Linear/README.md
+++ b/translations/hu/2-Regression/3-Linear/README.md
@@ -1,130 +1,127 @@
-# Regressziós modell építése Scikit-learn segítségével: regresszió négyféle módon
+# Regressziós modell készítése Scikit-learn segítségével: regresszió négy módon
-## Kezdő jegyzet
+## Kezdő megjegyzés
-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.
+A lineáris regressziót akkor használjuk, ha egy **numerikus értéket** szeretnénk előrejelezni (például házár, hőmérséklet vagy eladás).
+Ez úgy működik, hogy megtalálja azt a egyenes vonalat, amely a legjobban reprezentálja a bemeneti jellemzők és a kimenet közötti kapcsolatot.
-Ebben a leckében a koncepció megértésére fókuszálunk, mielőtt fejlettebb regressziós technikákba merülnénk.
-
+Ebben az órában arra fókuszálunk, hogy megértsük a fogalmat, mielőtt átfogóbb regressziós technikákat fedeznénk fel.
+
> 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-ben is!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
-
+> ### [Ez az óra R nyelven is elérhető!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
### Bevezetés
-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.
+Eddig megtanultad, hogy mi a regresszió a tök árképzési adatain keresztül, amelyeket ezen az órán végig használni fogunk. Ezt Matplotlib segítségével vizualizáltad is.
-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.
+Most készen állsz arra, hogy mélyebben elmerülj a gépi tanulás regressziójában. Míg a vizualizáció lehetővé teszi az adatok értelmezését, a gépi tanulás valódi ereje az _modellek tanításában_ rejlik. A modelleket történelmi adatokon tanítják, hogy automatikusan felismerjék az adatok közötti összefüggéseket, és lehetővé teszik új adatok (amelyeket a modell korábban nem látott) kimenetének előrejelzését.
-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.
+Ebben az órában két regressziótípusról tanulsz: _alap lineáris regresszió_ és _polinomiális regresszió_, valamint az ezek mögött álló matematikai háttérről. Ezek a modellek lehetővé teszik, hogy megjósoljuk a tök árát különböző bemeneti adatok alapján.
-[](https://youtu.be/CRxFT8oTDMg "Gépi tanulás kezdőknek – A lineáris regresszió megértése")
+[](https://youtu.be/CRxFT8oTDMg "Gépi tanulás kezdőknek - 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.
+> 🎥 Kattints a fenti képre egy rövid videós áttekintéshez a lineáris regresszióról.
-> 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.
+> Az oktatóanyag során minimális matematikai előzetes tudással számolunk, és a cél, hogy elérhető legyen más területekről érkező diákok számára, ezért figyeld a megjegyzéseket, 🧮 hívásokat, ábrákat és egyéb tanulást segítő eszközöket.
### Előfeltétel
-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ítés
-
-Emlékeztetőül, az adatokat azért töltöd be, hogy kérdéseket tehess fel velük kapcsolatban.
+Mostanra ismerned kell a tök adatainak szerkezetét, amelyet vizsgálunk. Ezeket előre betöltve és megtisztítva megtalálod a dolgozat _notebook.ipynb_ fájljában. Ebben a fájlban a tök ára bushelenként jelenik meg egy új adatkeretben. Győződj meg róla, hogy ezek a notebookok futtathatóak Visual Studio Code környezetben.
-- 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?
+### Előkészület
-Folytassuk az adatok vizsgálatát.
+Emlékeztetőül: ezt az adatot azért töltöd be, hogy kérdéseket tegyél fel vele kapcsolatban.
-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.
+- Mikor a legjobb idő tököt vásárolni?
+- Milyen árat várhatok egy doboz miniatűr tökre?
+- Érdemes fél bushel kosárban vagy 1 1/9 busheles dobozban vásárolni?
+Térjünk vissza az adatok mélyebb vizsgálatához.
-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.
+Az előző órában létrehoztál egy Pandas adatkeretet, és feltöltötted az eredeti adatok egy részével, egységesítve az árakat bushel szerint. Ezáltal azonban csak körülbelül 400 adatpontot gyűjtöttél össze, és csak az őszi hónapokra.
-## Egy lineáris regressziós egyenes
+Nézd meg az adatokat, amelyeket előre betöltöttünk ebben az óra jegyzetfüzetében. Az adatok előre betöltöttek, és az első szórt diagram már megmutatja a hónap adatokat. Talán több részletet tudunk kinyerni az adatok természetéről, ha jobban megtisztítjuk őket.
-Amint az 1. leckében tanultad, egy lineáris regressziós gyakorlat célja, hogy egy egyenest tudjunk ábrázolni, amely:
+## Lineáris regressziós egyenes
-- **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.
+Ahogy az 1. órában megtanultad, a lineáris regresszió célja, hogy képes legyél felrajzolni egy olyan egyenest, amely:
-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.
+- **Mutatja a változók kapcsolatát**. Megjeleníti a változók közötti kapcsolatot
+- **Képes előrejelzésekre**. Pontos előrejelzéseket ad arról, hogy egy új adatpont hol eshet az egyeneshez képest.
+
+A **Legkisebb négyzetes regresszió** típusú vonalat szokás így húzni. A "Legkisebb négyzetes" kifejezés azt a folyamatot jelenti, amikor minimalizáljuk a modellünkben az összes hibát. Minden adatpontnál mérjük a függőleges távolságot (reziduális néven ismert) az adott pont és a regressziós vonal között.
-Ezeket a távolságokat négyzetre emeljük két fő okból:
+Ezeket a távolságokat négyzetre emeljük két fő okból:
-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.
+1. **Nagyobb jelentőség a nagyságra, irány helyett:** Egy -5-ös hibaértéket ugyanolyan fontosnak akarunk kezelni, mint egy +5-öst. A négyzetre emelés miatt minden érték pozitív lesz.
-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.
+2. **Kiszámíthatatlan kiugrók megszűrése:** A négyzetre emelés súlyosabb következményeket ad a nagyobb hibáknak, így az egyenes közelebb húzódik a távolabb eső pontokhoz is.
-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".
+Ezután összeadjuk az összes négyzetre emelt értéket. A célunk megtalálni azt az egyenest, amelynél az összeg a legalacsonyabb (a lehető legkisebb)—innen ered a "Legkisebb négyzetek" elnevezés.
-> **🧮 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:
->
+> **🧮 Mutasd meg a képletet**
+>
+> Ez az egyenes, amit _legjobb illeszkedő egyenesnek_ hívunk, az alábbi [egyenlettel fejezhető ki](https://en.wikipedia.org/wiki/Simple_linear_regression):
+>
> ```
> Y = a + bX
> ```
->
-> `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`.
->
->
->
-> 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.
->
->
->
-> 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.
+>
+> `X` az 'magyarázó változó'. `Y` a 'függő változó'. Az egyenes meredeksége `b`, és `a` az y-tengely metszéspontja, ami `Y` értékét adja `X = 0` esetén.
+>
+>
+>
+> Először kiszámoljuk a `b` meredekséget. Infografika készítője: [Jen Looper](https://twitter.com/jenlooper)
+>
+> Másként fogalmazva, és hivatkozva a tök adataink eredeti kérdésére: "jósoljuk meg a tök árát bushelenként hónap alapján", az `X` lenne az ár és az `Y` az eladás hónapja.
+>
+>
+>
+> Számítsuk ki az Y értékét. Ha $4 körül fizetsz, akkor április lehet! Infografika készítője: [Jen Looper](https://twitter.com/jenlooper)
+>
+> Az egyenes meghatározásának matematikája demonstrálja a meredekséget, amely a metszési ponttól is függ, vagyis attól, hogy `Y` hol helyezkedik el, ha `X = 0`.
+>
+> Az értékek kiszámítását megfigyelheted a [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) weboldalon. Látogasd meg továbbá ezt a [Legkisebb négyzetes számológépet](https://www.mathsisfun.com/data/least-squares-calculator.html), hogy lásd, hogyan hatnak a számértékek az egyenesre.
## Korreláció
-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.
+Még egy kifejezést kell megérteni: ez a **Korrelációs együttható** az adott X és Y változók között. Szórt diagram segítségével gyorsan vizualizálhatod ezt az együtthatót. Ha az adatpontok szépen rendezett vonalban helyezkednek el, a korreláció magas, de ha szétszórtan vannak, a korreláció alacsony.
-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.
+Egy jó lineáris regressziós modell az lesz, amely Legkisebb négyzetes regresszió módszerrel egy magas (inkább 1-hez közel, mint 0-hoz) Korrelációs együtthatót mutat.
-✅ 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)?
+✅ Futtasd le az óra kísérő jegyzetfüzetét, és nézd meg a Hónap és Ár szórt diagramját. Úgy tűnik a hónap-ár kapcsolat a tök eladásoknál magas vagy alacsony korrelációt mutat? Ez változik, ha az `Hónap` helyett finomabb felbontást használsz, például az év napját (azaz hányadik napja az évnek)?
-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:
+A lentebbi kódban feltételezzük, hogy megtisztítottuk az adatokat, és rendelkezünk egy `new_pumpkins` nevű adatkerettel, amely hasonló a következőhöz:
-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 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:
+> A tisztításhoz használt kód megtalálható a [`notebook.ipynb`](notebook.ipynb) fájlban. Ugyanazokat a tisztítási lépéseket hajtottuk végre, mint az előző órában, és kiszámoltuk a `DayOfYear` oszlopot a következő kifejezéssel:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
-
-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.
+
+Most, hogy érted a lineáris regresszió mögötti matematikát, hozzunk létre egy regressziós modellt, hogy megnézzük, tudjuk-e előre jelezni, melyik tökcsomag ára lesz a legjobb. Valaki, aki tököt vásárol farsangi tökkiállításra, ezt az információt felhasználhatja, hogy optimalizálja a vásárlását.
## Korreláció keresése
-[](https://youtu.be/uoRq-lW2eQo "Gépi tanulás kezdőknek – Korreláció keresése: a lineáris regresszió kulcsa")
+[](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.
+> 🎥 Kattints a fenti képre egy rövid videós áttekintéshez a korrelációról.
-Az előző leckéből valószínűleg láttad, hogy az átlagárak hónaponként így néznek ki:
+Az előző órából valószínűleg láttad, hogy a havi átlagárak így néznek ki:
-
+
-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:
+Ez arra utal, hogy kell lennie némi korrelációnak, és megpróbálhatunk lineáris regressziós modellt tanítani, hogy előre jelezzük a `Hónap` és `Ár` vagy a `DayOfYear` és `Ár` kapcsolatot. Itt egy szórt diagram, amely az utóbbi kapcsolatot mutatja:
-
+
Nézzük meg, van-e korreláció a `corr` függvénnyel:
@@ -132,8 +129,8 @@ Nézzük meg, van-e korreláció a `corr` függvénnyel:
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
-
-Ú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:
+
+Úgy tűnik, a korreláció meglehetősen kicsi, -0,15 a `Hónap` szerint, és -0,17 a `DayOfYear` szerint, de lehet, hogy van egy másik fontos kapcsolat. Úgy tűnik, különböző ár clusteringek vannak, amelyek különböző tökfajtákhoz kapcsolódnak. Ennek megerősítéséhez ábrázoljuk minden tökkategóriát más színnel. Az `ax` paraméter átadásával a `scatter` függvénynek minden pont ugyanazon a grafikonon jelenik meg:
```python
ax=None
@@ -142,76 +139,75 @@ 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)
```
-
-
-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:
+
+
+A vizsgálatunk arra utal, hogy a tökfajta jobban befolyásolja az árat, mint az eladási időpont. Ezt látjuk egy oszlopdiagramon is:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
-
-
-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:
+
+
+Most fókuszáljunk csak az egyik tökfajtára, az "pie type"-ra, és nézzük meg, milyen hatással van a dátum az árra:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
-
-
+
-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.
+Ha most kiszámoljuk a korrelációt a `Price` és `DayOfYear` között a `corr` függvénnyel, az körülbelül `-0,27` lesz - ami azt jelenti, hogy érdemes prediktív modellt tanítani.
-> 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:
+> A lineáris regressziós modell betanítása előtt fontos, hogy az adataink tiszták legyenek. 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()
```
-
-Egy másik megközelítés lehet, hogy az üres értékeket az adott oszlop átlagával töltjük fel.
+
+Egy másik megközelítés, ha ezeket az üres értékeket az adott oszlop átlagával töltjük ki.
## Egyszerű lineáris regresszió
-[](https://youtu.be/e4c_UP2fSjg "Gépi tanulás kezdőknek – Lineáris és polinomiális regresszió Scikit-learn használatával")
+[](https://youtu.be/e4c_UP2fSjg "Gépi tanulás kezdőknek - Lineáris és polinomiális regresszió Scikit-learn segítségével")
-> 🎥 Kattints a fenti képre egy rövid videós áttekintésért a lineáris és polinomiális regresszióról.
+> 🎥 Kattints a fenti képre egy rövid videós összefoglalóhoz a lineáris és polinomiális regresszióról.
-A 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 használjuk.
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
-
-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:
+
+Először szétválasztjuk a bemeneti értékeket (jellemzőket) é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.
-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:
+> Figyeljük meg, hogy a bemeneti adatokat át kellett alakítanunk a `reshape` segítségével, hogy a Lineáris Regressziós csomag helyesen értse azokat. A lineáris regresszió 2D tömböt vár bemenetként, ahol a tömb minden sora egy bemeneti jellemző vektort reprezentál. Jelen esetben egyetlen bemenet van, ezért egy N×1 alakú tömböt kell létrehoznunk, ahol N az adatkészlet mérete.
+
+Ezután fel kell osztanunk az adatokat tanító és teszt adatokra, hogy a modellt a tanítás után tudjuk validálni:
```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 sor. Definiáljuk a `LinearRegression` objektumot, és megtanítjuk az adatokra a `fit` metódussal:
+
+Végül az lineáris regressziós modell tényleges betanítása csak két sor kódot vesz igénybe. Definiáljuk a `LinearRegression` objektumot, és az adatainkra illesztjük a `fit` módszerrel:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
-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.
+A `LinearRegression` objektum a `fit`-elés után tartalmazza a regresszió összes együtthatóját, amelyek az `.coef_` tulajdonsággal érhetőek el. Esetünkben csak egy együttható van, amely körülbelül `-0.017` körül kell legyen. Ez azt jelenti, hogy az árak idővel valamennyire csökkenni látszanak, de nem túl sokat, körülbelül 2 cent naponta. A regressziós egyenes Y-tengellyel való metszéspontjához az `lin_reg.intercept_` segítségével férhetünk hozzá - ez nálunk körülbelül `21` lesz, amely az év eleji árat jelzi.
-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.
+Ahhoz, hogy lássuk, mennyire pontos a modellünk, először az árakat megjósolhatjuk egy teszt adathalmazon, majd megmérhetjük, milyen közel vannak a becslések a várt értékekhez. Ezt az úgynevezett gyökös átlagos négyzetes hibával (RMSE) mérjük, ami az elvárt és becsült értékek közötti négyzetes különbségek átlagának gyöke.
```python
pred = lin_reg.predict(X_test)
@@ -220,16 +216,15 @@ rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
```
-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:
+Hibaértékünk körülbelül 2 pont körül van, ami nagyjából 17%. Nem túl jó. A modell minőségének másik mutatója a **determinációs együttható**, amely így számítható ki:
```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 becslőként* működik, amely 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 várt kimenetet. Nálunk az együttható körülbelül 0.06, ami elég alacsony.
-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:
+Meg is rajzolhatjuk a tesztadatokat a regressziós egyenessel együtt, hogy jobban lássuk a regresszió működését:
```python
plt.scatter(X_test,y_test)
@@ -240,17 +235,17 @@ plt.plot(X_test,pred)
## Polinomiális regresszió
-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.
+A lineáris regresszió egy másik típusa a polinomiális regresszió. Bár néha lineáris kapcsolat van a változók között – például minél nagyobb egy tök térfogata, annál magasabb az ára –, néha ezek a kapcsolatok nem ábrázolhatók síkkal vagy egyenes vonallal.
-✅ 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.
+✅ Itt vannak [további példák](https://online.stat.psu.edu/stat501/lesson/9/9.8) olyan adatokra, amelyek polinomiális regressziót igényelhetnek.
-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.
+Nézzük meg újra a Dátum és Ár közötti kapcsolatot. Ez a pontfelhő valóban úgy néz ki, hogy feltétlenül egy egyenes vonallal kell elemezni? Nem ingadozhatnak az árak? Ilyen esetben polinomiális regressziót használhatunk.
-✅ A polinomok olyan 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ót és együtthatót tartalmazhatnak.
-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 polinomiális regresszió ívelt görbét hoz létre, hogy jobban illeszkedjen a nemlineáris adatokra. Esetünkben, ha a bemeneti adatok közé beillesztünk egy négyzetes `DayOfYear` változót, akkor egy parabolikus görbét tudunk illeszteni, amelynek lesz minimuma az év egy bizonyos pontján.
-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:
+A Scikit-learn egy hasznos [pipeline API-t](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) kínál a különböző adatfeldolgozási lépések összekapcsolására. Egy **pipeline** egy láncolata az **estimátoroknak**. Esetünkben egy olyan csővezetéket hozunk létre, amely először polinomiális jellemzőket ad a modellhez, majd megtanítja a regressziót:
```python
from sklearn.preprocessing import PolynomialFeatures
@@ -261,34 +256,56 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
-A `PolynomialFeatures(2)` használata azt jelenti, hogy a bemeneti adatokból az összes másodfokú polinomot bevonjuk. Esetünkben ez csak a `DayOfYear`2 változót jelenti, de ha két bemeneti változó X és Y, akkor hozzáadja az X2, XY és Y2 kifejezéseket is. Magasabb fokú polinomokat is használhatunk, ha akarunk.
+A `PolynomialFeatures(2)` használata azt jelenti, hogy minden másodfokú polinomot belefoglalunk a bemeneti adatokból. Esetünkben ez csak a `DayOfYear`2 lesz, de ha két bemeneti változónk van X és Y, akkor ez hozzáadja az X2, XY és Y2 kifejezéseket. Szükség esetén magasabb fokú polinomokat is használhatunk.
+
+A pipeline-ok ugyanúgy használhatók, mint az eredeti `LinearRegression` objektum, azaz `fit`-elhetjük őket, és azután `predict`-tel kérhetjük le az előrejelzés eredményét:
+
+```python
+pred = pipeline.predict(X_test)
+
+rmse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+A sima közelítő görbe megrajzolásához a `np.linspace`-t használjuk, hogy egyenletes bemeneti értéktartományt hozzunk létre, nem pedig közvetlenül a rendezetlen tesztadatokra rajzolunk (ami cikcakkos vonalat eredményezne):
+
+```python
+X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)
+y_range = pipeline.predict(X_range)
+
+plt.scatter(X_test, y_test)
+plt.plot(X_range, y_range)
+```
-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:
+Itt látható a grafikon, amely a tesztadatokat és a közelítő görbét mutatja:
-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!
+A polinomiális regresszió használatával kicsit alacsonyabb RMSE-t és magasabb determinációt érhetünk el, de nem jelentősen. Más jellemzőket is figyelembe kell vennünk!
-> Látható, hogy a tök árak legalacsonyabbak valahol Halloween körül. Hogyan magyarázhatod ezt?
+> Látható, hogy a legkisebb tökárak valahol Halloween környékén fordulnak elő. Hogyan magyaráznád ezt?
-🎃 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!
+🎃 Gratulálok, most készítettél egy olyan modellt, amely segíthet a pitetök árának előrejelzésében. Valószínűleg ugyanígy megismételheted ugyanezt az eljárást az összes tökfajtára, de az fárasztó lenne. Most tanuljuk meg, hogyan lehet figyelembe venni a tökfajtát a modellünkben!
-## Kategóriás jellemzők
+## Kategóriák jellemzői
-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.
+Az ideális világban ugyanazzal a modellel szeretnénk képesek lenni az árak előrejelzésére különböző tökfajták esetén is. Azonban a `Variety` oszlop valamiben különbözik az olyan oszlopoktól, mint a `Month`, mert nem numerikus értékeket tartalmaz. Az ilyen oszlopokat **kategóriálisnak** nevezzük.
-[](https://youtu.be/DYGliioIAE0 "ML for beginners - Kategóriás jellemzők előrejelzése lineáris regresszióval")
+[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
-> 🎥 Kattints a fenti képre egy rövid videós bemutatóért kategóriás jellemzők használatáról.
+> 🎥 Kattints a fenti képre egy rövid videós áttekintésért a kategóriális jellemzők használatáról.
-Itt látható, hogyan függ az átlagár a fajtától:
+Itt láthatod, hogy az átlagár hogyan függ a fajtától:
-
+
-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:
+A fajták figyelembevételéhez először át kell alakítani őket numerikus formára, vagyis **kódolni** kell őket. Többféle módon tehetjük ezt meg:
-* 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 egyszerű **numerikus kódolás** egy táblázatot épít a különböző fajtákról, majd a fajtanév helyére egy indexet ír. Ez lineáris regresszió esetén nem a legjobb megoldás, mert a lineáris regresszió az index számértékét veszi figyelembe, és valamilyen együtthatóval szorozva adja hozzá az eredményhez. Esetünkben az indexek számszerű értéke és az ár közötti kapcsolat egyértelműen nemlineáris, még akkor is, ha az indexeket valamilyen speciális sorrendbe állítjuk.
+* A **one-hot kódolás** a `Variety` oszlopot négy külön oszlopra bontja, egyre minden fajtához. Minden oszlop `1` értéket tartalmaz, ha az adott sor az adott fajtához tartozik, különben `0`-t. Ez azt jelenti, hogy négy együttható lesz a lineáris regresszióban, egy-egy minden tökfajtára, amelyek az adott fajta kezdeti árát (vagy inkább "kiegészítő árát") képviselik.
Az alábbi kód megmutatja, hogyan lehet one-hot kódolni a fajtát:
@@ -307,14 +324,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ára egyszerűen csak helyesen kell inicializálni az `X` és `y` adatokat:
+Lineáris regresszió tanításához one-hot kódolt fajta bemenettel, helyesen kell inicializálni az `X` és `y` adatokat:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
-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:
+A többi kód ugyanolyan, mint fent a lineáris regresszió tanításánál. Ha kipróbálod, látni fogod, hogy az átlagos négyzetes hiba nagyjából ugyanaz, de a determinációs együttható sokkal magasabb (körülbelül 77%). Még pontosabb előrejelzésekhez több kategóriás jellemzőt és numerikus jellemzőket is figyelembe vehetünk, például a `Month` vagy a `DayOfYear`. Ahhoz, hogy egy nagy jellemzőtömböt kapjunk, használhatjuk a `join`-t:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@@ -324,41 +341,41 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
-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ó!
+Itt figyelembe vesszük a `City` és a `Package` típust is, ami 2.84-es (10.5%) RMSE-t és 0.94-es determinációs értéket eredményez!
-## Összefoglalás
+## Mindent egybevetve
-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:
+A legjobb modellhez az előző példából származó kombinált (one-hot kódolt kategóriás + numerikus) adatokat használhatjuk a polinomiális regresszióval együtt. Íme a teljes kód a kényelmedért:
```python
-# beállítja a tanító adatokat
+# tanítóadatok előkészítése
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']
-# készít egy tanító-teszt felosztást
+# tanító-teszt felosztás készítése
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
-# beállítja és tanítja a folyamatot
+# a folyamat beállítása és betanítása
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
-# megjósolja az eredményeket a teszt adatokra
+# tesztadatokra eredmények előrejelzése
pred = pipeline.predict(X_test)
-# 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}%)')
+# RMSE és determináció számítása
+rmse = mean_squared_error(y_test, pred, squared=False)
+print(f'RMSE: {rmse:3.3} ({rmse/pred.mean()*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
-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.
+Ennek a modellnek a determinációs együtthatója majdnem 97% lesz, az RMSE pedig 2.23 (kb. 8% előrejelzési hiba).
-| Modell | MSE | Determináció |
+| Modell | RMSE | Determináció |
|-------|-----|---------------|
| `DayOfYear` lineáris | 2.77 (17.2%) | 0.07 |
| `DayOfYear` polinomiális | 2.73 (17.0%) | 0.08 |
@@ -366,26 +383,26 @@ Ez az eredmény majdnem 97%-os determinációs együtthatót, és MSE=2.23-at (~
| Minden jellemző lineáris | 2.84 (10.5%) | 0.94 |
| Minden jellemző polinomiális | 2.23 (8.25%) | 0.97 |
-🏆 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.
+🏆 Szép munka! Egy leckében négy regressziós modellt készítettél, és a modell pontosságát 97%-ra javítottad. A regresszió befejező szakaszában megismerkedhetsz a logisztikus regresszióval kategóriák meghatározásához.
---
## 🚀Kihívás
-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.
+Tesztelj több különböző változót ebben a jegyzetfüzetben, hogy lásd, hogyan korrelál a változók közötti kapcsolat a modell pontosságával.
## [Előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/)
-## Áttekintés & Önálló tanulás
+## Áttekintés és önálló tanulás
-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).
+Ebben a leckében a lineáris regresszióval ismerkedtünk meg. Vannak más fontos regressziótípusok is. Olvass a lépcsőzetes, Ridge, Lasso és Elasticnet technikákról. Jó tanfolyam a témában a [Stanford Statisztikai tanulás kurzus](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning).
## Feladat
-[Modellezés](assignment.md)
+[Modell készítése](assignment.md)
---
-**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.
+**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 le. Bár igyekszünk pontosságra törekedni, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum anyanyelvű változata tekintendő hivatalos forrásnak. Fontos 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.
\ No newline at end of file
diff --git a/translations/hu/2-Regression/3-Linear/solution/notebook.ipynb b/translations/hu/2-Regression/3-Linear/solution/notebook.ipynb
index 1038c3b5f..c5f0a2d46 100644
--- a/translations/hu/2-Regression/3-Linear/solution/notebook.ipynb
+++ b/translations/hu/2-Regression/3-Linear/solution/notebook.ipynb
@@ -4,14 +4,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Lineáris és Polinomiális Regresszió a Tökárak Meghatározásához - 3. Lecke\n",
+ "## Lineáris és polinomiális regresszió a tök árképzésére - 3. lecke\n",
"\n",
- "Töltsd be a szükséges könyvtárakat és az adatállományt. Alakítsd át az adatokat egy adatkeretté, amely az adatok egy részhalmazát tartalmazza:\n",
+ "Töltsd be a szükséges könyvtárakat és az adathalmazt. Alakítsd az adatokat olyan adattáblává, amely az adatok egy részhalmazát tartalmazza:\n",
"\n",
- "- Csak azokat a tököket válaszd ki, amelyeket bushel alapján áraznak\n",
+ "- Csak azokat a tököket vedd, amelyeknek árát köböt alapján adják meg\n",
"- Alakítsd át a dátumot hónappá\n",
- "- Számítsd ki az árat a magas és alacsony árak átlagaként\n",
- "- Alakítsd át az árat, hogy a bushel mennyiség szerinti árazást tükrözze\n"
+ "- Számítsd ki az árat a legmagasabb és legalacsonyabb ár átlaga alapján\n",
+ "- Alakítsd át az árat úgy, hogy tükrözze a köbös mennyiség szerinti árazást\n"
]
},
{
@@ -377,7 +377,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "A szórási diagram emlékeztet minket arra, hogy csak augusztustól decemberig van havi adatunk. Valószínűleg több adatra van szükségünk ahhoz, hogy lineáris módon vonjunk le következtetéseket.\n"
+ "A szórásdiagram emlékeztet minket arra, hogy csak az augusztustól decemberig terjedő hónapadatok állnak rendelkezésünkre. Valószínűleg több adatra van szükségünk ahhoz, hogy lineáris módon tudjunk következtetéseket levonni.\n"
]
},
{
@@ -447,7 +447,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "Nézzük meg, van-e összefüggés:\n"
+ ]
},
{
"cell_type": "code",
@@ -472,7 +474,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Úgy tűnik, hogy a korreláció elég kicsi, de van valami más, fontosabb kapcsolat – mert a fenti ábrán az árpontok több különálló klasztert alkotnak. Készítsünk egy ábrát, amely megmutatja a különböző tökfajtákat:\n"
+ "Úgy tűnik, hogy a korreláció elég kicsi, de van valami más, fontosabb kapcsolat - mert a fenti ábrán az árpontok több különálló csoportot alkotnak. Készítsünk egy ábrát, ami megmutatja a különböző tökfajtákat:\n"
]
},
{
@@ -535,7 +537,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "Egyelőre koncentráljunk csak egy fajtára - **pitére**.\n"
+ ]
},
{
"cell_type": "code",
@@ -584,7 +588,7 @@
"source": [
"### Lineáris regresszió\n",
"\n",
- "A Scikit Learn könyvtárat fogjuk használni lineáris regressziós modell betanításához:\n"
+ "A lineáris regressziós modellt a Scikit Learn segítségével fogjuk tanítani:\n"
]
},
{
@@ -720,9 +724,9 @@
"source": [
"### Polinomiális regresszió\n",
"\n",
- "Néha a jellemzők és az eredmények közötti kapcsolat eleve nem lineáris. Például a tök ára télen (hónapok=1,2) magas lehet, majd nyáron (hónapok=5-7) csökken, és utána ismét emelkedik. A lineáris regresszió nem képes pontosan megragadni ezt a kapcsolatot.\n",
+ "Néha a jellemzők és az eredmények közötti kapcsolat természeténél fogva nemlineáris. Például a sütőtök ára télen (hónapok=1,2) magas lehet, majd nyáron (hónapok=5-7) csökken, és aztán újra emelkedik. A lineáris regresszió nem képes pontosan megtalálni ezt a kapcsolatot.\n",
"\n",
- "Ilyen esetben érdemes lehet további jellemzőket hozzáadni. Egy egyszerű módszer az, hogy az input jellemzőkből polinomokat használunk, ami **polinomiális regressziót** eredményez. A Scikit Learn-ben automatikusan előre kiszámíthatjuk a polinomiális jellemzőket pipeline-ok segítségével:\n"
+ "Ebben az esetben érdemes lehet plusz jellemzőket hozzáadni. Egyszerű módja ennek, ha a bemeneti jellemzőkből polinomokat használunk, ami **polinomiális regressziót** eredményez. A Scikit Learn-ben ezt automatikusan előszámíthatjuk, polinom jellemzőket generálva pipeline-ok segítségével: \n"
]
},
{
@@ -777,22 +781,25 @@
"score = pipeline.score(X_train,y_train)\n",
"print('Model determination: ', score)\n",
"\n",
- "plt.scatter(X_test,y_test)\n",
- "plt.plot(sorted(X_test),pipeline.predict(sorted(X_test)))"
+ "X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)\n",
+ "y_range = pipeline.predict(X_range)\n",
+ "\n",
+ "plt.scatter(X_test, y_test)\n",
+ "plt.plot(X_range, y_range)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Különböző kódolási módok\n",
+ "### Kódolási változatok\n",
"\n",
- "Ideális esetben szeretnénk ugyanazzal a modellel előre jelezni az árakat különböző tök fajták esetében. Ahhoz, hogy figyelembe vegyük a fajtát, először numerikus formára kell átalakítanunk, vagyis **kódolnunk**. Erre több módszer is létezik:\n",
+ "Az ideális világban ugyanazzal a modellel tudnánk előre jelezni az árakat különböző tökfajtákra. Ahhoz, hogy a fajtát figyelembe tudjuk venni, először számmá kell átalakítanunk, vagyis **kódolnunk** kell. Többféleképpen megtehetjük ezt:\n",
"\n",
- "* Egyszerű numerikus kódolás, amely egy táblázatot készít a különböző fajtákról, majd a fajta nevét lecseréli a táblázatban szereplő indexre. Ez nem a legjobb megoldás lineáris regresszióhoz, mivel a lineáris regresszió figyelembe veszi az index numerikus értékét, és az index numerikus értéke valószínűleg nem áll összefüggésben az árral.\n",
- "* Egy-hot kódolás, amely a `Variety` oszlopot négy külön oszlopra cseréli, egyet minden fajtának. Ezek az oszlopok 1-et tartalmaznak, ha az adott sor az adott fajtához tartozik, és 0-t, ha nem.\n",
+ "* Egyszerű numerikus kódolás, amely egy táblázatot hoz létre a különböző fajtákról, majd a fajta nevét egy indexszel helyettesíti ebben a táblázatban. Ez nem a legjobb ötlet lineáris regresszióhoz, mert a lineáris regresszió figyelembe veszi az index numerikus értékét, és ez az érték valószínűleg nem korrelál számszerűen az árral.\n",
+ "* One-hot kódolás, amely a `Variety` oszlopot négy külön oszlopra cseréli, egy-egy minden fajtának, amelyek 1-et tartalmaznak, ha az adott sor az adott fajta, és különben 0-t.\n",
"\n",
- "Az alábbi kód megmutatja, hogyan tudunk egy fajtát egy-hot kódolással átalakítani:\n"
+ "Az alábbi kód megmutatja, hogyan tudjuk one-hot kódolni a fajtát:\n"
]
},
{
@@ -940,9 +947,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Lineáris regresszió fajták alapján\n",
+ "### Lineáris regresszió fajtánként\n",
"\n",
- "Most ugyanazt a kódot fogjuk használni, mint korábban, de a `DayOfYear` helyett az egy-hot-kódolt fajtát fogjuk bemenetként használni:\n"
+ "Most ugyanazt a kódot fogjuk használni, mint fent, de `DayOfYear` helyett a one-hot kódolt fajtát fogjuk bemenetként használni:\n"
]
},
{
@@ -1023,7 +1030,7 @@
"source": [
"### Polinomiális regresszió\n",
"\n",
- "A polinomiális regresszió használható egy-hot-kódolt kategóriális jellemzőkkel is. A polinomiális regresszió betanításához szükséges kód lényegében ugyanaz lenne, mint amit fentebb láttunk.\n"
+ "A polinomiális regresszió használható egyúttal olyan kategórikus jellemzőkkel is, amelyek one-hot kódolásúak. A polinomiális regresszió betanítására szolgáló kód lényegében ugyanaz lenne, mint amit fentebb már láttunk.\n"
]
},
{
@@ -1070,7 +1077,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n---\n\n**Felelősségkizárás**: \nEz a dokumentum az [Co-op Translator](https://github.com/Azure/co-op-translator) AI fordítási szolgáltatás 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 a fordítás használatából eredő félreértésekért vagy téves értelmezésekért.\n"
+ "---\n\n\n**Felelősségkizárás**:\nEz a dokumentum az AI fordító szolgáltatás [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével készült. 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ő hiteles forrásnak. Kritikus információk esetén professzionális, emberi fordítás ajánlott. Nem vállalunk felelősséget az ebből a fordításból eredő félreértésekért vagy téves értelmezésekért.\n\n"
]
}
],
@@ -1100,13 +1107,7 @@
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
- "orig_nbformat": 2,
- "coopTranslator": {
- "original_hash": "d77bd89ae7e79780c68c58bab91f13f8",
- "translation_date": "2025-09-04T06:21:41+00:00",
- "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
- "language_code": "hu"
- }
+ "orig_nbformat": 2
},
"nbformat": 4,
"nbformat_minor": 2
diff --git a/translations/sw/.co-op-translator.json b/translations/sw/.co-op-translator.json
index f571a52e8..c7a5532f2 100644
--- a/translations/sw/.co-op-translator.json
+++ b/translations/sw/.co-op-translator.json
@@ -36,8 +36,8 @@
"language_code": "sw"
},
"1-Introduction/4-techniques-of-ML/README.md": {
- "original_hash": "9d91f3af3758fdd4569fb410575995ef",
- "translation_date": "2025-09-05T16:02:46+00:00",
+ "original_hash": "84b1715a6be62ef1697351dcc5d7b567",
+ "translation_date": "2026-04-26T19:00:57+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "sw"
},
@@ -90,8 +90,8 @@
"language_code": "sw"
},
"2-Regression/3-Linear/README.md": {
- "original_hash": "26c53a922f1f1e8542b0ea41ff52221a",
- "translation_date": "2026-04-20T19:24:51+00:00",
+ "original_hash": "8b776e731c35b171d316d01d0e7b1369",
+ "translation_date": "2026-04-26T19:00:30+00:00",
"source_file": "2-Regression/3-Linear/README.md",
"language_code": "sw"
},
@@ -107,6 +107,12 @@
"source_file": "2-Regression/3-Linear/solution/Julia/README.md",
"language_code": "sw"
},
+ "2-Regression/3-Linear/solution/notebook.ipynb": {
+ "original_hash": "6781223ffbe8cfdaa38d0200f08e1288",
+ "translation_date": "2026-04-26T18:58:36+00:00",
+ "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
+ "language_code": "sw"
+ },
"2-Regression/4-Logistic/README.md": {
"original_hash": "abf86d845c84330bce205a46b382ec88",
"translation_date": "2025-09-05T15:14:22+00:00",
diff --git a/translations/sw/1-Introduction/4-techniques-of-ML/README.md b/translations/sw/1-Introduction/4-techniques-of-ML/README.md
index 919233b16..2c150d53e 100644
--- a/translations/sw/1-Introduction/4-techniques-of-ML/README.md
+++ b/translations/sw/1-Introduction/4-techniques-of-ML/README.md
@@ -1,123 +1,125 @@
-# Mbinu za Kujifunza Mashine
+# Mbinu za Kujifunza kwa Mashine
-Mchakato wa kujenga, kutumia, na kudumisha mifano ya kujifunza mashine na data wanayotumia ni tofauti sana na mchakato wa maendeleo mengine. Katika somo hili, tutafafanua mchakato huo na kuelezea mbinu kuu unazohitaji kujua. Utajifunza:
+Mchakato wa kujenga, kutumia, na kutunza mifano ya kujifunza kwa mashine na data wanayotumia ni mchakato tofauti kabisa na workflows nyingi nyingine za maendeleo. Katika somo hili, tutaondoa mashaka kuhusu mchakato huu, na kutoa muhtasari wa mbinu kuu unazohitaji kujua. Utajifunza:
-- Kuelewa michakato inayosimamia kujifunza mashine kwa kiwango cha juu.
+- Kuelewa michakato inayounga mkono kujifunza kwa mashine kwa kiwango cha juu.
- Kuchunguza dhana za msingi kama 'mifano', 'utabiri', na 'data ya mafunzo'.
-## [Jaribio la awali la somo](https://ff-quizzes.netlify.app/en/ml/)
+## [Jaribio la kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
-[](https://youtu.be/4NGM0U2ZSHU "ML kwa wanaoanza - Mbinu za Kujifunza Mashine")
+[](https://youtu.be/4NGM0U2ZSHU "ML for beginners - Techniques of Machine Learning")
-> 🎥 Bofya picha hapo juu kwa video fupi inayopitia somo hili.
+> 🎥 Bonyeza picha hapo juu kwa video fupi inayoelezea somo hili.
## Utangulizi
-Kwa kiwango cha juu, sanaa ya kuunda michakato ya kujifunza mashine (ML) inajumuisha hatua kadhaa:
+Kwa kiwango cha juu, ufundi wa kuunda michakato ya kujifunza kwa mashine (ML) unajumuisha hatua kadhaa:
-1. **Amua swali**. Mchakato mwingi wa ML huanza kwa kuuliza swali ambalo haliwezi kujibiwa kwa programu rahisi ya masharti au injini ya sheria. Maswali haya mara nyingi huzunguka utabiri kulingana na mkusanyiko wa data.
-2. **Kusanya na kuandaa data**. Ili uweze kujibu swali lako, unahitaji data. Ubora na, wakati mwingine, wingi wa data yako utaamua jinsi unavyoweza kujibu swali lako la awali. Kuonyesha data ni kipengele muhimu cha awamu hii. Awamu hii pia inajumuisha kugawanya data katika kikundi cha mafunzo na majaribio ili kujenga mfano.
-3. **Chagua mbinu ya mafunzo**. Kulingana na swali lako na asili ya data yako, unahitaji kuchagua jinsi unavyotaka kufundisha mfano ili kuakisi data yako vizuri na kufanya utabiri sahihi dhidi yake. Hii ni sehemu ya mchakato wa ML inayohitaji utaalamu maalum na, mara nyingi, majaribio mengi.
-4. **Fanya mafunzo ya mfano**. Kwa kutumia data yako ya mafunzo, utatumia algoriti mbalimbali kufundisha mfano kutambua mifumo katika data. Mfano unaweza kutumia uzito wa ndani ambao unaweza kubadilishwa ili kuzingatia sehemu fulani za data kuliko nyingine ili kujenga mfano bora.
-5. **Tathmini mfano**. Unatumia data ambayo haijawahi kuonekana (data yako ya majaribio) kutoka seti yako iliyokusanywa ili kuona jinsi mfano unavyofanya kazi.
-6. **Kuboresha vigezo**. Kulingana na utendaji wa mfano wako, unaweza kurudia mchakato kwa kutumia vigezo tofauti, au mabadiliko, yanayodhibiti tabia ya algoriti zinazotumika kufundisha mfano.
-7. **Tabiri**. Tumia pembejeo mpya kujaribu usahihi wa mfano wako.
+1. **Amua swali**. Michakato mingi ya ML huanza kwa kuuliza swali ambalo haliwezi kujibiwa na programu rahisi yenye masharti au mzunguko wa sheria. Maswali haya mara nyingi yanahusiana na utabiri unaotegemea mkusanyiko wa data.
+2. **Kusanya na andaa data**. Ili kujibu swali lako, unahitaji data. Ubora na, wakati mwingine, wingi wa data yako utaamua jinsi unavyoweza kujibu swali lako la awali. Kuonyesha data kwa njia ya picha ni sehemu muhimu ya hatua hii. Hatua hii pia inajumuisha kugawanya data kuwa kundi la mafunzo na la majaribio ili kujenga mfano.
+3. **Chagua njia ya mafunzo**. Kulingana na swali lako na asili ya data yako, unahitaji kuchagua jinsi unavyotaka kufundisha mfano ili kuonyesha data yako kwa usahihi na kutoa utabiri sahihi dhidi yake. Hii ni sehemu ya mchakato wako wa ML inayohitaji utaalamu maalum na mara nyingi majaribio mengi.
+4. **Fanya mafunzo ya mfano**. Ukitumia data yako ya mafunzo, utatumia algoritimu mbalimbali kufundisha mfano kutambua mifumo ndani ya data. Mfano unaweza kutumia uzito wa ndani unaoweza kubadilishwa ili kutoa kipaumbele kwa sehemu fulani za data juu ya nyingine ili kujenga mfano bora.
+5. **Tathmini mfano**. Unatumia data ambayo haujawahi kuona hapo awali (data yako ya majaribio) kutoka kwa mkusanyiko wako kuona jinsi mfano unavyofanya kazi.
+6. **Sahihisha vigezo**. Kulingana na utendaji wa mfano wako, unaweza kurudia mchakato kwa kutumia vigezo tofauti, au tofauti, vinavyoendesha tabia ya algoritimu zinazotumika kufundisha mfano.
+7. **Kifanya utabiri**. Tumia data mpya kujaribu usahihi wa mfano wako.
-## Swali la kuuliza
+## Swali gani la kuuliza
-Kompyuta zina ujuzi wa kipekee wa kugundua mifumo iliyofichwa katika data. Uwezo huu ni muhimu sana kwa watafiti wenye maswali kuhusu uwanja fulani ambayo hayawezi kujibiwa kwa urahisi kwa kuunda injini ya sheria za masharti. Kwa mfano wa kazi ya actuarial, mwanasayansi wa data anaweza kuunda sheria za mikono kuhusu vifo vya wavutaji sigara dhidi ya wasiovuta sigara.
+Kompyuta zina ujuzi maalum wa kugundua mifumo iliyofichwa ndani ya data. Huduma hii ni muhimu sana kwa watafiti wenye maswali kuhusu eneo fulani ambayo hayawezi kujibiwa kwa urahisi kwa kuunda mzunguko wa sheria kwa masharti. Kwa mfano, kazi ya kihesabu, mtaalamu wa data anaweza kuunda sheria zilizotengenezwa kwa mikono kuhusu vifo vya wavutaji sigara dhidi ya wasiovuta sigara.
-Hata hivyo, wakati vigezo vingine vingi vinapojumuishwa katika hesabu, mfano wa ML unaweza kuwa bora zaidi katika kutabiri viwango vya vifo vya baadaye kulingana na historia ya afya ya zamani. Mfano wa kufurahisha zaidi unaweza kuwa kutabiri hali ya hewa kwa mwezi wa Aprili katika eneo fulani kulingana na data inayojumuisha latitudo, longitudo, mabadiliko ya hali ya hewa, ukaribu na bahari, mifumo ya mkondo wa ndege, na zaidi.
+Hata hivyo, wakati vigezo vingine vingi vinapowekezwa, mfano wa ML unaweza kuwa bora zaidi kutabiri viwango vya vifo vya baadaye kulingana na historia ya afya ya zamani. Mfano wa furaha zaidi unaweza kuwa kutabiri hali ya hewa kwa mwezi wa Aprili katika eneo fulani kulingana na data inayojumuisha latitude, longitude, mabadiliko ya tabianchi, umbali na bahari, mifumo ya mteremko wa upepo wa jet, na zaidi.
-✅ Hii [slide deck](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) kuhusu mifano ya hali ya hewa inatoa mtazamo wa kihistoria wa kutumia ML katika uchambuzi wa hali ya hewa.
+✅ Huu [jedwali la slaidi](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) kuhusu mifano ya hali ya hewa unatoa mtazamo wa kihistoria wa kutumia ML katika uchambuzi wa hali ya hewa.
## Kazi za kabla ya kujenga
-Kabla ya kuanza kujenga mfano wako, kuna kazi kadhaa unazohitaji kukamilisha. Ili kujaribu swali lako na kuunda dhana kulingana na utabiri wa mfano, unahitaji kutambua na kusanidi vipengele kadhaa.
+Kabla ya kuanza kujenga mfano wako, kuna kazi kadhaa unazohitaji kukamilisha. Ili kujaribu swali lako na kuunda nadharia inayotokana na utabiri wa mfano, unahitaji kutambua na kusanidi vipengele kadhaa.
### Data
-Ili uweze kujibu swali lako kwa uhakika wowote, unahitaji kiasi kizuri cha data ya aina sahihi. Kuna mambo mawili unayohitaji kufanya katika hatua hii:
+Ili kujibu swali lako kwa uhakika wowote, unahitaji kiasi kizuri cha data ya aina sahihi. Kuna mambo mawili unayohitaji kufanya hapo:
-- **Kusanya data**. Ukizingatia somo la awali kuhusu usawa katika uchambuzi wa data, kusanya data yako kwa uangalifu. Kuwa na ufahamu wa vyanzo vya data hii, upendeleo wowote wa asili ambao inaweza kuwa nao, na andika asili yake.
-- **Andaa data**. Kuna hatua kadhaa katika mchakato wa kuandaa data. Unaweza kuhitaji kuunganisha data na kuifanya kuwa ya kawaida ikiwa inatoka kwa vyanzo tofauti. Unaweza kuboresha ubora na wingi wa data kupitia mbinu mbalimbali kama kubadilisha maandishi kuwa namba (kama tunavyofanya katika [Clustering](../../5-Clustering/1-Visualize/README.md)). Unaweza pia kuzalisha data mpya, kulingana na ya awali (kama tunavyofanya katika [Classification](../../4-Classification/1-Introduction/README.md)). Unaweza kusafisha na kuhariri data (kama tutakavyofanya kabla ya somo la [Web App](../../3-Web-App/README.md)). Hatimaye, unaweza pia kuhitaji kuipangilia upya na kuichanganya, kulingana na mbinu zako za mafunzo.
+- **Kusanya data**. Ukizingatia somo la awali kuhusu usawa katika uchambuzi wa data, kusanya data yako kwa makini. Fahamu vyanzo vya data hii, upendeleo wowote unaoweza kuwa nao, na andika chanzo chake.
+- **Andaa data**. Kuna hatua kadhaa katika mchakato wa maandalizi ya data. Huenda ukahitaji kukusanya data na kuifanya iwe sawa ikiwa inatoka vyanzo tofauti. Unaweza kuboresha ubora na wingi wa data kwa njia mbalimbali kama kubadilisha mistari kuwa nambari (kama tunavyofanya katika [Kupanga Kundi](../../5-Clustering/1-Visualize/README.md)). Pia unaweza kuzalisha data mpya, kulingana na asili (kama tunavyofanya katika [Uainishaji](../../4-Classification/1-Introduction/README.md)). Unaweza kusafisha na kuhariri data (kama tutakavyofanya kabla ya somo la [Tovuti App](../../3-Web-App/README.md)). Hatimaye, unaweza kuhitaji kuipanga nasibu na kuchanganya, kulingana na mbinu zako za mafunzo.
-✅ Baada ya kukusanya na kuchakata data yako, chukua muda kuona kama umbo lake litaruhusu kushughulikia swali lako lililokusudiwa. Inawezekana kwamba data haitafanya vizuri katika kazi yako uliyopewa, kama tunavyogundua katika masomo yetu ya [Clustering](../../5-Clustering/1-Visualize/README.md)!
+✅ Baada ya kukusanya na kuchakata data yako, chukua muda kuona kama muundo wake utakuruhusu kutatua swali ulilokusudia. Huenda data isitende vyema katika kazi uliyopewa, kama tunavyogundua katika masomo yetu ya [Kupanga Kundi](../../5-Clustering/1-Visualize/README.md)!
-### Vipengele na Lengo
+### Sifa na Lengo
-[Feature](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) ni mali inayoweza kupimika ya data yako. Katika seti nyingi za data, huonyeshwa kama kichwa cha safu kama 'tarehe', 'ukubwa', au 'rangi'. Kigezo cha kipengele, ambacho kwa kawaida huwakilishwa kama `X` katika msimbo, kinawakilisha kigezo cha pembejeo ambacho kitatumika kufundisha mfano.
+[Sifa](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) ni kipengele kinachopimika cha data yako. Katika seti nyingi za data huonyeshwa kama kichwa cha safu kama 'tarehe', 'ukubwa' au 'rangi'. Kigezo cha sifa yako, kawaida huwakilishwa kama `X` katika nambari, kinawakilisha kigezo cha kuingiza kitakachotumika kufundisha mfano.
-Lengo ni kitu unachojaribu kutabiri. Lengo, ambalo kwa kawaida huwakilishwa kama `y` katika msimbo, linawakilisha jibu la swali unalojaribu kuuliza kuhusu data yako: katika Desemba, malenge ya **rangi** gani yatakuwa ya bei rahisi? Katika San Francisco, vitongoji gani vitakuwa na **bei** bora ya mali isiyohamishika? Wakati mwingine lengo pia hujulikana kama sifa ya lebo.
+Lengo ni kitu unachojaribu kutabiri. Lengo, kawaida huwakilishwa kama `y` katika nambari, linaonyesha jibu la swali unalojaribu kuuliza kwa data yako: mwezi wa Desemba, ni **rangi** gani za malenge zitakuwa nafuu zaidi? San Francisco, ni maeneo gani yatakuwa na **bei** bora zaidi ya mali isiyohamishika? Wakati mwingine lengo pia hurejelewa kama sifa ya lebo.
-### Kuchagua kigezo cha kipengele
+### Kuchagua kigezo chako cha sifa
-🎓 **Uchaguzi wa Kipengele na Uchimbaji wa Kipengele** Unajuaje ni kigezo gani cha kuchagua wakati wa kujenga mfano? Huenda ukapitia mchakato wa kuchagua kipengele au kuchimba kipengele ili kuchagua vigezo sahihi kwa mfano wenye utendaji bora. Hata hivyo, si sawa: "Uchimbaji wa kipengele huunda vipengele vipya kutoka kwa kazi za vipengele vya awali, wakati uchaguzi wa kipengele unarudisha sehemu ndogo ya vipengele." ([chanzo](https://wikipedia.org/wiki/Feature_selection))
+🎓 **Uchaguzi wa Sifa na Utoaji Sifa** Je, unajua jinsi ya kuchagua kigezo wapi wakati wa kujenga mfano? Huenda upite katika mchakato wa uchaguzi wa sifa au utoaji sifa kuchagua vigezo sahihi kwa mfano bora zaidi. Hata hivyo, si vitu sawa: "Utoaji sifa huunda sifa mpya kutoka kwa kazi za sifa za awali, wakati uchaguzi wa sifa hurudisha sehemu ndogo ya sifa." ([chanzo](https://wikipedia.org/wiki/Feature_selection))
-### Onyesha data yako
+### Onyesha data yako kwa picha
-Sehemu muhimu ya zana ya mwanasayansi wa data ni uwezo wa kuonyesha data kwa kutumia maktaba kadhaa bora kama Seaborn au MatPlotLib. Kuonyesha data yako kwa njia ya picha kunaweza kukuruhusu kugundua uhusiano uliofichwa ambao unaweza kutumia. Picha zako zinaweza pia kukusaidia kugundua upendeleo au data isiyo na uwiano (kama tunavyogundua katika [Classification](../../4-Classification/2-Classifiers-1/README.md)).
+Sehemu muhimu ya zana za mtaalamu wa data ni uwezo wa kuonyesha data kwa picha kwa kutumia maktaba bora kama Seaborn au MatPlotLib. Kuonyesha data kwa picha kunaweza kukufanya ugundue uhusiano wa siri unaoweza kutumia. Mchoro wako pia unaweza kusaidia kugundua upendeleo au data isiyo sawa (kama tunavyogundua katika [Uainishaji](../../4-Classification/2-Classifiers-1/README.md)).
### Gawanya seti yako ya data
-Kabla ya mafunzo, unahitaji kugawanya seti yako ya data katika sehemu mbili au zaidi za ukubwa usio sawa ambazo bado zinawakilisha data vizuri.
+Kabla ya mafunzo, unahitaji kugawanya seti yako ya data katika sehemu mbili au zaidi za saizi isiyo sawa lakini bado zinazoonesha data vizuri.
-- **Mafunzo**. Sehemu hii ya seti ya data inafaa kwa mfano wako ili kuufundisha. Seti hii inajumuisha sehemu kubwa ya seti ya data ya awali.
-- **Majaribio**. Seti ya majaribio ni kikundi huru cha data, mara nyingi hukusanywa kutoka data ya awali, unayotumia kuthibitisha utendaji wa mfano uliojengwa.
-- **Uthibitishaji**. Seti ya uthibitishaji ni kikundi kidogo cha mifano huru unayotumia kurekebisha vigezo vya mfano, au usanifu, ili kuboresha mfano. Kulingana na ukubwa wa data yako na swali unalouliza, huenda usihitaji kujenga seti hii ya tatu (kama tunavyobainisha katika [Time Series Forecasting](../../7-TimeSeries/1-Introduction/README.md)).
+- **Mafunzo**. Sehemu hii ya seti ya data imeundwa kwa mfano wako kufundisha. Seti hii inajumuisha sehemu kubwa ya seti ya awali.
+- **Majaribio**. Seti ya majaribio ni kundi huru la data, mara nyingi hutolewa kutoka kwa data ya awali, unayotumia kuthibitisha utendaji wa mfano ulioujengwa.
+- **Uthibitishaji**. Seti ya uthibitishaji ni kundi dogo la huru la mifano unayotumia kusahihisha hyperparameters, au usanifu, wa mfano ili kuboresha mfano. Kulingana na ukubwa wa data yako na swali unalouliza, huenda usihitaji kujenga seti hii ya tatu (kama tunavyoona katika [Utabiri wa Mfululizo wa Muda](../../7-TimeSeries/1-Introduction/README.md)).
## Kujenga mfano
-Kwa kutumia data yako ya mafunzo, lengo lako ni kujenga mfano, au uwakilishi wa takwimu wa data yako, kwa kutumia algoriti mbalimbali ili **kufundisha**. Kufundisha mfano kunaupa data na kuruhusu kufanya dhana kuhusu mifumo inayotambua, kuthibitisha, na kukubali au kukataa.
+Ukishaji data yako ya mafunzo, lengo lako ni kujenga mfano, au uwakilishi wa takwimu wa data yako, kwa kutumia algoritimu mbalimbali **kufundisha**. Kufundisha mfano kumfanya afahamu data na kutoa makadirio kuhusu mifumo anaogundua, kuthibitisha, na kukubali au kukataa.
-### Amua mbinu ya mafunzo
+### Amua njia ya mafunzo
-Kulingana na swali lako na asili ya data yako, utachagua mbinu ya kuifundisha. Ukipitia [nyaraka za Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - tunazotumia katika kozi hii - unaweza kuchunguza njia nyingi za kufundisha mfano. Kulingana na uzoefu wako, huenda ukajaribu mbinu kadhaa tofauti ili kujenga mfano bora. Unaweza kupitia mchakato ambapo wanasayansi wa data wanatathmini utendaji wa mfano kwa kuupa data ambayo haijawahi kuonekana, kuangalia usahihi, upendeleo, na masuala mengine yanayopunguza ubora, na kuchagua mbinu ya mafunzo inayofaa zaidi kwa kazi iliyopo.
+Kulingana na swali lako na asili ya data yako, utaamua njia ya kuifundisha. Kupitia [nyaraka za Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - tunayochukua katika kozi hii - unaweza kuchunguza njia nyingi za kufundisha mfano. Kulingana na uzoefu wako, huenda utajaribu njia tofauti tofauti kujenga mfano bora zaidi. Huenda upite kwa mchakato ambapo wataalamu wa data hutathmini utendaji wa mfano kwa kuipatia data isiyoonekana, kuangalia usahihi, upendeleo, na masuala mengine yanayopunguza ubora, na kuchagua njia bora ya kufundisha kwa kazi iliyopo.
-### Fanya mafunzo ya mfano
+### Fundisha mfano
-Ukiwa na data yako ya mafunzo, uko tayari 'kuifaa' ili kuunda mfano. Utagundua kwamba katika maktaba nyingi za ML utapata msimbo 'model.fit' - ni wakati huu ambapo unatuma kigezo chako cha kipengele kama safu ya thamani (kwa kawaida 'X') na kigezo cha lengo (kwa kawaida 'y').
+Ukiwa na data yako ya mafunzo, uko tayari 'kuifit' ili kuunda mfano. Utaona katika maktaba nyingi za ML nambari 'model.fit' - ni wakati huu unapowasilisha parameter yako ya sifa kama safu ya maadili (kawaida 'X') na parameter ya lengo (kawaida 'y').
### Tathmini mfano
-Mara mchakato wa mafunzo unapokamilika (inaweza kuchukua marudio mengi, au 'epochs', kufundisha mfano mkubwa), utaweza kutathmini ubora wa mfano kwa kutumia data ya majaribio kupima utendaji wake. Data hii ni sehemu ndogo ya data ya awali ambayo mfano haujawahi kuchambua. Unaweza kuchapisha jedwali la vipimo kuhusu ubora wa mfano wako.
+Mara mchakato wa mafunzo umekamilika (huenda ukachukua mizunguko mingi, au 'epochs', kufundisha mfano mkubwa), utaweza kutathmini ubora wa mfano kwa kutumia data ya majaribio kupima utendaji wake. Data hii ni sehemu ndogo ya data ya awali ambayo mfano haujawahi kuchambua. Unaweza kuchapisha jedwali la viashiria kuhusu ubora wa mfano wako.
-🎓 **Kufaa kwa mfano**
+🎓 **Kufit wa mfano**
-Katika muktadha wa kujifunza mashine, kufaa kwa mfano kunahusu usahihi wa kazi ya msingi ya mfano unavyojaribu kuchambua data ambayo hauijui.
+Katika muktadha wa kujifunza kwa mashine, kufit wa mfano kunahusu usahihi wa kazi msingi wa mfano unapojaribu kuchambua data isiyojulikana kwao.
-🎓 **Kutofaa** na **kufaa kupita kiasi** ni matatizo ya kawaida yanayopunguza ubora wa mfano, kwani mfano unafaa aidha si vizuri vya kutosha au vizuri kupita kiasi. Hii husababisha mfano kufanya utabiri aidha kwa ukaribu sana au kwa umbali sana na data yake ya mafunzo. Mfano uliokaa kupita kiasi hutabiri data ya mafunzo vizuri sana kwa sababu umejifunza maelezo na kelele za data vizuri sana. Mfano usiofaa si sahihi kwani hauwezi kuchambua data yake ya mafunzo wala data ambayo bado haujaiona kwa usahihi.
+🎓 **Underfitting** na **overfitting** ni matatizo ya kawaida yanayopunguza ubora wa mfano, wakati mfano unafit kwa kiasi kisichotosheleza au kwa kiasi kikubwa mno. Hii husababisha mfano kutoa utabiri ulio karibu sana au mbali mno na data ya mafunzo. Mfano uliopitiliza (overfit) hutabiri data ya mafunzo vizuri mno kwa sababu umejifunza kwa undani maelezo na kelele ya data. Mfano usiofaa (underfit) haupo sahihi kwa vile hauwezi kuchambua data ya mafunzo au data isiyojulikana kwa usahihi.
-
-> Picha ya taarifa na [Jen Looper](https://twitter.com/jenlooper)
+
+> Infographic na [Jen Looper](https://twitter.com/jenlooper)
-## Kuboresha vigezo
+## Sahihisha vigezo
-Mara mafunzo yako ya awali yanapokamilika, angalia ubora wa mfano na fikiria kuuboresha kwa kurekebisha 'vigezo vya juu'. Soma zaidi kuhusu mchakato huu [katika nyaraka](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
+Mara mafunzo ya awali yanapokamilika, tazama ubora wa mfano na fikiria kuuboresha kwa kubadilisha 'hyperparameters' zake. Soma zaidi kuhusu mchakato [katika nyaraka](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
## Utabiri
-Huu ndio wakati ambapo unaweza kutumia data mpya kabisa kujaribu usahihi wa mfano wako. Katika muktadha wa ML 'iliyotumika', ambapo unajenga mali za wavuti kutumia mfano katika uzalishaji, mchakato huu unaweza kuhusisha kukusanya pembejeo za mtumiaji (mfano wa kubonyeza kitufe) kuweka kigezo na kukituma kwa mfano kwa ajili ya uchambuzi au tathmini.
+Huu ni wakati ambapo unaweza kutumia data mpya kabisa kujaribu usahihi wa mfano wako. Katika mazingira ya ML 'waliyozishika', ambapo unajenga mali za wavuti kutumika mfano kwenye uzalishaji, mchakato huu unaweza kuhusisha ukusanyaji wa maingizo ya mtumiaji (bonyeza kitufe, kwa mfano) kuweka kigezo na kukituma kwa mfano kwa madhumuni ya utambuzi au tathmini.
-Katika masomo haya, utagundua jinsi ya kutumia hatua hizi kuandaa, kujenga, kujaribu, kutathmini, na kutabiri - hatua zote za mwanasayansi wa data na zaidi, unavyosonga mbele katika safari yako ya kuwa mhandisi wa ML 'full stack'.
+Katika masomo haya, utagundua jinsi ya kutumia hatua hizi kuandaa, kujenga, kujaribu, kutathmini, na kutabiri - vitendo vyote vya mtaalamu wa data na zaidi, unapoendelea na safari yako ya kuwa mhandisi wa ML wa 'full stack'.
---
## 🚀Changamoto
-Chora mchoro wa mtiririko unaoonyesha hatua za mtaalamu wa ML. Unaona uko wapi sasa katika mchakato? Unadhani utapata ugumu wapi? Nini kinaonekana rahisi kwako?
+Chora mchoro wa mtiririko unaoonyesha hatua za mtaalamu wa ML. Unaona wapi mwenyewe kwa sasa katika mchakato? Unatarajia kupata shida wapi? Nini kinaonekana rahisi kwako?
## [Jaribio la baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
-## Mapitio na Kujisomea
+## Mapitio & Kujifunza Peke Yako
-Tafuta mtandaoni mahojiano na wanasayansi wa data wanaojadili kazi zao za kila siku. Hapa kuna [moja](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
+Tafuta mtandaoni mahojiano na wataalamu wa data wanaozungumzia kazi zao za kila siku. Hapa kuna [moja](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
-## Kazi
+## Kazi ya Nyumbani
-[Mahojiano na mwanasayansi wa data](assignment.md)
+[Hoja na mtaalamu wa data](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.
\ No newline at end of file
+
+**Tangazo la Hukumu**:
+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 moja kwa moja zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake halisi inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya mtaalamu wa binadamu inapendekezwa. Hatuwezi kuwajibika kwa kutoelewana au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.
+
\ No newline at end of file
diff --git a/translations/sw/2-Regression/3-Linear/README.md b/translations/sw/2-Regression/3-Linear/README.md
index 9515e4a29..8040432c0 100644
--- a/translations/sw/2-Regression/3-Linear/README.md
+++ b/translations/sw/2-Regression/3-Linear/README.md
@@ -1,136 +1,136 @@
-# Jenga mfano wa regression kwa kutumia Scikit-learn: namna nne za regression
+# Jenga mfano wa urekebishaji ukitumia Scikit-learn: urekebishaji kwa njia nne
-## Kumbusho kwa Waanzaji
+## Kumbuka kwa Mwanafunzi Mwanzo
-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.
+Urekebishaji wa mstari hutumiwa tunapotaka kutabiri **thamani ya nambari** (kwa mfano, bei ya nyumba, halijoto, au mauzo).
+Hufanya kazi kwa kupata mstari wa moja kwa moja unaowakilisha vyema uhusiano kati ya vipengele vya ingizo na matokeo.
-Katika somo hili, tunazingatia kuelewa dhana kabla ya kuchunguza mbinu za regression zilizo juu zaidi.
+Katika somo hili, tunazingatia kuelewa dhana kabla ya kuchunguza mbinu za urekebishaji za juu zaidi.

-> Infographic na [Dasani Madipalli](https://twitter.com/dasani_decoded)
-## [Jaribio la awali](https://ff-quizzes.netlify.app/en/ml/)
+> Infografiki na [Dasani Madipalli](https://twitter.com/dasani_decoded)
+## [Jaribio kabla ya somo](https://ff-quizzes.netlify.app/en/ml/)
-> ### [Somo hili lipo pia kwa R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
-### Utangulizi
+> ### [Somo hili linapatikana kwa R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html)
+### Utangulizi
-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.
+Hadi sasa umechunguza nini urekebishaji kwa kutumia sampuli za data zilizokusanywa kutoka kwenye dataset ya bei za malenge ambayo tutatumia katika somo hili. Pia umeonyesha kwa kutumia Matplotlib.
-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.
+Sasa uko tayari kuzama zaidi katika urekebishaji kwa ML. Wakati uonyeshaji unaoruhusu kuelewa data, nguvu halisi ya Kujifunza kwa Mashine hutokana na _mafunzo ya mifano_. Mifano hufunzwa kwa data ya kihistoria ili moja kwa moja kushika utegemezi wa data, na huruhusu kutabiri matokeo kwa data mpya, ambayo mfano haujawahi kuona kabla.
-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.
+Katika somo hili, utajifunza zaidi kuhusu aina mbili za urekebishaji: _urekebishaji wa mstari wa msingi_ na _urekebishaji wa polynomial_, pamoja na baadhi ya hesabu zinazohusiana na mbinu hizi. Mifano hiyo itatuwezesha kutabiri bei za malenge kulingana na data mbalimbali za ingizo.
-[](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression")
+[](https://youtu.be/CRxFT8oTDMg "ML kwa wanaoanza - Kuelewa Urekebishaji wa Mstari")
-> 🎥 Bonyeza picha hapo juu kwa video fupi ya muhtasari wa linear regression.
+> 🎥 Bonyeza picha hapo juu kwa video fupi inayotoa muhtasari wa urekebishaji wa mstari.
-> 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.
+> Katika mtaala huu mzima, tunadhani maarifa madogo ya hesabu, na tunalenga kuufanya ufikike kwa wanafunzi kutoka nyanja nyingine, hivyo angalia kwa makini noti, 🧮 maelezo ya ziada, michoro, na zana nyingine za kujifunzia kusaidia kuelewa.
-### Mahitaji ya awali
+### Msingi
-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.
+Unapaswa kuwa umezoea sasa muundo wa data ya malenge tunayoichunguza. Unaweza kuipata tayari imepandishwa na kusafishwa kwenye faili la _notebook.ipynb_ la somo hili. Katika faili hiyo, bei ya malenge inaonyeshwa kwa kila kikapu katika fremu mpya ya data. Hakikisha unaweza kuendesha daftari hizi kwenye kernels za Visual Studio Code.
### Maandalizi
-Kama kumbusho, unapopakua data hii ili kuweza kuuliza maswali juu yake.
+Kama ukumbusho, unapakua data hii ili kuiuliza maswali.
-- 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.
+- Ni wakati gani bora wa kununua malenge?
+- Bei gani naweza kutegemea kwa kesi ya malenge madogo?
+- Je, ninapaswa kuyununua katika vikapu vya nusu kikapu au sanduku la 1 1/9 kikapu?
+Baki tuchunguze data hii zaidi.
-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.
+Katika somo la awali, ulitengeneza fremu ya data ya Pandas na kuijaza na sehemu ya dataset ya awali, ukibadilisha bei kwa mujibu wa kikapu. Hata hivyo, kwa kufanya hivyo, uliweza kukusanya takriban pointi 400 za data tu na kwa miezi ya vuli tu.
-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.
+Tazama data ambayo tumepandisha tayari katika daftari la somo hili linaloambatana. Data imepandishwa tayari na mchoro wa awali wa pointi umepangwa kuonyesha data ya mwezi. Labda tunaweza kupata maelezo zaidi kuhusu asili ya data kwa kuisafisha zaidi.
-## Mstari wa regression wa moja kwa moja (linear regression)
+## Mstari wa urekebishaji wa mstari
-Kama ulivyojifunza katika Somo la 1, lengo la zoezi la linear regression ni kuwezesha kutoa mchoro wa mstari ili:
+Kama ulivyojifunza katika Somo la 1, lengo la zoezi la urekebishaji wa mstari ni kupata uwezo wa kuchora mstari ili:
-- **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.
+- **Kuonyesha uhusiano wa tofauti.** Onyesha uhusiano kati ya tofauti
+- **Kutabiri.** Tengeneza utabiri sahihi wa mahali ambapo nukta mpya itapangwa kulingana na mstari huo.
-Tunazidisha umbali huu kwa mraba kwa sababu kuu mbili:
+Ni kawaida kwa **Urekebishaji wa Sqare Ndogo** kuvuta mstari huu. Neno "Least-Squares" linahusu mchakato wa kupunguza jumla ya makosa katika mfano wetu. Kwa kila nukta ya data, tunapima umbali wima (ujulikanayo kama resti) kati ya nukta halisi na mstari wetu wa urekebishaji.
-1. **Ukubwa kuliko Mwelekeo:** Tunataka kushughulikia kosa la -5 kama vile kosa la +5. Kupindisha mraba kunafanya thamani zote kuwa chanya.
+Tunapanga mraba umbali huu kwa sababu mbili kuu:
-2. **Kuwadhibiti Wasiokuwa Na Kawaida:** Kupindisha mraba kunazidisha uzito wa makosa makubwa, na kulazimisha mstari kuwa karibu zaidi na pointi zilizoko mbali.
+1. **Ukubwa juu ya Mwelekeo:** Tunataka kushughulikia kosa la -5 sawa na kosa la +5. Kufanya mraba kunafanya thamani zote kuwa chanya.
-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".
+2. **Kuweka adhabu kwa Tofauti Kubwa:** Kufanya mraba kunatoa uzito zaidi kwa makosa makubwa, na kulazimisha mstari kubaki karibu na pointi zilizo mbali.
-> **🧮 Nionyeshe hesabu**
+Kisha tunaongeza thamani hizi za mraba pamoja. Lengo letu ni kupata mstari maalum ambapo jumla hii ni ndogo zaidi (thamani ndogo kabisa) - ndio maana linaitwa "Least-Squares".
+
+> **🧮 Nionyeshe hesabu**
>
-> Mstari huu, unaoitwa _mstari wa kufaa vizuri_, unaweza kuelezwa na [sawia](https://en.wikipedia.org/wiki/Simple_linear_regression):
+> Mstari huu, unaoitwa _mstari wa kufaa vyema_ unaweza kuonyeshwa kwa [mlinganyo](https://en.wikipedia.org/wiki/Simple_linear_regression):
>
> ```
> Y = a + bX
> ```
>
-> `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`.
+> `X` ni ‘tofauti ya kuelezea’. `Y` ni ‘tofauti inayotegemea’. Pembe ya mstari ni `b` na `a` ni kitovu cha y, kinachoashiria thamani ya `Y` wakati `X = 0`.
>
->
+>
>
-> Kwanza, hesabu mwinuko `b`. Infographic na [Jen Looper](https://twitter.com/jenlooper)
+> Kwanza, hesabu pembe `b`. Infografiki na [Jen Looper](https://twitter.com/jenlooper)
>
-> 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.
+> Kwa maneno mengine na kurejelea swali la asili la data yetu ya malenge: "tabiri bei ya malenge kwa kila kikapu kwa mwezi", `X` itarejelea bei na `Y` itarejelea mwezi wa mauzo.
>
->
+>
>
-> Hesabu thamani ya Y. Ikiwa unalipa karibu $4, lazima iwe Aprili! Infographic na [Jen Looper](https://twitter.com/jenlooper)
+> Hesabu thamani ya Y. Ikiwa unalipa karibu $4, lazima iwe Aprili! Infografiki na [Jen Looper](https://twitter.com/jenlooper)
>
-> Hesabu inayopima mstari lazima ionyeshe mwinuko wa mstari, pia inategemea intercept, au mahali `Y` wanapopatikana wakati `X = 0`.
+> Hesabu inayoonyesha mstari lazima ionyeshe pembe ya mstari, ambayo pia inategemea kitovu, au mahali `Y` ilipo wakati `X = 0`.
>
-> 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.
+> Unaweza kuona njia ya hesabu ya thamani hizi kwenye tovuti ya [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html). Pia tembelea [kalkuleta ya least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) ili kuona jinsi thamani za nambari zinavyoathiri mstari.
## Uhusiano (Correlation)
-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.
+Neno moja zaidi la kuelewa ni **Kiwango cha Uhusiano** kati ya tofauti za X na Y. Ukiweka mchoro wa pointi, unaweza haraka kuona kiwango hiki. Mchoro wenye pointi zilizo pangiliwa kwenye mstari mzuri una uhusiano mkubwa, lakini mchoro wenye pointi zilizoenea kila mahali kati ya X na Y una uhusiano mdogo.
-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.
+Mfano mzuri wa urekebishaji wa mstari utakuwa ule wenye Kiwango cha Uhusiano kwa kiwango cha juu (karibu 1 badala ya 0) ukitumia Mbinu ya Least-Squares Regression na mstari wa urekebishaji.
-✅ 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)?
+✅ Endesha daftari la mazoezi linaloambatana na somo hili na tazama mchoro wa Month to Price scatterplot. Je, data inayounganisha Mwezi na Bei kwa mauzo ya malenge inaonekana kuwa na uhusiano mkubwa au mdogo, kulingana na tafsiri yako ya kuona ya scatterplot? Je, hiyo hubadilika ikiwa unatumia kipimo cha kina zaidi badala ya `Month`, kwa mfano *siku ya mwaka* (yaani idadi ya siku tangu mwanzo wa mwaka)?
-Katika msimbo hapa chini, tutaidhinisha kwamba tumesafisha data, na kupata fremu ya data inayoitwa `new_pumpkins`, kama ifuatavyo:
+Katika msimbo hapa chini, tutadhani kwamba tumesafisha data, na kupata fremu ya data inayoitwa `new_pumpkins`, zinazofanana na yafuatayo:
-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
+ID | Mwezi | SikuYaMwaka | Aina | Jiji | Pakiti | Bei Ndogo | Bei Kubwa | Bei
+---|-------|-------------|-------|------|---------|-----------|-----------|------
+70 | 9 | 267 | AINA YA PIE | BALTIMORE | 1 1/9 kartoni za kikapu | 15.0 | 15.0 | 13.636364
+71 | 9 | 267 | AINA YA PIE | BALTIMORE | 1 1/9 kartoni za kikapu | 18.0 | 18.0 | 16.363636
+72 | 10 | 274 | AINA YA PIE | BALTIMORE | 1 1/9 kartoni za kikapu | 18.0 | 18.0 | 16.363636
+73 | 10 | 274 | AINA YA PIE | BALTIMORE | 1 1/9 kartoni za kikapu | 17.0 | 17.0 | 15.454545
+74 | 10 | 281 | AINA YA PIE | BALTIMORE | 1 1/9 kartoni za kikapu | 15.0 | 15.0 | 13.636364
-> 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:
+> Msimbo wa kusafisha data upo katika [`notebook.ipynb`](notebook.ipynb). Tumefanya hatua sawa za usafi kama katika somo lililopita, na tumekokotoa safu ya `DayOfYear` kwa kutumia maelezo ifuatayo:
```python
day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)
```
-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.
+Sasa kwamba unaelewa hesabu nyuma ya urekebishaji wa mstari, hebu tujenge Mfano wa Urekebishaji kuona kama tunaweza kutabiri pakiti ambayo ya malenge itakuwa na bei bora za malenge. Mtu anayenunua malenge kwa ajili ya shamba la malenge ya sikukuu anaweza kutaka taarifa hii ili aweze kuboresha ununuzi wao wa pakiti za malenge kwa shamba.
## Kutafuta Uhusiano
-[](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression")
+[](https://youtu.be/uoRq-lW2eQo "ML kwa wanaoanza - Kutafuta Uhusiano: Ufunguo wa Urekebishaji wa Mstari")
-> 🎥 Bonyeza picha hapo juu kwa video fupi ya muhtasari wa uhusiano.
+> 🎥 Bonyeza picha hapo juu kwa video fupi inayotoa muhtasari wa uhusiano.
-Kutoka somo lililopita huenda umeona kuwa bei ya wastani kwa miezi mbalimbali inaonekana hivi:
+Kutoka somo lililopita huenda umeona kuwa bei ya wastani kwa miezi tofauti inaonekana kama hii:
-
+
-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:
+Hii inaonyesha kwamba kunapaswa kuwepo na uhusiano fulani, na tunaweza jaribu kufunza mfano wa urekebishaji wa mstari kutabiri uhusiano kati ya `Month` na `Price`, au kati ya `DayOfYear` na `Price`. Hapa kuna mchoro wa pointi unaonyesha uhusiano wa mwisho:
-
+
-Tuchukulie kama kuna uhusiano kwa kutumia kazi ya `corr`:
+Tuchunguze kama kuna uhusiano kutumia kipengele cha `corr`:
```python
print(new_pumpkins['Month'].corr(new_pumpkins['Price']))
print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))
```
-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:
+Inaonekana kama uhusiano ni mdogo, -0.15 kwa `Month` na -0.17 kwa `DayOfYear`, lakini kunaweza kuwa na uhusiano mwingine muhimu. Inaonekana kuna makundi tofauti ya bei yanayohusiana na aina tofauti za malenge. Ili kuthibitisha dhana hii, tuchore kila aina ya malenge kwa rangi tofauti. Kwa kupitisha parameter ya `ax` kwenye kazi ya kuchora `scatter` 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)
```
-
+
-Uchunguzi wetu unaonyesha kuwa aina inaathiri zaidi bei kuliko tarehe halisi ya mauzo. Tunaweza kuona hili kwa mchoro wa mihimili (bar graph):
+Uchunguzi wetu unaonyesha kwamba aina ina athari zaidi kwenye bei kwa ujumla kuliko tarehe halisi ya mauzo. Tunaweza kuona hili kwa chati ya barua:
```python
new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')
```
-
+
-Tujizomee kwa muda kwa aina moja tu ya malenge, 'aina ya pie type', na tuelewe athari ya tarehe kwenye bei:
+Tuzingatie kwa sasa aina moja tu ya malenge, aina ya 'pie', na tuone athari ya tarehe kwenye bei:
```python
pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']
pie_pumpkins.plot.scatter('DayOfYear','Price')
```
-
+
-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.
+Kama sasa tutapima uhusiano kati ya `Price` na `DayOfYear` kwa kutumia kipengele cha `corr`, tutapata kitu kama `-0.27` - ambayo inamaanisha kwamba kufunza mfano wa utabiri kuna mantiki.
-> 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:
+> Kabla ya kufunza mfano wa urekebishaji wa mstari, ni muhimu kuhakikisha data yetu ni safi. Urekebishaji wa mstari hauendani vizuri na thamani zisizokuwepo, hivyo ni busara kuondoa seli zote tupu:
```python
pie_pumpkins.dropna(inplace=True)
pie_pumpkins.info()
```
-Njia nyingine ni kujaza thamani tupu kwa thamani za wastani kutoka kwenye safu husika.
+Njia nyingine itakuwa kujaza thamani hizo tupu na thamani za wastani kutoka safu husika.
-## Linear Regression Rahisi
+## Urekebishaji wa Mstari Msingi
-[](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn")
+[](https://youtu.be/e4c_UP2fSjg "ML kwa wanaoanza - Urekebishaji wa Mstari na Polynomial ukitumia Scikit-learn")
-> 🎥 Bonyeza picha hapo juu kwa video fupi ya muhtasari wa linear na polynomial regression.
+> 🎥 Bonyeza picha hapo juu kwa video fupi inayotoa muhtasari wa urekebishaji wa mstari na polynomial.
-Ili kufundisha mfano wetu wa Linear Regression, tutatumia maktaba ya **Scikit-learn**.
+Ili kufunza Mfano wetu wa Urekebishaji wa Mstari, tutatumia maktaba ya **Scikit-learn**.
```python
from sklearn.linear_model import LinearRegression
@@ -183,31 +183,31 @@ from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
```
-Tunaanza kwa kutenganisha vitu vya ingizo (features) na matokeo yanayotarajiwa (label) katika matrekta tofauti ya numpy:
+Tunaanza kwa kutenganisha thamani za ingizo (vipengele) na matokeo yanayotarajiwa (lebeli) katika safu za numpy tofauti:
```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 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×1, ambapo N ni ukubwa wa dataset.
+> Kumbuka tulilazimika kufanya `reshape` kwa data ya ingizo ili kifurushi cha Urekebishaji wa Mstari kiielewe ipasavyo. Urekebishaji wa Mstari unatarajia safu ya 2D kama ingizo, ambapo kila safu ya safu ni vekta ya vipengele vya ingizo. Katika kesi yetu, kwa kuwa tuna ingizo moja tu - tunahitaji safu yenye umbo N×1, ambapo N ni ukubwa wa dataset.
-Kisha, tunahitaji kugawanya data kuwa datasets za mafunzo na majaribio, ili tuweze kuthibitisha mfano baada ya mafunzo:
+Kisha, tunapaswa kugawanya data kuwa sehemu ya mafunzo na sehemu ya majaribio, ili tuweze kuthibitisha mfano wetu baada ya mafunzo:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
```
-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`:
+Mwishowe, kufunza mfano halisi wa Urekebishaji wa Mstari huchukua mistari miwili tu ya msimbo. Tunafafanua kitu cha `LinearRegression`, na kuifunga kwenye data yetu kwa kutumia njia ya `fit`:
```python
lin_reg = LinearRegression()
lin_reg.fit(X_train,y_train)
```
-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.
+Kitu cha `LinearRegression` baada ya `fit`-ting 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 kuwa bei zinaonekana kushuka kidogo kwa muda, lakini sio kwa kiasi kikubwa, karibu senti 2 kwa siku. Tunaweza pia kupata kituo cha mkusanyiko wa regression na mhimili wa Y kwa kutumia `lin_reg.intercept_` - itakuwa karibu na `21` katika kesi yetu, ikiashiria bei mwanzoni mwa mwaka.
-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.
+Ili kuona usahihi wa mfano wetu, tunaweza kutabiri bei kwenye seti ya majaribio, kisha kupima jinsi makisio yetu yanavyokaribia thamani zinazotarajiwa. Hii inaweza kufanywa kwa kutumia kipimo cha root mean square error (RMSE), ambayo ni mzizi wa wastani wa tofauti zote zilizopangwa mraba kati ya thamani zinazotarajiwa na zinazotabiriwa.
```python
pred = lin_reg.predict(X_test)
@@ -216,15 +216,15 @@ rmse = np.sqrt(mean_squared_error(y_test,pred))
print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
```
-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:
+Kosa letu linaonekana kuwa karibu na pointi 2, ambayo ni ~17%. Siyo nzuri sana. Kiashiria kingine cha ubora wa mfano ni **coefficient of determination**, ambacho kinaweza kupatikana hivi:
```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.
+Ikiwa thamani ni 0, ina maana kuwa mfano hauzingatii data ya pembejeo, na hutenda kama *mtabiri mbaya kabisa wa mstari*, ambaye ni thamani ya wastani tu ya matokeo. Thamani ya 1 ina maana kwamba tunaweza kutabiri vyema matokeo yote yanayotarajiwa. Katika kesi yetu, coefficient ni karibu 0.06, ambayo ni ya chini kabisa.
-Tunaweza pia kuchora data ya mtihani pamoja na mstari wa regression kuona vizuri jinsi regression inavyofanya kazi katika kesi yetu:
+Tunaweza pia kuchora data za majaribio pamoja na mstari wa regression kuona bora jinsi regression inavyofanya kazi katika kesi yetu:
```python
plt.scatter(X_test,y_test)
@@ -235,17 +235,17 @@ plt.plot(X_test,pred)
## Polynomial Regression
-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.
+Aina nyingine ya Linear Regression ni Polynomial Regression. Ingawa wakati mwingine kuna uhusiano wa mstari kati ya vigezo - kadri buibui linavyokuwa kubwa kwa kiasi, ndivyo bei inavyokuwa juu - 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 ambayo inaweza kutumia Polynomial Regression
+✅ Hapa kuna [mifano 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, 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.
+Tazama tena uhusiano kati ya Tarehe na Bei. Je, mchoro huu wa points unaonekana kama unapaswa kuchambuliwa kwa kutumia mstari wa moja kwa moja? Je, bei hasi zinaweza kubadilika? Katika kesi hii, unaweza kujaribu polynomial regression.
-✅ Polynomials ni misemo ya hisabati ambayo inaweza kuwa na vigezo moja au zaidi pamoja na coefficients
+✅ Polynomials ni maelezo ya kihesabu ambayo yanaweza kuwa na variables moja au zaidi na coefficients
-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.
+Polynomial regression huunda mstari wa mviringo ili kufaa vizuri data zisizo za mstari. Katika kesi yetu, ikiwa tutajumuisha `DayOfYear` kwa mraba kuwa variable ya pembejeo, tunapaswa kuweza kufaa data zetu na mviringo wa parabolic, ambao utakuwa na chini ya thamani 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) 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:
+Scikit-learn inajumuisha API yenye msaada ya [pipeline](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) kuunganisha hatua tofauti za usindikaji data pamoja. **pipeline** ni mnyororo wa **estimators**. Katika kesi yetu, tutaunda pipeline ambayo kwanza itaongeza sifa za polynomial kwenye mfano wetu, kisha itafunza regression:
```python
from sklearn.preprocessing import PolynomialFeatures
@@ -256,36 +256,58 @@ pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
```
-Kutumia `PolynomialFeatures(2)` ina maana kwamba tutajumuisha polynomials zote za daraja la pili kutoka kwa data ya ingizo. Katika kesi yetu itamaanisha tu `DayOfYear`2, lakini ikizingatiwa vigezo viwili vya ingizo X na Y, hii itaongeza X2, XY na Y2. Tunaweza pia kutumia polynomials za daraja kubwa zaidi ikiwa tunataka.
+Kutumia `PolynomialFeatures(2)` kunamaanisha kwamba tutajumuisha polynomials zote za daraja la pili kutoka kwenye data za pembejeo. Katika kesi yetu itamaanisha tu `DayOfYear`2, lakini ikitolewa variables mbili za pembejeo X na Y, hii itaongeza X2, XY na Y2. Tunaweza pia kutumia polynomials za daraja kubwa zaidi ikiwa tunataka.
+
+Pipelines zinaweza kutumika kwa njia ile ile kama kitu cha awali cha `LinearRegression`, yaani tunaweza `fit` pipeline, na kisha kutumia `predict` kupata matokeo ya utabiri:
+
+```python
+pred = pipeline.predict(X_test)
+
+rmse = np.sqrt(mean_squared_error(y_test,pred))
+print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)')
+
+score = pipeline.score(X_train,y_train)
+print('Model determination: ', score)
+```
+
+Ili kuchora mviringo laini wa makadirio, tunatumia `np.linspace` kuunda safu sawa ya thamani za pembejeo, badala ya kuchora moja kwa moja kwenye data za majaribio zisizo na mpangilio (ambazo zingetengeneza mstari wa mviringo-mviringo):
+
+```python
+X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)
+y_range = pipeline.predict(X_range)
+
+plt.scatter(X_test, y_test)
+plt.plot(X_range, y_range)
+```
-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:
+Hapa ni mchoro unaoonyesha data za majaribio, na mviringo wa makadirio:
-Kwa kutumia Polynomial Regression, tunaweza kupata MSE kidogo chini na coefficient ya determination kubwa zaidi, lakini si kwa kiwango kikubwa. Tunahitaji kuzingatia sifa zingine!
+Kutumia Polynomial Regression, tunaweza kupata RMSE kidogo chini na coefficient ya determination kubwa zaidi, lakini si kwa kiasi kikubwa. Tunahitaji kuzingatia sifa zingine pia!
-> Unaweza kuona kuwa bei za chini kabisa za loti zinapatikana karibu na Sikukuu ya Halloween. Unawezaje kueleza hili?
+> Unaweza kuona kuwa bei ndogo za buibui hupatikana karibu na Halloween. Unaelewaje hili?
-🎃 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!
+🎃 Hongera, umeunda mfano unaoweza kusaidia kutabiri bei ya buibui za pie. Huenda ukaweza kurudia hatua hii kwa aina zote za buibui, lakini hiyo itakuwa ngumu. Hebu tujifunze sasa jinsi ya kuzingatia aina ya buibui katika mfano wetu!
-## Vipengele vya Kikategoria
+## Sifa za Kategorikali
-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**.
+Katika dunia bora, tunataka kuwa na uwezo wa kutabiri bei za aina tofauti za buibui kwa kutumia mfano mmoja. Hata hivyo, safu ya `Variety` ni tofauti kidogo na safu kama `Month`, kwa sababu inajumuisha thamani zisizo za nambari. Safu kama hizi huitwa **kategorikali**.
-[](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression")
+[](https://youtu.be/DYGliioIAE0 "ML kwa waanzilishi - Utabiri wa Sifa za Kategorikali kwa Linear Regression")
-> 🎥 Bonyeza picha hapo juu kwa video fupi ya matumizi ya vipengele vya kategoria.
+> 🎥 Bonyeza picha hapo juu kwa muhtasari mfupi wa video kuhusu kutumia sifa za kategorikali.
Hapa unaweza kuona jinsi bei ya wastani inavyotegemea aina:
-Ili kuzingatia aina, kwanza tunahitaji kuibadilisha kuwa muundo wa nambari, au **kuandika**. Kuna njia kadhaa tunazoweza kuifanya:
+Ili kuzingatia aina, kwanza tunahitaji kuibadilisha kuwa nambari, au **kuandika msimbo**. Kuna njia kadhaa za kufanya hivyo:
-* **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.
+* **Kuandika msimbo wa nambari wa kawaida** kutaunda jedwali la aina tofauti, kisha kubadilisha jina la aina kuwa nambari katika jedwali hilo. Hii si wazo bora kwa regression ya mstari, kwa sababu regression ya mstari huchukua thamani halisi ya nambari ya index, na kuiongeza matokeo, ikizidishwa na coefficient fulani. Katika kesi yetu, uhusiano kati ya nambari ya index na bei ni wazi si mstari, hata kama tunahakikisha kwamba indices zipo kwa mpangilio 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 hiyo, na `0` vinginevyo. Hii ina maana kuwa kutakuwa na coefficients nne katika regression ya mstari, moja kwa kila aina ya buibui, inayohusika na "bei ya kuanzia" (au badala yake "bei ya ziada") kwa aina hiyo.
-Nambari hapa chini inaonyesha jinsi ya kufanya one-hot encode kwa aina:
+Msimbo hapa chini unaonyesha jinsi ya kufanya one-hot encode kwa aina:
```python
pd.get_dummies(new_pumpkins['Variety'])
@@ -302,14 +324,14 @@ pd.get_dummies(new_pumpkins['Variety'])
1741 | 0 | 1 | 0 | 0
1742 | 0 | 1 | 0 | 0
-Ili kufundisha regression ya mstari kwa kutumia aina zilizohifadhiwa kama one-hot encoded, tunahitaji tu kuanzisha data za `X` na `y` kwa usahihi:
+Ili kufunza regression ya mstari kwa kutumia aina iliyowekwa one-hot encoded kama data ya pembejeo, tunahitaji tu kuanzisha data za `X` na `y` kwa usahihi:
```python
X = pd.get_dummies(new_pumpkins['Variety'])
y = new_pumpkins['Price']
```
-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`:
+Msimbo wa ziada ni ule ule tulioitumia hapo juu kufunza Linear Regression. Ukijaribu, utaona kuwa msemo wa wastani wa makosa ya mraba ni karibu sawa, lakini tunapata coefficient ya determination ya juu zaidi (~77%). Ili kupata makadirio sahihi zaidi, tunaweza kuzingatia sifa za kategorikali zaidi, pamoja na sifa za nambari kama `Month` au `DayOfYear`. Ili kupata safu kubwa ya sifa, tunaweza kutumia `join`:
```python
X = pd.get_dummies(new_pumpkins['Variety']) \
@@ -319,60 +341,60 @@ X = pd.get_dummies(new_pumpkins['Variety']) \
y = new_pumpkins['Price']
```
-Hapa pia tunazingatia `City` na aina ya `Package`, ambayo inatupa MSE 2.84 (10%), na coefficient ya determination 0.94!
+Hapa pia tunazingatia `City` na aina ya `Package`, ambayo hutoa RMSE 2.84 (10.5%), na determination 0.94!
-## Kuunganisha yote pamoja
+## Kuweka yote Pamoja
-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:
+Ili kutengeneza mfano bora zaidi, tunaweza kutumia data zilizojumuishwa (sifa za kategorikali zilizowekwa one-hot encoded + sifa za nambari) kutoka mfano wa juu pamoja na Polynomial Regression. Hapa ni msimbo kamili kwa urahisi wako:
```python
-# weka data ya mafunzo
+# andaa 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 mgawanyo wa mafunzo-na-majaribio
+# fanya mgawanyo wa mafunzo-na-mtihani
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
-# weka na faya mfumo wa mafunzo
+# andaa na fundisha mchakato
pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())
pipeline.fit(X_train,y_train)
-# tabiri matokeo kwa data ya majaribio
+# tabiri matokeo kwa data ya mtihani
pred = pipeline.predict(X_test)
-# hesabu MSE na uamuzi
-mse = np.sqrt(mean_squared_error(y_test,pred))
-print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')
+# hesabu RMSE na uamuzi
+rmse = mean_squared_error(y_test, pred, squared=False)
+print(f'RMSE: {rmse:3.3} ({rmse/pred.mean()*100:3.3}%)')
score = pipeline.score(X_train,y_train)
print('Model determination: ', score)
```
-Hii inapaswa kutupatia coefficient bora zaidi ya determination ya karibu 97%, na MSE=2.23 (~8% kosa la utabiri).
+Hii inapaswa kutuletea coefficient bora zaidi ya determination karibu 97%, na RMSE=2.23 (~8% kosa la utabiri).
-| Mfano | MSE | Determination |
+| Mfano | RMSE | 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 |
-| Vipengele vyote Linear | 2.84 (10.5%) | 0.94 |
-| Vipengele vyote Polynomial | 2.23 (8.25%) | 0.97 |
+| Sifa Zote Linear | 2.84 (10.5%) | 0.94 |
+| Sifa Zote Polynomial | 2.23 (8.25%) | 0.97 |
-🏆 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.
+🏆 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 kuamua makundi.
---
## 🚀Changamoto
-Jaribu vigezo tofauti kadhaa katika daftari hili kuona jinsi uhusiano unavyolingana na usahihi wa mfano.
+Jaribu vigezo tofauti katika daftari hili kuona jinsi uhusiano unavyohusiana na usahihi wa mfano.
## [Mtihani baada ya somo](https://ff-quizzes.netlify.app/en/ml/)
-## Mapitio & Kujifunza Binafsi
+## Mapitio na Kujifunza Binafsi
-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)
+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 kusoma zaidi ni [kozi ya Stanford Statistical Learning](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)
## Kazi ya Nyumbani
@@ -381,6 +403,6 @@ Katika somo hili tulijifunza kuhusu Linear Regression. Kuna aina zingine muhimu
---
-**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.
+**Kiaruhusi cha kutokuwa na dhamana**:
+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 kwamba tafsiri za moja kwa moja zinaweza kuwa na makosa au kasoro. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inapendekezwa. Hatuwajibiki kwa kutoelewana au tafsiri potofu zinazotokana na matumizi ya tafsiri hii.
\ No newline at end of file
diff --git a/translations/sw/2-Regression/3-Linear/solution/notebook.ipynb b/translations/sw/2-Regression/3-Linear/solution/notebook.ipynb
index adcdc9a55..33627bcee 100644
--- a/translations/sw/2-Regression/3-Linear/solution/notebook.ipynb
+++ b/translations/sw/2-Regression/3-Linear/solution/notebook.ipynb
@@ -4,14 +4,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "## Usawazishaji wa Mstari na Usawazishaji wa Polynomial kwa Bei ya Maboga - Somo la 3\n",
+ "## Mchoro wa Mstari na Polinomia kwa Bei za Maboga - Somo la 3\n",
"\n",
- "Pakia maktaba zinazohitajika na seti ya data. Badilisha data kuwa fremu ya data inayoonyesha sehemu ndogo ya data:\n",
+ "Pakia maktaba zinazohitajika na seti ya data. Geuza data kuwa dataframe inayojumuisha sehemu ndogo ya data:\n",
"\n",
- "- Chagua tu maboga yaliyo na bei kwa kipimo cha bushel\n",
- "- Badilisha tarehe kuwa mwezi\n",
+ "- Pata tu maboga yaliyopewa bei kwa bushel\n",
+ "- Geuza tarehe kuwa mwezi\n",
"- Hesabu bei kuwa wastani wa bei ya juu na ya chini\n",
- "- Badilisha bei ili kuonyesha upimaji kwa idadi ya bushel\n"
+ "- Geuza bei kuonyesha bei kwa idadi ya bushel\n"
]
},
{
@@ -377,7 +377,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Mchoro wa kutawanyika unatukumbusha kwamba tuna data ya miezi kutoka Agosti hadi Desemba tu. Huenda tunahitaji data zaidi ili tuweze kutoa hitimisho kwa mtindo wa mstari.\n"
+ "Mchoro wa alama unatukumbusha kwamba tunayo data za miezi tu kutoka Agosti hadi Desemba. Labda tunahitaji data zaidi ili kuwaze uwezo wa kuvuta hitimisho kwa njia ya mstari.\n"
]
},
{
@@ -447,7 +447,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "Tuwone kama kuna uhusiano:\n"
+ ]
},
{
"cell_type": "code",
@@ -472,7 +474,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Inaonekana kama uhusiano ni mdogo sana, lakini kuna uhusiano mwingine muhimu zaidi - kwa sababu bei katika mchoro hapo juu zinaonekana kuwa na makundi tofauti tofauti. Hebu tufanye mchoro ambao utaonyesha aina mbalimbali za maboga:\n"
+ "Inaonekana uhusiano ni mdogo sana, lakini kuna uhusiano mwingine muhimu zaidi - kwa sababu viwango vya bei kwenye mchoro hapo juu vinaonekana kuwa na makundi kadhaa tofauti. Hebu tufanye mchoro utakaonyesha aina tofauti za malenge:\n"
]
},
{
@@ -535,7 +537,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "Kwa sasa, tushirikiane kwenye aina moja tu - **aina ya pai**.\n"
+ ]
},
{
"cell_type": "code",
@@ -582,9 +586,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Urejeleaji wa Mstari\n",
+ "### Urekebishaji wa Mstari\n",
"\n",
- "Tutatumia Scikit Learn kufundisha mfano wa urejeleaji wa mstari:\n"
+ "Tutatumia Scikit Learn kufundisha mfano wa urekebishaji wa mstari:\n"
]
},
{
@@ -662,7 +666,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Mwelekeo wa mstari unaweza kuamuliwa kutoka kwa vigezo vya usawa wa mstari:\n"
+ "Kipenyo cha mstari kinaweza kubainishwa kutoka kwa viashirio vya marejeleo ya mstari:\n"
]
},
{
@@ -688,7 +692,9 @@
{
"cell_type": "markdown",
"metadata": {},
- "source": []
+ "source": [
+ "Tunaweza kutumia modeli iliyofundishwa kutabiri bei:\n"
+ ]
},
{
"cell_type": "code",
@@ -716,11 +722,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Usawazishaji wa Polynomial\n",
+ "### Urejeshaji wa Polynomial\n",
"\n",
- "Wakati mwingine uhusiano kati ya vipengele na matokeo ni wa asili usio wa mstari. Kwa mfano, bei za maboga zinaweza kuwa juu wakati wa baridi (miezi=1,2), kisha zishuke wakati wa kiangazi (miezi=5-7), na kisha zipande tena. Usawazishaji wa mstari hauwezi kupata uhusiano huu kwa usahihi.\n",
+ "Wakati mwingine uhusiano kati ya sifa na matokeo hauko mstari moja kwa moja. Kwa mfano, bei za malenge zinaweza kuwa juu wakati wa baridi (miezi=1,2), kisha kupungua wakati wa majira ya joto (miezi=5-7), na kisha kuongezeka tena. Urejeshaji wa mstari hauwezi kupata uhusiano huu kwa usahihi.\n",
"\n",
- "Katika hali hii, tunaweza kufikiria kuongeza vipengele vya ziada. Njia rahisi ni kutumia polinomiali kutoka kwa vipengele vya ingizo, ambayo itasababisha **usawazishaji wa polynomial**. Katika Scikit Learn, tunaweza kuhesabu kiotomatiki vipengele vya polynomial kwa kutumia pipelines:\n"
+ "Katika kesi hii, tunaweza kuzingatia kuongeza sifa za ziada. Njia rahisi ni kutumia polinomiali kutoka kwa sifa za ingizo, ambayo itasababisha **urejeshaji wa polynomial**. Katika Scikit Learn, tunaweza kuhesabu awali sifa za polynomial kwa kutumia pipelines: \n"
]
},
{
@@ -775,22 +781,25 @@
"score = pipeline.score(X_train,y_train)\n",
"print('Model determination: ', score)\n",
"\n",
- "plt.scatter(X_test,y_test)\n",
- "plt.plot(sorted(X_test),pipeline.predict(sorted(X_test)))"
+ "X_range = np.linspace(X_test.min(), X_test.max(), 100).reshape(-1,1)\n",
+ "y_range = pipeline.predict(X_range)\n",
+ "\n",
+ "plt.scatter(X_test, y_test)\n",
+ "plt.plot(X_range, y_range)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Aina za usimbaji\n",
+ "### Aina za Uwekaji Alama\n",
"\n",
- "Katika ulimwengu bora, tunataka kuwa na uwezo wa kutabiri bei za aina tofauti za maboga kwa kutumia modeli moja. Ili kuzingatia aina, tunahitaji kwanza kuibadilisha kuwa fomu ya nambari, au **kusimba**. Kuna njia kadhaa tunazoweza kutumia:\n",
+ "Katika ulimwengu bora, tunataka kuwa na uwezo wa kutabiri bei za aina tofauti za malenge kwa kutumia mfano ule ule. Ili kuzingatia aina, kwanza tunahitaji kuibadilisha kuwa nambari, au **kuweka alama**. Kuna njia kadhaa tunazoweza kufanya hivyo:\n",
"\n",
- "* Usimbaji rahisi wa nambari ambao utajenga jedwali la aina tofauti, kisha kubadilisha jina la aina kwa kiashiria katika jedwali hilo. Hii si wazo bora kwa urarukaji wa mstari, kwa sababu urarukaji wa mstari unazingatia thamani ya nambari ya kiashiria, na thamani ya nambari huenda isiwe na uhusiano wa moja kwa moja na bei.\n",
- "* Usimbaji wa one-hot, ambao utabadilisha safu ya `Variety` kuwa safu 4 tofauti, moja kwa kila aina, ambayo itakuwa na 1 ikiwa safu husika ni ya aina fulani, na 0 vinginevyo.\n",
+ "* Uwekaji alama wa nambari rahisi ambao utajenga jedwali la aina tofauti, kisha kubadilisha jina la aina kwa nambari ya muhtasari katika jedwali hilo. Hii si wazo bora kwa upangaji mstari, kwa sababu upangaji mstari unazingatia thamani ya nambari ya muhtasari, na thamani hiyo haionekani kuhusiana kihesabu na bei.\n",
+ "* Uwekaji alama wa One-hot, ambao utabadilisha safu ya `Variety` kuwa safu 4 tofauti, moja kwa kila aina, ambayo itakuwa na 1 ikiwa safu husika ni ya aina fulani, na 0 vinginevyo.\n",
"\n",
- "Nambari iliyo hapa chini inaonyesha jinsi tunavyoweza kusimba aina kwa one-hot:\n"
+ "Msimbo hapa chini unaonyesha jinsi tunavyoweza kuweka alama aina kwa one-hot:\n"
]
},
{
@@ -938,9 +947,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Urejeleaji wa Mstari kwenye Aina\n",
+ "### Upunguzaji wa Mstari kwa Aina \n",
"\n",
- "Sasa tutatumia msimbo ule ule kama hapo juu, lakini badala ya `DayOfYear` tutatumia aina yetu iliyowekwa kwa njia ya one-hot-encoding kama ingizo:\n"
+ "Sasa tutatumia msimbo ule ule kama ulivyo hapo juu, lakini badala ya `DayOfYear` tutatumia aina yetu iliyowekwa kwa njia ya one-hot-encoded kama ingizo:\n"
]
},
{
@@ -988,7 +997,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "Tunaweza pia kujaribu kutumia vipengele vingine kwa njia hiyo hiyo, na kuviunganisha na vipengele vya nambari, kama vile `Month` au `DayOfYear`:\n"
+ "Tunaweza pia kujaribu kutumia vipengele vingine kwa njia ile ile, na kuviunganisha na vipengele vya nambari, kama vile `Month` au `DayOfYear`:\n"
]
},
{
@@ -1019,9 +1028,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "### Usajili wa Polynomial\n",
+ "### Mwinuko wa Polynomial\n",
"\n",
- "Usajili wa polynomial unaweza pia kutumika na vipengele vya kategoria ambavyo vimekodishwa kwa njia ya one-hot. Msimbo wa kufundisha usajili wa polynomial kimsingi utakuwa sawa na tulivyoona hapo juu.\n"
+ "Mwinuko wa polynomial pia unaweza kutumika na sifa za kategoria ambazo zimewekwa kama one-hot-encoded. Msimbo wa kufundisha mwinuko wa polynomial kwa kiasi kikubwa utakuwa sawa na ule tuliouona hapo juu.\n"
]
},
{
@@ -1068,7 +1077,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "\n---\n\n**Kanusho**: \nHati 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 kutokuwa sahihi. Hati ya asili katika lugha yake ya awali inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, inashauriwa kutumia huduma ya tafsiri ya kitaalamu ya binadamu. Hatutawajibika kwa maelewano mabaya au tafsiri zisizo sahihi zinazotokana na matumizi ya tafsiri hii.\n"
+ "---\n\n\n**Kauli ya Msamaha**:\nHati 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 usahihi mdogo. Hati ya asili katika lugha yake ya asili inapaswa kuzingatiwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu kutoka kwa mtafsiri binadamu inashauriwa. Hatuna wajibu wowote kwa kusudia au makosa ya ufafanuzi yanayotokea kutokana na matumizi ya tafsiri hii.\n\n"
]
}
],
@@ -1098,13 +1107,7 @@
"hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d"
}
},
- "orig_nbformat": 2,
- "coopTranslator": {
- "original_hash": "d77bd89ae7e79780c68c58bab91f13f8",
- "translation_date": "2025-09-06T13:11:26+00:00",
- "source_file": "2-Regression/3-Linear/solution/notebook.ipynb",
- "language_code": "sw"
- }
+ "orig_nbformat": 2
},
"nbformat": 4,
"nbformat_minor": 2